;; SatGuard Pool Stats
(define-constant err-owner (err u1000))
(define-data-var admin principal tx-sender)
(define-map pool-stats {pid: uint} {total-claims: uint,total-paid: uint,total-rejected: uint,last-update: uint})
(define-read-only (get-stat (pid uint)) (default-to {total-claims: u0,total-paid: u0,total-rejected: u0,last-update: u0} (map-get? pool-stats {pid: pid})))
(define-read-only (get-total-claims (pid uint)) (get total-claims (get-stat pid)))
(define-public (record-claim (pid uint))
(let ((s (get-stat pid)))
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(map-set pool-stats {pid: pid} (merge s {total-claims: (+ (get total-claims s) u1),last-update: block-height}))
(print {e: "claim-recorded",pid: pid})
(ok true)))
(define-public (record-paid (pid uint) (amt uint))
(let ((s (get-stat pid)))
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(map-set pool-stats {pid: pid} (merge s {total-paid: (+ (get total-paid s) amt),last-update: block-height}))
(print {e: "paid-recorded",pid: pid,amt: amt})
(ok true)))
(define-public (record-rejected (pid uint))
(let ((s (get-stat pid)))
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(map-set pool-stats {pid: pid} (merge s {total-rejected: (+ (get total-rejected s) u1),last-update: block-height}))
(print {e: "rejected-recorded",pid: pid})
(ok true)))