Spaces:
Runtime error
Runtime error
File size: 1,623 Bytes
ede4a2e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | from datetime import datetime
from decimal import Decimal
from pydantic import BaseModel, ConfigDict, Field
from app.core.enums import DecisionAction, RuleType
class RuleBase(BaseModel):
tenant_id: str = "default"
product_type: str = "TWO_WHEELER_LOAN"
dealer_id: str | None = None
rule_code: str = Field(min_length=2, max_length=100)
rule_name: str = Field(min_length=2, max_length=255)
rule_type: RuleType
field_name: str = Field(min_length=1, max_length=100)
operator: str = Field(min_length=1, max_length=20)
field_value: str = Field(min_length=1, max_length=255)
score_value: Decimal | None = None
score_component: str | None = None
decision_action: DecisionAction | None = None
reason_code: str = Field(min_length=2, max_length=100)
priority: int = 100
is_active: bool = True
class RuleCreate(RuleBase):
created_by: str | None = "system"
class RuleUpdate(BaseModel):
rule_name: str | None = None
field_name: str | None = None
operator: str | None = None
field_value: str | None = None
score_value: Decimal | None = None
score_component: str | None = None
decision_action: DecisionAction | None = None
reason_code: str | None = None
priority: int | None = None
is_active: bool | None = None
actor: str | None = "system"
class RuleStatusUpdate(BaseModel):
is_active: bool
actor: str | None = "system"
class RuleResponse(RuleBase):
id: int
version: int
created_by: str | None
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)
|