Skip to content

[Contract] Build Insurance Claims Management #475

@yusuftomilola

Description

@yusuftomilola

Claims lifecycle management against active insurance policies.

Requirements

InsuranceClaim struct: claim_id: BytesN<32>, policy_id: BytesN<32>, asset_id: BytesN<32>, claimant: Address, claim_type: ClaimType (enum: Damage, Theft, Loss, Liability), amount: i128, status: ClaimStatus (Submitted, UnderReview, Approved, Rejected, Disputed, Paid), filed_at: u64, approved_amount: i128

Functions:

  • file_insurance_claim(...) — claimant authenticates; policy must be Active; stores claim; indexes by asset ID
  • mark_insurance_claim_under_review(env, claim_id, insurer) — insurer moves Submitted → UnderReview
  • approve_insurance_claim(env, claim_id, insurer, approved_amount) — sets Approved, records amount
  • reject_insurance_claim(env, claim_id, insurer) — insurer rejects Submitted or UnderReview
  • dispute_insurance_claim(env, claim_id, claimant) — claimant disputes a Rejected claim
  • pay_insurance_claim(env, claim_id, insurer) — marks Approved claim as Paid
  • get_insurance_claim, get_asset_insurance_claims

Acceptance Criteria

  • Claim can only be filed against an Active policy
  • Status transitions enforced (e.g. cannot approve a Paid claim)
  • approved_amount cannot exceed coverage_amount

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions