Files
plantillas-proyectos/backend/api/v1/modules/a76/company/models.py
Kevin Rosales e50a86e014 Refactorización de nombres de módulos y actualizaciones:
- Creación y traducción de módulos:
  - gpaisreglaoct -> country_rule_oct
  - gpermisoreglaoct -> permission_rule_oct
  - gprecintos -> seal
  - gtipocambio -> exchange_rate
  - gfracroctava -> fraction_rule_octave
  - gbultos -> package

- Traducción de nombres de campos, clases y métodos al inglés.
- Renombrados los nombres de las tablas (__tablename__) en los modelos.
- Actualización de las importaciones en el archivo router.py para reflejar los nuevos nombres de módulos.
- Asegurada la consistencia en los nombres de clases, métodos y rutas.
- Agregado el campo tenant_id a los modelos que no lo incluían.
2025-11-06 22:05:43 -06:00

72 lines
2.6 KiB
Python

"""
Modelos ORM para gestión de empresa
"""
from sqlalchemy import Column, Integer, String, DateTime, Boolean, Text, SmallInteger, ForeignKey
from sqlalchemy.sql import func
from core.database import Base
import enum
class GCompany(Base):
"""
Modelo para la tabla GCompany - Información de la empresa
"""
__tablename__ = "gcompany"
__table_args__ = {"schema": "a76"}
# Primary key
id = Column(String(3), primary_key=True, default='EMP', nullable=False)
# Control de registro único
consecutive = Column(Boolean, unique=True, default=True, nullable=False)
# Información básica de la empresa
name = Column(String(255), nullable=True)
rfc = Column(String(30), nullable=True)
main_activity = Column(String(255), nullable=True)
# Información del programa
program = Column(String(10), nullable=True)
program_number = Column(String(40), nullable=True)
prosec = Column(SmallInteger, nullable=True)
prosec_authorization = Column(String(20), nullable=True)
# Identificadores
manufacturer_id = Column(String(25), nullable=True)
broker_company = Column(String(10), nullable=True)
# Responsable
responsible = Column(String(80), nullable=True)
responsible_name = Column(String(20), nullable=True)
responsible_last_name = Column(String(20), nullable=True)
responsible_mother_last_name = Column(String(20), nullable=True)
responsible_rfc = Column(String(30), nullable=True)
position = Column(String(30), nullable=True)
# Configuración
logo = Column(String(255), nullable=True)
has_express_line = Column(Boolean, nullable=True)
order_format_type = Column(String(19), nullable=True)
previous_code = Column(SmallInteger, nullable=True)
is_service_company = Column(Boolean, nullable=True)
# Cliente y submaquila
client_name = Column(String(300), nullable=True)
subassembly_mode = Column(String(7), nullable=True)
# Información adicional
curp = Column(String(19), nullable=True)
inter_db_name = Column(String(100), nullable=True)
ctpat_svi = Column(String(100), nullable=True)
trusted_exporter_number = Column(String(50), nullable=True)
prevalidator_key = Column(String(20), nullable=True)
seventh_amendment = Column(Boolean, nullable=True) # FINALCONTADORAELECTRONICO renombrado
# Timestamps
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
updated_at = Column(DateTime(timezone=True), onupdate=func.now(), nullable=True)
tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False)