Source Code

;; mawlid-event -- Mawlid celebration event planner
(define-data-var event-count uint u0)
(define-map events uint { host: principal, venue: (string-ascii 30), date: uint, guests: uint, active: bool })
(define-public (create-event (venue (string-ascii 30)) (date uint) (guests uint))
  (let ((id (+ (var-get event-count) u1)))
    (var-set event-count id)
    (map-set events id { host: tx-sender, venue: venue, date: date, guests: guests, active: true }) (ok id)))
(define-public (cancel-event (id uint))
  (let ((e (unwrap! (map-get? events id) (err u404))))
    (asserts! (is-eq tx-sender (get host e)) (err u401))
    (map-set events id (merge e { active: false })) (ok true)))
(define-read-only (get-event (id uint)) (map-get? events id))
(define-read-only (get-count) (var-get event-count))

Functions (4)

FunctionAccessArgs
create-eventpublicvenue: (string-ascii 30
cancel-eventpublicid: uint
get-eventread-onlyid: uint
get-countread-only