feat(crm): catálogos de referencia en BD (SAT/ISO + cliente) — T2026-07-081/082
- Modelo crm.catalog_items (global tenant_id NULL / por tenant) + migración con índices únicos parciales y down(). - Seed de 18 catálogos globales (485 opciones): tipo registro/persona, estatus, giro, clasificaciones, medio contacto, idioma, régimen, uso CFDI, forma/método de pago SAT, moneda/país ISO, estados MX, tipo domicilio, área, cobertura. - Servicio + endpoints CRUD /v1/crm/catalogs (listar/insertar/editar/borrar), con global solo para hub_admin y catálogos del cliente por tenant. - Columnas nuevas: accounts.commercial_observations, accounts.preferred_contact_other, suppliers.classification_other. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,12 +39,15 @@ class Account(Base, TenantScopedMixin, TimestampMixin):
|
||||
# ----- Información comercial -----
|
||||
# Clasificación: importador | exportador | ambos
|
||||
commercial_classification: Mapped[str | None] = mapped_column(String(20), nullable=True)
|
||||
# Medio de contacto preferido: llamada | correo | videollamada | whatsapp | otro
|
||||
# Medio de contacto preferido: llamada | correo | videoconferencia | whatsapp | otro
|
||||
preferred_contact_method: Mapped[str | None] = mapped_column(String(20), nullable=True)
|
||||
# Texto libre cuando el medio de contacto es "otro"
|
||||
preferred_contact_other: Mapped[str | None] = mapped_column(String(120), nullable=True)
|
||||
language: Mapped[str | None] = mapped_column(String(40), nullable=True)
|
||||
email: Mapped[str | None] = mapped_column(String(255), nullable=True)
|
||||
phone: Mapped[str | None] = mapped_column(String(40), nullable=True)
|
||||
website: Mapped[str | None] = mapped_column(String(255), nullable=True)
|
||||
commercial_observations: Mapped[str | None] = mapped_column(Text, nullable=True) # observaciones generales
|
||||
|
||||
# ----- Información fiscal -----
|
||||
tax_regime: Mapped[str | None] = mapped_column(String(120), nullable=True) # régimen fiscal
|
||||
|
||||
Reference in New Issue
Block a user