Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field, validator | |
| from typing import List, Union,Optional | |
| from datetime import timedelta | |
| class Service(BaseModel): | |
| service_id: str | |
| service_name: str | |
| duration: str | |
| price: float | |
| currency: str = "INR" | |
| quantity: int = Field(ge=1) # Quantity must be at least 1 | |
| class Associate(BaseModel): | |
| associate_id: str | |
| name: str | |
| class Guest(BaseModel): | |
| guest_id:str | |
| first_name: str | |
| last_name: str | |
| class Pet(BaseModel): | |
| pet_id: str | |
| pet_name: str | |
| class AppointmentCart(BaseModel): | |
| customer_id: str | |
| merchant_id: str | |
| merchant_name: str | |
| merchant_address: dict | |
| location_id: str | |
| payment_method: str | |
| coupon_code: str = None | |
| appointment_date: str | |
| appointment_time: str | |
| services: List[Service] | |
| associate: List[Associate] | |
| guest: Optional[List[Guest]]=None | |
| pet: Optional[List[Pet]]=None | |
| ttl: Union[int, str] = Field(default="forever") # Allow integer or "forever" | |
| business_url:str | |
| merchant_category:str | |
| def validate_ttl(cls, value): | |
| if isinstance(value, int): | |
| if value <= 0: | |
| raise ValueError("TTL must be a positive integer.") | |
| elif value != "forever": | |
| raise ValueError("TTL must be a positive integer or 'forever'.") | |
| return value |