;; perfume-souk -- halal perfume and attar store
(define-data-var scent-count uint u0)
(define-map scents uint { vendor: principal, name: (string-ascii 30), origin: (string-ascii 20), ml: uint, price: uint, sold: bool })
(define-public (list-scent (name (string-ascii 30)) (origin (string-ascii 20)) (ml uint) (price uint))
(let ((id (+ (var-get scent-count) u1)))
(var-set scent-count id)
(map-set scents id { vendor: tx-sender, name: name, origin: origin, ml: ml, price: price, sold: false }) (ok id)))
(define-public (buy-scent (id uint))
(let ((s (unwrap! (map-get? scents id) (err u404))))
(map-set scents id (merge s { sold: true })) (ok true)))
(define-read-only (get-scent (id uint)) (map-get? scents id))
(define-read-only (get-count) (var-get scent-count))