v1.3.0 — pannello admin completo, auth localStorage, Baileys WA, customers, calendario, paginazione, dashboard 7gg
This commit is contained in:
90
app/schemas.py
Normal file
90
app/schemas.py
Normal file
@@ -0,0 +1,90 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import datetime, date
|
||||
from typing import Optional
|
||||
|
||||
|
||||
# === Services ===
|
||||
class ServiceOut(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
slug: str
|
||||
duration_min: int
|
||||
description: Optional[str] = None
|
||||
category: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ServiceCreate(BaseModel):
|
||||
name: str
|
||||
slug: str
|
||||
duration_min: int = 15
|
||||
description: Optional[str] = None
|
||||
category: str = "generale"
|
||||
|
||||
|
||||
# === Providers ===
|
||||
class ProviderOut(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ProviderCreate(BaseModel):
|
||||
name: str
|
||||
email: Optional[str] = None
|
||||
phone: Optional[str] = None
|
||||
google_calendar_id: Optional[str] = None
|
||||
|
||||
|
||||
# === Availability ===
|
||||
class TimeSlot(BaseModel):
|
||||
start: str # "09:00"
|
||||
end: str # "09:30"
|
||||
provider_id: int
|
||||
provider_name: str
|
||||
|
||||
|
||||
class AvailabilityRule(BaseModel):
|
||||
weekday: int # 0=lun, 6=dom
|
||||
start: str # "09:00"
|
||||
end: str # "13:00"
|
||||
|
||||
|
||||
# === Bookings ===
|
||||
class BookingCreate(BaseModel):
|
||||
service_id: int
|
||||
provider_id: int
|
||||
start_at: datetime
|
||||
customer_name: str
|
||||
customer_phone: str
|
||||
customer_email: Optional[str] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
class BookingOut(BaseModel):
|
||||
id: int
|
||||
service_id: int
|
||||
provider_id: int
|
||||
customer_name: str
|
||||
customer_phone: str
|
||||
customer_email: Optional[str] = None
|
||||
start_at: datetime
|
||||
end_at: datetime
|
||||
status: str
|
||||
notes: Optional[str] = None
|
||||
created_at: datetime
|
||||
|
||||
service: Optional[ServiceOut] = None
|
||||
provider: Optional[ProviderOut] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class BookingUpdate(BaseModel):
|
||||
status: Optional[str] = None
|
||||
notes: Optional[str] = None
|
||||
Reference in New Issue
Block a user