Add reference data models and seed data for incoterms, invoice types, material types, payment methods, pedimento codes, pedimento regimens, sectors, states, transport modes, transport types, and valuation methods

- Implemented SQLAlchemy models for incoterms, invoice types, material types, payment methods, pedimento codes, pedimento regimens, sectors, states, transport modes, transport types, and valuation methods.
- Added seed data for each reference data model to populate the database with initial values.
- Ensured primary key constraints and appropriate data types for each model.
- Established relationships where necessary, particularly in pedimento codes and regimens.
This commit is contained in:
2025-10-19 19:03:15 -05:00
parent 2a10d7d267
commit 58a2f0ade6
41 changed files with 1324 additions and 187 deletions

View File

@@ -0,0 +1,16 @@
from sqlalchemy import String, PrimaryKeyConstraint
from sqlalchemy.orm import mapped_column, Mapped
from core.database import Base
class Container(Base):
__tablename__ = "containers" #GContenedores
__table_args__ = (
PrimaryKeyConstraint("key", name="containers_pkey"),
{"schema": "public"} # opcional
)
key: Mapped[str] = mapped_column(String(3), nullable=False) # mantiene ceros iniciales
description: Mapped[str] = mapped_column(String(500), nullable=False) # descripción legal en español
def __repr__(self):
return f"<Container(key={self.key}, description={self.description})>"

View File

