admin_users_personels

This commit is contained in:
Roo
2026-06-29 14:11:15 +00:00
parent 383e5511b6
commit df4a0f07ff
237 changed files with 17849 additions and 2934 deletions

View File

@@ -46,9 +46,10 @@ class PricingModel(BaseModel):
class AllowancesModel(BaseModel):
"""Korlátok és keretek a csomagban."""
max_vehicles: int = Field(..., ge=0, description="Maximális járműszám")
max_garages: int = Field(..., ge=0, description="Maximális garázsok száma")
monthly_free_credits: int = Field(..., ge=0, description="Havi ingyenes kreditek száma")
max_vehicles: int = Field(default=0, ge=0, description="Maximális járműszám")
max_garages: int = Field(default=0, ge=0, description="Maximális garázsok száma")
max_users: int = Field(default=0, ge=0, description="Maximális dolgozók/felhasználók száma (0 = nincs korlátozva)")
monthly_free_credits: int = Field(default=0, ge=0, description="Havi ingyenes kreditek száma")
class DurationModel(BaseModel):
@@ -100,7 +101,7 @@ class SubscriptionRulesModel(BaseModel):
ad_policy: Hirdetési szabályok (show_ads, ad_free_grace_days)
marketing: Marketing adatok a kártya megjelenítéshez (subtitle, badge, highlight_color)
"""
type: str = Field(..., pattern=r"^(private|corporate)$", description="Csomag típusa")
type: Optional[str] = Field(default=None, pattern=r"^(private|corporate|addon)$", description="Csomag típusa (private/corporate/addon)")
display_name: Optional[str] = Field(
default=None,
description="Emberi olvasásra szánt megjelenítési név (pl. 'Privát Ingyenes')",
@@ -141,9 +142,11 @@ class SubscriptionRulesModel(BaseModel):
@field_validator("type")
@classmethod
def validate_type(cls, v: str) -> str:
if v.lower() not in ("private", "corporate"):
raise ValueError("A 'type' mező csak 'private' vagy 'corporate' lehet.")
def validate_type(cls, v: Optional[str]) -> Optional[str]:
if v is None:
return v
if v.lower() not in ("private", "corporate", "addon"):
raise ValueError("A 'type' mező csak 'private', 'corporate' vagy 'addon' lehet.")
return v.lower()
@@ -184,6 +187,7 @@ class PublicSubscriptionTierResponse(BaseModel):
class SubscriptionTierCreate(BaseModel):
"""Új előfizetési csomag létrehozása (POST /)."""
name: str = Field(..., min_length=2, max_length=100, description="Csomag neve (pl. private_pro_v2)")
type: Optional[str] = Field(default="base", description="Csomag típusa: 'base' (alap) vagy 'addon' (kiegészítő)")
rules: SubscriptionRulesModel
is_custom: bool = Field(default=False, description="Egyedi (custom) csomag-e")
tier_level: int = Field(default=0, ge=0, description="Entitlement hierarchy level: 0=free, 1=premium, 2=enterprise")
@@ -202,6 +206,7 @@ class SubscriptionTierCreate(BaseModel):
class SubscriptionTierUpdate(BaseModel):
"""Meglévő előfizetési csomag részleges frissítése (PATCH /{tier_id})."""
name: Optional[str] = Field(default=None, min_length=2, max_length=100, description="Új csomagnév")
type: Optional[str] = Field(default=None, description="Csomag típusa: 'base' vagy 'addon'")
rules: Optional[SubscriptionRulesModel] = Field(default=None, description="Frissített rules JSONB")
is_custom: Optional[bool] = Field(default=None, description="Egyedi csomag jelölés")
tier_level: Optional[int] = Field(default=None, ge=0, description="Entitlement hierarchy level")