docs: add AGENTS.md with project context for opencode
This commit is contained in:
108
AGENTS.md
Normal file
108
AGENTS.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Don Confiao Backend - Contexto del Proyecto
|
||||
|
||||
## Tipo de Proyecto
|
||||
Backend Django con Django REST Framework
|
||||
|
||||
## Estructura del Proyecto
|
||||
```
|
||||
don_confiao_backend/
|
||||
├── requirements.txt # Dependencias Python
|
||||
├── docker-compose.yml # Configuración Docker
|
||||
├── django.Dockerfile # Dockerfile Django
|
||||
├── .env # Variables de entorno
|
||||
├── .env_example # Ejemplo de variables de entorno
|
||||
├── README.rst # Documentación básica
|
||||
├── Rakefile # Tareas rake
|
||||
├── doc/ # Documentación adicional
|
||||
│ └── requests.org
|
||||
└── tienda_ilusion/ # Proyecto Django
|
||||
├── manage.py
|
||||
├── db.sqlite3 # Base de datos SQLite
|
||||
├── don_confiao/ # App principal
|
||||
│ ├── models.py # Modelos: Customer, Product, Sale, SaleLine, Payment, ReconciliationJar, AdminCode
|
||||
│ ├── views.py
|
||||
│ ├── api_views.py
|
||||
│ ├── serializers.py
|
||||
│ ├── forms.py
|
||||
│ ├── admin.py
|
||||
│ ├── urls.py
|
||||
│ ├── export_csv.py
|
||||
│ ├── tests/ # Tests
|
||||
│ └── migrations/
|
||||
├── users/ # App de usuarios
|
||||
│ ├── models.py
|
||||
│ ├── views.py
|
||||
│ ├── serializers.py
|
||||
│ ├── urls.py
|
||||
│ └── tests/
|
||||
└── tienda_ilusion/ # Configuración Django
|
||||
├── settings.py
|
||||
├── urls.py
|
||||
├── wsgi.py
|
||||
└── asgi.py
|
||||
```
|
||||
|
||||
## Dependencias Principales
|
||||
- Django==5.0.6
|
||||
- djangorestframework
|
||||
- django-cors-headers
|
||||
- djangorestframework-simplejwt
|
||||
- sabatron-tryton-rpc-client==7.4.0 (integración con Tryton ERP)
|
||||
|
||||
## Modelos Principales (don_confiao/models.py)
|
||||
- **Customer**: Clientes (name, address, email, phone, external_id)
|
||||
- **Product**: Productos (name, price, measuring_unit, categories)
|
||||
- **ProductCategory**: Categorías de productos
|
||||
- **Sale**: Ventas (customer, date, phone, description, payment_method, reconciliation)
|
||||
- **SaleLine**: Líneas de venta (sale, product, quantity, unit_price, description)
|
||||
- **Payment**: Pagos (date_time, type_payment, amount, reconciliation_jar)
|
||||
- **PaymentSale**: Relación muchos a muchos entre Payment y Sale
|
||||
- **ReconciliationJar**: Arqueo de caja (is_valid, date_time, reconcilier, cash_taken, cash_discrepancy)
|
||||
- **AdminCode**: Códigos de administrador
|
||||
|
||||
## Autenticación
|
||||
- JWT con djangorestframework-simplejwt
|
||||
- ACCESS_TOKEN_LIFETIME: 30 minutos
|
||||
- REFRESH_TOKEN_LIFETIME: 1 día
|
||||
|
||||
## API Endpoints
|
||||
- REST API en don_confiao/api_views.py y users/
|
||||
- URLs en don_confiao/urls.py y users/urls.py
|
||||
|
||||
## Ejecución con Docker Compose
|
||||
|
||||
El proyecto se ejecuta con docker-compose. Todos los comandos `manage.py` deben ejecutarse dentro del contenedor:
|
||||
|
||||
```bash
|
||||
# Ejecutar tests
|
||||
docker-compose run --rm django python manage.py test
|
||||
|
||||
# Migraciones
|
||||
docker-compose run --rm django python manage.py makemigrations
|
||||
docker-compose run --rm django python manage.py migrate
|
||||
|
||||
# Servidor desarrollo
|
||||
docker-compose up
|
||||
|
||||
# Shell Django
|
||||
docker-compose run --rm django python manage.py shell
|
||||
|
||||
# Crear superuser
|
||||
docker-compose run --rm django python manage.py createsuperuser
|
||||
```
|
||||
|
||||
Nota: El volumen monta `tienda_ilusion/` en `/app/`, por lo que el path correcto es `python manage.py` (no `python tienda_ilusion/manage.py`).
|
||||
|
||||
## Tests
|
||||
- Framework: Django unittest
|
||||
- Directorio: don_confiao/tests/
|
||||
- Ejecutar: `docker-compose run --rm django python manage.py test`
|
||||
|
||||
## Comandos Útiles (dentro del contenedor)
|
||||
- Migraciones: `docker-compose run --rm django python manage.py makemigrations && docker-compose run --rm django python manage.py migrate`
|
||||
- Servidor desarrollo: `docker-compose up`
|
||||
- Shell Django: `docker-compose run --rm django python manage.py shell`
|
||||
- Superuser: `docker-compose run --rm django python manage.py createsuperuser`
|
||||
|
||||
## Integraciones
|
||||
- **Tryton ERP**: Integración mediante sabatron-tryton-rpc-client para sincronización de clientes, productos y ventas
|
||||
Reference in New Issue
Block a user