# app/modules/customers/schemas/__init__.py
"""
Customers module Pydantic schemas.

This is the canonical location for customer schemas.

Usage:
    from app.modules.customers.schemas import (
        CustomerRegister,
        CustomerUpdate,
        CustomerResponse,
        CustomerContext,
    )
"""

from app.modules.customers.schemas.context import CustomerContext
from app.modules.customers.schemas.customer import (
    AdminCustomerDetailResponse,
    # Admin Management
    AdminCustomerItem,
    AdminCustomerListResponse,
    # Address
    CustomerAddressCreate,
    CustomerAddressListResponse,
    CustomerAddressResponse,
    CustomerAddressUpdate,
    CustomerDetailResponse,
    CustomerListResponse,
    # Store Management
    CustomerMessageResponse,
    CustomerOrderInfo,
    CustomerOrdersResponse,
    CustomerPasswordChange,
    # Preferences
    CustomerPreferencesUpdate,
    # Registration & Authentication
    CustomerRegister,
    # Customer Response
    CustomerResponse,
    CustomerStatisticsResponse,
    CustomerUpdate,
    StoreCustomerListResponse,
)

__all__ = [
    # Context (for dependency injection)
    "CustomerContext",
    # Registration & Authentication
    "CustomerRegister",
    "CustomerUpdate",
    "CustomerPasswordChange",
    # Customer Response
    "CustomerResponse",
    "CustomerListResponse",
    # Address
    "CustomerAddressCreate",
    "CustomerAddressUpdate",
    "CustomerAddressResponse",
    "CustomerAddressListResponse",
    # Preferences
    "CustomerPreferencesUpdate",
    # Store Management
    "CustomerMessageResponse",
    "StoreCustomerListResponse",
    "CustomerDetailResponse",
    "CustomerOrderInfo",
    "CustomerOrdersResponse",
    "CustomerStatisticsResponse",
    # Admin Management
    "AdminCustomerItem",
    "AdminCustomerListResponse",
    "AdminCustomerDetailResponse",
]
