72 lines
2.6 KiB
Python
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 Company(Base):
|
|
"""
|
|
Modelo para la tabla Company - Información de la empresa
|
|
"""
|
|
__tablename__ = "company"
|
|
__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)
|
|
|
|
|