"""
Pydantic Schemas Package
Request/Response validation and serialization
"""
from app.schemas.auth import (
    TokenResponse,
    LoginRequest,
    RegisterRequest,
    OTPVerifyRequest,
    OTPSendRequest,
    RefreshTokenRequest,
    SocialLoginRequest,
    DeleteAccountRequest,
)
from app.schemas.user import (
    UserBase,
    UserCreate,
    UserUpdate,
    UserResponse,
    UserListResponse,
    UserProfileUpdate,
)
from app.schemas.driver import (
    DriverBase,
    DriverCreate,
    DriverUpdate,
    DriverResponse,
    DriverLocationUpdate,
    DriverDocumentCreate,
    DriverVerificationRequest,
)
from app.schemas.ride import (
    RideBase,
    RideCreate,
    RideResponse,
    FareEstimateRequest,
    FareEstimateResponse,
    FareBidCreate,
    FareBidResponse,
    RideStatusUpdate,
    RideListResponse,
)
from app.schemas.payment import (
    WalletResponse,
    WalletTopupRequest,
    TransactionResponse,
    WithdrawalRequest,
    PaymentResponse,
)
from app.schemas.config import (
    SystemConfigResponse,
    SystemConfigUpdate,
    MapProviderConfigResponse,
    MapProviderConfigUpdate,
)
from app.schemas.common import (
    PaginationParams,
    PaginatedResponse,
    MessageResponse,
    ErrorResponse,
    LocationSchema,
)

__all__ = [
    # Auth
    "TokenResponse",
    "LoginRequest",
    "RegisterRequest",
    "OTPVerifyRequest",
    "OTPSendRequest",
    "RefreshTokenRequest",
    "SocialLoginRequest",
    "DeleteAccountRequest",
    # User
    "UserBase",
    "UserCreate",
    "UserUpdate",
    "UserResponse",
    "UserListResponse",
    "UserProfileUpdate",
    # Driver
    "DriverBase",
    "DriverCreate",
    "DriverUpdate",
    "DriverResponse",
    "DriverLocationUpdate",
    "DriverDocumentCreate",
    "DriverVerificationRequest",
    # Ride
    "RideBase",
    "RideCreate",
    "RideResponse",
    "FareEstimateRequest",
    "FareEstimateResponse",
    "FareBidCreate",
    "FareBidResponse",
    "RideStatusUpdate",
    "RideListResponse",
    # Payment
    "WalletResponse",
    "WalletTopupRequest",
    "TransactionResponse",
    "WithdrawalRequest",
    "PaymentResponse",
    # Config
    "SystemConfigResponse",
    "SystemConfigUpdate",
    "MapProviderConfigResponse",
    "MapProviderConfigUpdate",
    # Common
    "PaginationParams",
    "PaginatedResponse",
    "MessageResponse",
    "ErrorResponse",
    "LocationSchema",
]
