v1.3.0 — pannello admin completo, auth localStorage, Baileys WA, customers, calendario, paginazione, dashboard 7gg

This commit is contained in:
2026-04-12 17:46:08 +00:00
commit c33ec8450e
31 changed files with 3072 additions and 0 deletions

90
app/schemas.py Normal file
View 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