"""
Router principal de API v1
Agrega todos los módulos de la aplicación
"""

from fastapi import APIRouter

from .agency_tariff_codes.routes import router as agency_tariff_codes_router
from .carta_porte_codes.routes import router as carta_porte_router
from .code_pedimento_regimens.routes import router as code_pedimento_regimens_router
from .containers.routes import router as containers_router
from .countries.routes import router as countries_router
from .currency_types.routes import router as currency_types_router
from .customs_sections.routes import router as customs_sections_router
from .customs_warehouses.routes import router as customs_warehouses_router
from .identifiers.routes import router as identifiers_catalog_router
from .incoterms.routes import router as incoterms_router
from .invoice_types.routes import router as invoice_types_router
from .license_exceptions.routes import router as license_exceptions_router
from .material_types.routes import router as material_types_router
from .payment_methods.routes import router as payment_methods_router
from .pedimento_transport_catalog.routes import router as pedimento_transport_catalog_router
from .pedimento_codes.routes import router as pedimento_codes_router
from .pedimento_regimens.routes import router as pedimento_regimens_router
from .states.routes import router as states_router
from .trailer_types.routes import router as trailer_types_router
from .transport_modes.routes import router as transport_modes_router
from .transport_types.routes import router as transport_types_router
from .valuation_methods.routes import router as valuation_methods_router

# Router principal
router = APIRouter()

# Registrar módulos
router.include_router(
    agency_tariff_codes_router,
    prefix="/reference_data",
    tags=["public / reference_data / agency_tariff_codes"],
)
router.include_router(
    pedimento_transport_catalog_router,
    prefix="/reference_data",
    tags=["public / reference_data / pedimento_transport_catalog"],
)
router.include_router(
    pedimento_codes_router,
    prefix="/reference_data",
    tags=["public / reference_data / pedimento_codes"],
)
router.include_router(
    payment_methods_router,
    prefix="/reference_data",
    tags=["public / reference_data / payment_methods"],
)
router.include_router(
    containers_router,
    prefix="/reference_data",
    tags=["public / reference_data / containers"],
)
router.include_router(
    countries_router,
    prefix="/reference_data",
    tags=["public / reference_data / countries"],
)
router.include_router(
    material_types_router,
    prefix="/reference_data",
    tags=["public / reference_data / material_types"],
)
router.include_router(
    identifiers_catalog_router,
    prefix="/reference_data",
    tags=["public / reference_data / identifiers"],
)
router.include_router(
    currency_types_router,
    prefix="/reference_data",
    tags=["public / reference_data / currency_types"],
)
router.include_router(
    states_router, prefix="/reference_data", tags=["public / reference_data / states"]
)
router.include_router(
    trailer_types_router,
    prefix="/reference_data",
    tags=["public / reference_data / trailer_types"],
)
router.include_router(
    transport_types_router,
    prefix="/reference_data",
    tags=["public / reference_data / transport_types"],
)
router.include_router(
    customs_warehouses_router,
    prefix="/reference_data",
    tags=["public / reference_data / customs_warehouses"],
)
router.include_router(
    valuation_methods_router,
    prefix="/reference_data",
    tags=["public / reference_data / valuation_methods"],
)
router.include_router(
    transport_modes_router,
    prefix="/reference_data",
    tags=["public / reference_data / transport_modes"],
)
router.include_router(
    carta_porte_router,
    prefix="/reference_data",
    tags=["public / reference_data / carta_porte_codes"],
)
router.include_router(
    customs_sections_router,
    prefix="/reference_data",
    tags=["public / reference_data / customs_sections"],
)
router.include_router(
    invoice_types_router,
    prefix="/reference_data",
    tags=["public / reference_data / invoice_types"],
)
router.include_router(
    code_pedimento_regimens_router,
    prefix="/reference_data",
    tags=["public / reference_data / code_pedimento_regimens"],
)
router.include_router(
    pedimento_regimens_router,
    prefix="/reference_data",
    tags=["public / reference_data / pedimento_regimens"],
)
router.include_router(
    incoterms_router,
    prefix="/reference_data",
    tags=["public / reference_data / incoterms"],
)
router.include_router(
    license_exceptions_router,
    prefix="/reference_data",
    tags=["public / reference_data / license_exceptions"],
)
