;; SatGuard Claim Stats
(define-constant err-owner (err u1010))
(define-data-var admin principal tx-sender)
(define-data-var total-submitted uint u0)
(define-data-var total-approved uint u0)
(define-data-var total-rejected uint u0)
(define-data-var total-paid-amt uint u0)
(define-read-only (get-totals) (ok {submitted: (var-get total-submitted),approved: (var-get total-approved),rejected: (var-get total-rejected),paid: (var-get total-paid-amt)}))
(define-read-only (get-approval-rate)
(let ((total (+ (var-get total-approved) (var-get total-rejected))))
(if (> total u0) (ok (/ (* (var-get total-approved) u100) total)) (ok u0))))
(define-read-only (get-avg-claim)
(if (> (var-get total-approved) u0)
(ok (/ (var-get total-paid-amt) (var-get total-approved)))
(ok u0)))
(define-public (record-submission)
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set total-submitted (+ (var-get total-submitted) u1))
(print {e: "claim-stat-sub"})
(ok true)))
(define-public (record-approval (amt uint))
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set total-approved (+ (var-get total-approved) u1))
(var-set total-paid-amt (+ (var-get total-paid-amt) amt))
(print {e: "claim-stat-appr",amt: amt})
(ok true)))
(define-public (record-rejection)
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set total-rejected (+ (var-get total-rejected) u1))
(print {e: "claim-stat-rej"})
(ok true)))