admin_nyelvi_javítas

This commit is contained in:
Roo
2026-07-25 10:22:03 +00:00
parent 33c4d793db
commit c9118bf52f
29 changed files with 4474 additions and 943 deletions

View File

@@ -43,12 +43,18 @@ class CommissionRuleCreate(BaseModel):
upline_commission_percent: Optional[float] = None
renewal_commission_percent: Optional[float] = None
commission_max_amount: Optional[float] = None
# Phase 2: Szintenkénti plafonok (NULL/0 = korlátlan, fallback: commission_max_amount)
gen1_max_amount: Optional[float] = None
gen2_max_amount: Optional[float] = None
gen2_renewal_percent: Optional[float] = None
is_campaign: bool = False
start_date: Optional[date] = None
end_date: Optional[date] = None
name: str
description: Optional[str] = None
is_active: bool = True
# Phase 3: Conflict override — admin acknowledges overlapping rule
force_override: bool = False
class CommissionRuleUpdate(BaseModel):
@@ -62,12 +68,18 @@ class CommissionRuleUpdate(BaseModel):
upline_commission_percent: Optional[float] = None
renewal_commission_percent: Optional[float] = None
commission_max_amount: Optional[float] = None
# Phase 2: Szintenkénti plafonok
gen1_max_amount: Optional[float] = None
gen2_max_amount: Optional[float] = None
gen2_renewal_percent: Optional[float] = None
is_campaign: Optional[bool] = None
start_date: Optional[date] = None
end_date: Optional[date] = None
name: Optional[str] = None
description: Optional[str] = None
is_active: Optional[bool] = None
# Phase 3: Conflict override — admin acknowledges overlapping rule
force_override: bool = False
class CommissionRuleResponse(BaseModel):
@@ -82,6 +94,10 @@ class CommissionRuleResponse(BaseModel):
upline_commission_percent: Optional[float] = None
renewal_commission_percent: Optional[float] = None
commission_max_amount: Optional[float] = None
# Phase 2: Szintenkénti plafonok
gen1_max_amount: Optional[float] = None
gen2_max_amount: Optional[float] = None
gen2_renewal_percent: Optional[float] = None
is_campaign: bool
start_date: Optional[date] = None
end_date: Optional[date] = None
@@ -116,6 +132,8 @@ class CommissionDistributionRequest(BaseModel):
transaction_amount: float = Field(..., gt=0, description="The purchase/subscription amount")
transaction_date: date = Field(..., description="Date of the transaction")
region_code: str = Field("GLOBAL", max_length=10, description="Region code for rule matching")
# Phase 2: Renewal flag - TRUE = renewal transaction, FALSE = first-time purchase
is_renewal: bool = Field(False, description="TRUE = renewal transaction, FALSE = first-time purchase")
class CommissionDistributionItem(BaseModel):
@@ -136,3 +154,23 @@ class CommissionDistributionResponse(BaseModel):
transaction_amount: float
items: List[CommissionDistributionItem]
total_commission: float = Field(..., description="Sum of all commission payouts")
class ConflictingRuleInfo(BaseModel):
"""Information about a conflicting rule returned in a 409 response."""
id: int
name: str
rule_type: CommissionRuleTypeEnum
tier: CommissionTierEnum
region_code: str
is_campaign: bool
is_active: bool
class ConflictResponse(BaseModel):
"""
Response schema returned when a conflicting active rule is detected
and force_override was not set.
"""
detail: str = "A conflicting active rule already exists for this combination."
conflicting_rule: ConflictingRuleInfo