File size: 1,508 Bytes
6cf8871
 
 
 
 
 
 
74f57ab
 
 
 
6cf8871
74f57ab
6cf8871
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06675a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel
from typing import List, Optional

class ReceiptItem(BaseModel):
    description: str
    amount: float

class FraudData(BaseModel):
    fraud_detected: bool
    fraud_type: Optional[str] = None  # Type of fraud if detected, e.g., "duplicate", "suspicious"

class ReceiptData(BaseModel):
    fraud_check: Optional[List[FraudData]] = False  # Optional field for fraud detection
    merchant: str
    date: str  
    total_amount: float
    items: Optional[List[ReceiptItem]] = None



class FeeItem(BaseModel):
    bill_date: Optional[str] = None  # Some bills may not have per-item date
    description: str
    amount: float
    bill_month: Optional[str] = None  # Some bills may not have a billing month

class ChildFeeForm(BaseModel):
    items: List[FeeItem]
    total: float  # Calculated after parsing




class MedicalClaimItem(BaseModel):
    name: str  # Patient name
    relationship: str  # self, spouse, parent, child
    category: str  # in-patient, out-patient, maternity(cesarean), maternity(normal)
    detail: str  # doctor's fee, diagnostic tests, medicines, other hospitalization
    amount: float

class MedicalReimbursementForm(BaseModel):
    company: Optional[str] = None
    extension_no: Optional[str] = None
    employee_name: str
    employee_code: str
    department: Optional[str] = None
    designation: Optional[str] = None
    date: Optional[str] = None
    billing_month: Optional[str] = None
    claims: List[MedicalClaimItem]
    total: float