@@ -0,0 +1,71 @@
seed = [
("1", "CONTENEDOR ESTANDAR 20' (STANDARD CONTAINER 20')."),
("2", "CONTENEDOR ESTANDAR 40' (STANDARD CONTAINER 40')."),
("3", "CONTENEDOR ESTANDAR DE CUBO ALTO 40' (HIGH CUBE STANDARD CONTAINER 40')."),
("4", "CONTENEDOR TAPA DURA 20 (HARDTOP CONTAINER 20')."),
("5", "CONTENEDOR TAPA DURA 40 (HARDTOP CONTAINER 40')."),
("6", "CONTENEDOR TAPA ABIERTA 20 (OPEN TOP CONTAINER 20')."),
("7", "CONTENEDOR TAPA ABIERTA 40' (OPEN TOP CONTAINER 40')."),
("8", "FLAT 20' (FLAT 20')."),
("9", "FLAT 40' (FLAT 40')."),
("10", "PLATAFORMA 20' (PLATFORM 20')."),
("11", "PLATAFORMA 40' (PLATFORM 40')."),
("12", "CONTENEDOR VENTILADO 20 (VENTILATED CONTAINER 20')."),
("13", "CONTENEDOR TERMICO 20' (INSULATED CONTAINER 20')."),
("14", "CONTENEDOR TERMICO 40' (INSULATED CONTAINER 40')."),
("15", "CONTENEDOR REFRIGERANTE 20 (REFRIGERATED CONTAINER 20')."),
("16", "CONTENEDOR REFRIGERANTE 40 (REFRIGERATED CONTAINER 40')."),
("17", "CONTENEDOR REFRIGERANTE CUBO ALTO 40 (HIGH CUBE REFRIGERATED CONTAINER 40')."),
("18", "CONTENEDOR CARGA A GRANEL 20 (BULK CONTAINER 20')."),
("19", "CONTENEDOR TIPO TANQUE 20 (TANK CONTAINER 20')."),
("20", "CONTENEDOR ESTANDAR 45' (STANDARD CONTAINER 45')."),
("21", "CONTENEDOR ESTANDAR 48' (STANDARD CONTAINER 48')."),
("22", "CONTENEDOR ESTANDAR 53' (STANDARD CONTAINER 53')."),
("23", "CONTENEDOR ESTANDAR 8' (STANDARD CONTAINER 8')."),
("24", "CONTENEDOR ESTANDAR 10' (STANDARD CONTAINER 10')."),
("25", "CONTENEDOR ESTANDAR DE CUBO ALTO 45 (HIGH CUBE STANDARD CONTAINER 45)."),
("26", "SEMIRREMOLQUE CON RACKS PARA ENVASES DE BEBIDAS."),
("27", "SEMIRREMOLQUE CUELLO DE GANZO."),
("28", "SEMIRREMOLQUE TOLVA CUBIERTO."),
("29", "SEMIRREMOLQUE TOLVA (ABIERTO)."),
("30", "AUTO-TOLVA CUBIERTO/DESCARGA NEUMATICA."),
("31", "SEMIRREMOLQUE CHASIS."),
("32", "SEMIRREMOLQUE AUTOCARGABLE (CON SISTEMA DE ELEVACION)."),
("33", "SEMIRREMOLQUE CON TEMPERATURA CONTROLADA."),
("34", "SEMIRREMOLQUE CORTO TRASERO."),
("35", "SEMIRREMOLQUE DE CAMA BAJA."),
("36", "PLATAFORMA DE 28."),
("37", "PLATAFORMA DE 45."),
("38", "PLATAFORMA DE 48."),
("39", "SEMIRREMOLQUE PARA TRANSPORTE DE CABALLOS."),
("40", "SEMIRREMOLQUE PARA TRANSPORTE DE GANADO."),
("41", "SEMIRREMOLQUE TANQUE (LIQUIDOS)/SIN CALEFACCION/SIN AISLAR."),
("42", "SEMIRREOLQUE TANQUE (LIQUIDOS)/CON CALEFACCION/SIN AISLAR."),
("43", "SEMIRREMOLQUE TANQUE (LIQUIDOS)/SIN CALEFACCION/AISLADO."),
("44", "SEMIRREMOLQUE TANQUE (LIQUIDOS)/CON CALEFACCION/AISLADO."),
("45", "SEMIRREMOLQUE TANQUE (GAS)/SIN CALEFACCION/SIN AISLAR."),
("46", "SEMIRREMOLQUE TANQUE (GAS)/CON CALEFACCION/SIN AISLAR."),
("47", "SEMIRREMOLQUE TANQUE (GAS)/SIN CALEFACCION/AISLADO."),
("48", "SEMIRREMOLQUE TANQUE (GAS)/CON CALEFACCION/AISLADO."),
("49", "SEMIRREMOLQUE TANQUE (QUIMICOS)/SIN CALEFACCION/SIN AISLAR."),
("50", "SEMIRREMOLQUE TANQUE (QUIMICOS)/CON CALEFACCION/SIN AISLAR."),
("51", "SEMIRREMOLQUE TANQUE (QUIMICOS)/SIN CALEFACCION/AISLADO."),
("52", "SEMIRREMOLQUE TANQUE (QUIMICOS)/CON CALEFACCION/AISLADO."),
("53", "SEMIRREMOLQUE GONDOLA-CERRADA."),
("54", "SEMIRREMOLQUE GONDOLA-ABIERTA."),
("55", "SEMIRREMOLQUE TIPO CAJA CERRADA 48."),
("56", "SEMIRREMOLQUE TIPO CAJA CERRADA 53."),
("57", "SEMIRREMOLQUE TIPO CAJA REFRIGERADA 48."),
("58", "SEMIRREMOLQUE TIPO CAJA REFRIGERADA 53."),
("59", "DOBLE SEMIRREMOLQUE."),
("60", "OTROS."),
("61", "TANQUE 20."),
("62", "TANQUE 40."),
("63", "CARRO DE FERROCARRIL"),
("64", "HIGH CUBE 20'"),
("65", "AUTOMÓVIL"),
("66", "CAMIÓN UNITARIO DE DOS EJES"),
("67", "CAMIÓN UNITARIO DE TRES EJES"),
("68", "VEHÍCULOS CON CAPACIDAD DE CARGA DE HASTA 3.5. TONELADAS"),
("69", "TRACTOCAMIÓN"),
]