""" Loan request validators for different platforms """ from pydantic import BaseModel, Field, validator from typing import Optional from core_engine.domain.models.common import PlatformType class NOWLoanApplicationRequest(BaseModel): """NOW platform loan application request schema""" loan_amount: float = Field(..., gt=0, description="Loan amount") purpose: str = Field(..., min_length=1, description="Loan purpose") user_id: Optional[str] = Field(None, description="User ID (optional if in token)") term_days: Optional[int] = Field(None, gt=0, description="Loan term in days") @validator('loan_amount') def validate_amount(cls, v): if v < 1000 or v > 100000: raise ValueError('Loan amount must be between 1000 and 100000') return v class SaathiLoanApplicationRequest(BaseModel): """Saathi platform loan application request schema""" amount: float = Field(..., gt=0, description="Loan amount") loan_purpose: str = Field(..., min_length=1, description="Loan purpose") customer_id: Optional[str] = Field(None, description="Customer ID") loan_term: Optional[int] = Field(None, gt=0, description="Loan term in days") @validator('amount') def validate_amount(cls, v): if v < 1000 or v > 100000: raise ValueError('Loan amount must be between 1000 and 100000') return v