2025-06-09 08:10:19 +00:00

31 lines
1.2 KiB
Python

from typing import Optional, List
from sqlalchemy.orm import Session
from app.crud.base import CRUDBase
from app.models.claim import Claim
from app.schemas.claim import ClaimCreate, ClaimUpdate
class CRUDClaim(CRUDBase[Claim, ClaimCreate, ClaimUpdate]):
def get_by_claim_number(self, db: Session, *, claim_number: str) -> Optional[Claim]:
return db.query(Claim).filter(Claim.claim_number == claim_number).first()
def get_by_policy(self, db: Session, *, policy_id: int, skip: int = 0, limit: int = 100) -> List[Claim]:
return db.query(Claim).filter(Claim.policy_id == policy_id).offset(skip).limit(limit).all()
def create(self, db: Session, *, obj_in: ClaimCreate) -> Claim:
db_obj = Claim(
claim_number=obj_in.claim_number,
policy_id=obj_in.policy_id,
incident_date=obj_in.incident_date,
description=obj_in.description,
claim_amount=obj_in.claim_amount,
status=obj_in.status,
settlement_amount=obj_in.settlement_amount,
settlement_date=obj_in.settlement_date
)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
claim = CRUDClaim(Claim)