"""Report schemas.""" from datetime import date from typing import Any from pydantic import BaseModel class DateRangeFilter(BaseModel): """Date range filter for reports.""" start_date: date | None = None end_date: date | None = None class SpaceUsageItem(BaseModel): """Space usage report item.""" space_id: int space_name: str total_bookings: int approved_bookings: int pending_bookings: int rejected_bookings: int canceled_bookings: int total_hours: float class SpaceUsageReport(BaseModel): """Space usage report.""" items: list[SpaceUsageItem] total_bookings: int date_range: dict[str, Any] class TopUserItem(BaseModel): """Top user report item.""" user_id: int user_name: str user_email: str total_bookings: int approved_bookings: int total_hours: float class TopUsersReport(BaseModel): """Top users report.""" items: list[TopUserItem] date_range: dict[str, Any] class ApprovalRateReport(BaseModel): """Approval rate report.""" total_requests: int approved: int rejected: int pending: int canceled: int approval_rate: float rejection_rate: float date_range: dict[str, Any]