GayathriArjun's picture
Make pet and guest field as optional
0c31b33
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
@validator("ttl")
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