"""
API Version 1 Router Configuration
"""
from fastapi import APIRouter
from src.apps.users.router import router as user_router
from src.apps.auth.router import router as auth_router
from src.apps.products.router import router as product_router
from src.apps.product_categories.router import router as product_category_router
from src.apps.customers.router import router as customer_router
from src.apps.files.router import router as files_router
from src.apps.payment_requests.router import router as payment_request_router
from src.apps.site_masters.router import router as site_master_router
from src.apps.notes.router import router as notes_router
from src.core.utils.enums import APIRoutes

# Create the main API v1 router
api_router = APIRouter()

# Include all application routers with their respective configurations
api_router.include_router(
    user_router,
    prefix=APIRoutes.USERS.value,
    tags=["USERS"]
)

api_router.include_router(
    auth_router,
    prefix="/auth",
    tags=["AUTH"]
)

api_router.include_router(
    product_router,
    prefix=APIRoutes.PRODUCTS.value,
    tags=["PRODUCTS"]
)

api_router.include_router(
    product_category_router,
    prefix="/product-categories",
    tags=["PRODUCT_CATEGORIES"]
)

api_router.include_router(
    customer_router,
    prefix=APIRoutes.CUSTOMERS.value,
    tags=["CUSTOMERS"]
)

api_router.include_router(
    files_router,
    prefix="/files",
    tags=["FILES"]
)
api_router.include_router(
    payment_request_router,
    prefix=APIRoutes.PAYMENT_REQUESTS.value,
    tags=["PAYMENT_REQUESTS"]
)
api_router.include_router(
    site_master_router,
    prefix=APIRoutes.SITE_MASTER.value,
    tags=["SITE_MASTERS"]
)
api_router.include_router(
    notes_router,
    prefix=APIRoutes.NOTES.value,
    tags=["NOTES"]
)