Files
don_confiao_backend/AGENTS.md

4.0 KiB

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:

# 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