"""
Pydantic schemas package for request/response validation.
"""
from app.schemas.pagination import PaginationParams, PaginatedResponse
from app.schemas.user import (
    UserCreate, UserUpdate, UserResponse, UserLogin, Token, TokenData
)
from app.schemas.establishment import (
    EstablishmentCreate, EstablishmentUpdate, EstablishmentResponse
)
from app.schemas.room import (
    RoomTypeCreate, RoomTypeUpdate, RoomTypeResponse,
    RoomCreate, RoomUpdate, RoomResponse, RoomAvailability
)
from app.schemas.client import (
    ClientCreate, ClientUpdate, ClientResponse, ClientSearch
)
from app.schemas.reservation import (
    ReservationCreate, ReservationUpdate, ReservationResponse,
    ReservationCalendarItem, ReservationStatusUpdate
)
from app.schemas.folio import (
    FolioResponse, FolioItemCreate, FolioItemResponse,
    FolioSummary
)
from app.schemas.payment import (
    PaymentCreate, PaymentResponse
)
from app.schemas.report import (
    DashboardKPIs, DailyReportResponse, MonthlyReportResponse,
    PeriodComparison
)
from app.schemas.expense import (
    ExpenseCreate, ExpenseUpdate, ExpenseResponse, ExpenseListResponse,
    ExpenseAttachmentResponse, ExpenseReject, ExpenseMarkPaid,
    ExpenseStatistics, ExpenseByDepartment
)

__all__ = [
    # Pagination
    "PaginationParams", "PaginatedResponse",
    # User
    "UserCreate", "UserUpdate", "UserResponse", "UserLogin", "Token", "TokenData",
    # Establishment
    "EstablishmentCreate", "EstablishmentUpdate", "EstablishmentResponse",
    # Room
    "RoomTypeCreate", "RoomTypeUpdate", "RoomTypeResponse",
    "RoomCreate", "RoomUpdate", "RoomResponse", "RoomAvailability",
    # Client
    "ClientCreate", "ClientUpdate", "ClientResponse", "ClientSearch",
    # Reservation
    "ReservationCreate", "ReservationUpdate", "ReservationResponse",
    "ReservationCalendarItem", "ReservationStatusUpdate",
    # Folio
    "FolioResponse", "FolioItemCreate", "FolioItemResponse", "FolioSummary",
    # Payment
    "PaymentCreate", "PaymentResponse",
    # Report
    "DashboardKPIs", "DailyReportResponse", "MonthlyReportResponse",
    "PeriodComparison",
    # Expense
    "ExpenseCreate", "ExpenseUpdate", "ExpenseResponse", "ExpenseListResponse",
    "ExpenseAttachmentResponse", "ExpenseReject", "ExpenseMarkPaid",
    "ExpenseStatistics", "ExpenseByDepartment",
]
