from datetime import date, datetime from typing import Optional from pydantic import BaseModel # Shared properties class RentalRecordBase(BaseModel): item_id: int customer_id: int rental_date: date return_date: date actual_return_date: Optional[date] = None total_cost: float notes: Optional[str] = None # Properties to receive on rental record creation class RentalRecordCreate(RentalRecordBase): pass # Properties to receive on rental record update class RentalRecordUpdate(RentalRecordBase): item_id: Optional[int] = None customer_id: Optional[int] = None rental_date: Optional[date] = None return_date: Optional[date] = None actual_return_date: Optional[date] = None total_cost: Optional[float] = None notes: Optional[str] = None # Properties shared by models stored in DB class RentalRecordInDBBase(RentalRecordBase): id: int created_at: datetime updated_at: datetime class Config: from_attributes = True # Properties to return to client class RentalRecord(RentalRecordInDBBase): pass