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