Source Code

;; carpet-wash -- mosque carpet cleaning service
(define-data-var job-count uint u0)
(define-map jobs uint { cleaner: principal, mosque: (string-ascii 30), date: uint, cost: uint, done: bool })
(define-public (book-cleaning (mosque (string-ascii 30)) (date uint) (cost uint))
  (let ((id (+ (var-get job-count) u1)))
    (var-set job-count id)
    (map-set jobs id { cleaner: tx-sender, mosque: mosque, date: date, cost: cost, done: false }) (ok id)))
(define-public (complete-job (id uint))
  (let ((j (unwrap! (map-get? jobs id) (err u404))))
    (map-set jobs id (merge j { done: true })) (ok true)))
(define-read-only (get-job (id uint)) (map-get? jobs id))
(define-read-only (get-count) (var-get job-count))

Functions (4)

FunctionAccessArgs
book-cleaningpublicmosque: (string-ascii 30
complete-jobpublicid: uint
get-jobread-onlyid: uint
get-countread-only