2025-06-02 12:04:09 +00:00

42 lines
943 B
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel
# Shared properties
class CustomerBase(BaseModel):
first_name: str
last_name: str
email: str # Using str instead of EmailStr to avoid additional dependency
phone: Optional[str] = None
address: Optional[str] = None
# Properties to receive on customer creation
class CustomerCreate(CustomerBase):
pass
# Properties to receive on customer update
class CustomerUpdate(CustomerBase):
first_name: Optional[str] = None
last_name: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
address: Optional[str] = None
# Properties shared by models stored in DB
class CustomerInDBBase(CustomerBase):
id: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
# Properties to return to client
class Customer(CustomerInDBBase):
pass