Fix new services implementation 2

This commit is contained in:
Urtzi Alfaro
2025-08-14 13:26:59 +02:00
parent 262b3dc9c4
commit 0951547e92
39 changed files with 1203 additions and 917 deletions

View File

@@ -20,6 +20,7 @@ class Tenant(Base):
name = Column(String(200), nullable=False)
subdomain = Column(String(100), unique=True)
business_type = Column(String(100), default="bakery")
business_model = Column(String(100), default="individual_bakery") # individual_bakery, central_baker_satellite, retail_bakery, hybrid_bakery
# Location info
address = Column(Text, nullable=False)

View File

@@ -17,6 +17,7 @@ class BakeryRegistration(BaseModel):
postal_code: str = Field(..., pattern=r"^\d{5}$")
phone: str = Field(..., min_length=9, max_length=20)
business_type: str = Field(default="bakery")
business_model: Optional[str] = Field(default="individual_bakery")
@validator('phone')
def validate_spanish_phone(cls, v):
@@ -41,6 +42,15 @@ class BakeryRegistration(BaseModel):
if v not in valid_types:
raise ValueError(f'Business type must be one of: {valid_types}')
return v
@validator('business_model')
def validate_business_model(cls, v):
if v is None:
return v
valid_models = ['individual_bakery', 'central_baker_satellite', 'retail_bakery', 'hybrid_bakery']
if v not in valid_models:
raise ValueError(f'Business model must be one of: {valid_models}')
return v
class TenantResponse(BaseModel):
"""Tenant response schema - FIXED VERSION"""
@@ -48,6 +58,7 @@ class TenantResponse(BaseModel):
name: str
subdomain: Optional[str]
business_type: str
business_model: Optional[str]
address: str
city: str
postal_code: str
@@ -101,6 +112,7 @@ class TenantUpdate(BaseModel):
address: Optional[str] = Field(None, min_length=10, max_length=500)
phone: Optional[str] = None
business_type: Optional[str] = None
business_model: Optional[str] = None
class TenantListResponse(BaseModel):
"""Response schema for listing tenants"""