;; aid-basket -- emergency food basket distribution
(define-constant CONTRACT-OWNER tx-sender)
(define-constant ERR-AUTH (err u401))
(define-data-var basket-count uint u0)
(define-data-var total-baskets uint u0)
(define-map baskets uint { donor: principal, region: (string-ascii 30), qty: uint, delivered: bool })
(define-public (donate-baskets (region (string-ascii 30)) (qty uint))
(let ((id (+ (var-get basket-count) u1)))
(var-set basket-count id)
(var-set total-baskets (+ (var-get total-baskets) qty))
(map-set baskets id { donor: tx-sender, region: region, qty: qty, delivered: false }) (ok id)))
(define-public (mark-delivered (id uint))
(let ((b (unwrap! (map-get? baskets id) (err u404))))
(map-set baskets id (merge b { delivered: true })) (ok true)))
(define-read-only (get-basket (id uint)) (map-get? baskets id))
(define-read-only (get-total) (var-get total-baskets))