-- ============================================================================= -- ERP TRANSPORTISTAS - Inicializacion de Schemas -- ============================================================================= -- Archivo: 00-schemas-init.sql -- Version: 1.0.0 -- Fecha: 2026-01-25 -- Descripcion: Crea los schemas especificos del giro transporte -- ============================================================================= -- Extensiones requeridas CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS "postgis"; -- Para geolocalizacion -- ============================================================================= -- SCHEMAS DEL GIRO TRANSPORTE -- ============================================================================= -- Schema principal de transporte CREATE SCHEMA IF NOT EXISTS transport; COMMENT ON SCHEMA transport IS 'Ordenes de transporte, embarques, viajes, POD'; -- Schema de flota CREATE SCHEMA IF NOT EXISTS fleet; COMMENT ON SCHEMA fleet IS 'Unidades, remolques, operadores, documentos'; -- Schema de tracking CREATE SCHEMA IF NOT EXISTS tracking; COMMENT ON SCHEMA tracking IS 'Eventos GPS, geocercas, alertas'; -- Schema de combustible y gastos CREATE SCHEMA IF NOT EXISTS fuel; COMMENT ON SCHEMA fuel IS 'Control de combustible, peajes, gastos de viaje'; -- Schema de mantenimiento CREATE SCHEMA IF NOT EXISTS maintenance; COMMENT ON SCHEMA maintenance IS 'Mantenimiento preventivo y correctivo de flota'; -- Schema de carriers (terceros) CREATE SCHEMA IF NOT EXISTS carriers; COMMENT ON SCHEMA carriers IS 'Gestion de transportistas subcontratados'; -- Schema de facturacion transporte CREATE SCHEMA IF NOT EXISTS billing; COMMENT ON SCHEMA billing IS 'Tarifas, facturacion, recargos especificos transporte'; -- Schema de cumplimiento normativo CREATE SCHEMA IF NOT EXISTS compliance; COMMENT ON SCHEMA compliance IS 'Carta Porte, HOS, inspecciones, NOM-087/068'; -- ============================================================================= -- TIPOS ENUMERADOS COMUNES -- ============================================================================= -- Estados del viaje CREATE TYPE transport.estado_viaje AS ENUM ( 'BORRADOR', 'PLANEADO', 'DESPACHADO', 'EN_TRANSITO', 'EN_DESTINO', 'ENTREGADO', 'CERRADO', 'FACTURADO', 'COBRADO', 'CANCELADO' ); -- Tipos de unidad CREATE TYPE fleet.tipo_unidad AS ENUM ( 'TRACTORA', 'REMOLQUE', 'CAJA_SECA', 'CAJA_REFRIGERADA', 'PLATAFORMA', 'TANQUE', 'PORTACONTENEDOR', 'TORTON', 'RABON', 'CAMIONETA' ); -- Estados de unidad CREATE TYPE fleet.estado_unidad AS ENUM ( 'DISPONIBLE', 'EN_VIAJE', 'EN_TALLER', 'BLOQUEADA', 'BAJA' ); -- Tipos de evento tracking CREATE TYPE tracking.tipo_evento AS ENUM ( 'SALIDA', 'ARRIBO_ORIGEN', 'INICIO_CARGA', 'FIN_CARGA', 'ARRIBO_DESTINO', 'INICIO_DESCARGA', 'FIN_DESCARGA', 'ENTREGA_POD', 'DESVIO', 'PARADA', 'INCIDENTE', 'GPS_POSICION' ); -- Fuente del evento CREATE TYPE tracking.fuente_evento AS ENUM ( 'GPS', 'APP_OPERADOR', 'SISTEMA', 'MANUAL', 'GEOCERCA' ); -- Tipos de incidencia CREATE TYPE transport.tipo_incidencia AS ENUM ( 'RETRASO', 'RECHAZO', 'DANO', 'ROBO', 'FALTANTE', 'DEVOLUCION', 'ACCIDENTE', 'MULTA', 'OTRO' ); -- Modalidad de servicio CREATE TYPE transport.modalidad_servicio AS ENUM ( 'FTL', -- Full Truck Load 'LTL', -- Less Than Truck Load 'DEDICADO', 'EXPRESS', 'CONSOLIDADO' ); -- ============================================================================= -- FIN DE INICIALIZACION -- =============================================================================