40 lines
1.0 KiB
Python
Executable File
40 lines
1.0 KiB
Python
Executable File
from pydantic import BaseModel, ConfigDict
|
|
from typing import Optional, Any
|
|
from datetime import datetime
|
|
|
|
# --- Pontszabályok (Point Rules) ---
|
|
class PointRuleBase(BaseModel):
|
|
rule_key: str
|
|
points: int
|
|
region_code: str = "GLOBAL"
|
|
start_date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
is_active: bool = True
|
|
|
|
class PointRuleCreate(PointRuleBase):
|
|
pass
|
|
|
|
class PointRuleResponse(PointRuleBase):
|
|
id: int
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
# --- Regionális Beállítások (MOT, Tax, stb.) ---
|
|
class RegionalSettingBase(BaseModel):
|
|
region_code: str
|
|
setting_key: str
|
|
value: Any # JSON adat (pl. {"months": 24})
|
|
start_date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
|
|
class RegionalSettingCreate(RegionalSettingBase):
|
|
pass
|
|
|
|
# --- Szintlépési Konfiguráció ---
|
|
class LevelConfigBase(BaseModel):
|
|
level_number: int
|
|
min_points: int
|
|
name_translation_key: str
|
|
region_code: str = "GLOBAL"
|
|
|
|
class LevelConfigUpdate(LevelConfigBase):
|
|
pass |