""" 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)