# app/modules/loyalty/schemas/__init__.py
"""
Loyalty module Pydantic schemas.

Request and response models for the loyalty API endpoints.

Usage:
    from app.modules.loyalty.schemas import (
        # Program
        ProgramCreate,
        ProgramUpdate,
        ProgramResponse,
        # Card
        CardEnrollRequest,
        CardResponse,
        # Stamp
        StampRequest,
        StampResponse,
        # Points
        PointsEarnRequest,
        PointsRedeemRequest,
        # PIN
        PinCreate,
        PinVerifyRequest,
    )
"""

from app.modules.loyalty.schemas.program import (
    # Program CRUD
    ProgramCreate,
    ProgramUpdate,
    ProgramResponse,
    ProgramListResponse,
    # Points rewards
    PointsRewardConfig,
    # Stats
    ProgramStatsResponse,
)

from app.modules.loyalty.schemas.card import (
    # Card operations
    CardEnrollRequest,
    CardResponse,
    CardDetailResponse,
    CardListResponse,
    CardLookupResponse,
)

from app.modules.loyalty.schemas.stamp import (
    # Stamp operations
    StampRequest,
    StampResponse,
    StampRedeemRequest,
    StampRedeemResponse,
)

from app.modules.loyalty.schemas.points import (
    # Points operations
    PointsEarnRequest,
    PointsEarnResponse,
    PointsRedeemRequest,
    PointsRedeemResponse,
)

from app.modules.loyalty.schemas.pin import (
    # Staff PIN
    PinCreate,
    PinUpdate,
    PinResponse,
    PinListResponse,
    PinVerifyRequest,
    PinVerifyResponse,
)

__all__ = [
    # Program
    "ProgramCreate",
    "ProgramUpdate",
    "ProgramResponse",
    "ProgramListResponse",
    "PointsRewardConfig",
    "ProgramStatsResponse",
    # Card
    "CardEnrollRequest",
    "CardResponse",
    "CardDetailResponse",
    "CardListResponse",
    "CardLookupResponse",
    # Stamp
    "StampRequest",
    "StampResponse",
    "StampRedeemRequest",
    "StampRedeemResponse",
    # Points
    "PointsEarnRequest",
    "PointsEarnResponse",
    "PointsRedeemRequest",
    "PointsRedeemResponse",
    # PIN
    "PinCreate",
    "PinUpdate",
    "PinResponse",
    "PinListResponse",
    "PinVerifyRequest",
    "PinVerifyResponse",
]
