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

33 lines
1.3 KiB
Python

from typing import Optional, List
from sqlalchemy.orm import Session
from app.crud.base import CRUDBase
from app.models.policy import Policy
from app.schemas.policy import PolicyCreate, PolicyUpdate
class CRUDPolicy(CRUDBase[Policy, PolicyCreate, PolicyUpdate]):
def get_by_policy_number(self, db: Session, *, policy_number: str) -> Optional[Policy]:
return db.query(Policy).filter(Policy.policy_number == policy_number).first()
def get_by_customer(self, db: Session, *, customer_id: int, skip: int = 0, limit: int = 100) -> List[Policy]:
return db.query(Policy).filter(Policy.customer_id == customer_id).offset(skip).limit(limit).all()
def create(self, db: Session, *, obj_in: PolicyCreate) -> Policy:
db_obj = Policy(
policy_number=obj_in.policy_number,
customer_id=obj_in.customer_id,
policy_type=obj_in.policy_type,
status=obj_in.status,
start_date=obj_in.start_date,
end_date=obj_in.end_date,
premium_amount=obj_in.premium_amount,
coverage_amount=obj_in.coverage_amount,
deductible_amount=obj_in.deductible_amount,
description=obj_in.description
)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
policy = CRUDPolicy(Policy)