Source Code

;; youth-mentor -- youth mentorship matching
(define-data-var pair-count uint u0)
(define-map pairs uint { mentor: principal, mentee: principal, topic: (string-ascii 30), sessions: uint, active: bool })
(define-public (create-pair (mentee principal) (topic (string-ascii 30)))
  (let ((id (+ (var-get pair-count) u1)))
    (var-set pair-count id)
    (map-set pairs id { mentor: tx-sender, mentee: mentee, topic: topic, sessions: u0, active: true }) (ok id)))
(define-public (log-session (id uint))
  (let ((p (unwrap! (map-get? pairs id) (err u404))))
    (map-set pairs id (merge p { sessions: (+ (get sessions p) u1) })) (ok true)))
(define-public (end-pair (id uint))
  (let ((p (unwrap! (map-get? pairs id) (err u404))))
    (map-set pairs id (merge p { active: false })) (ok true)))
(define-read-only (get-pair (id uint)) (map-get? pairs id))

Functions (4)

FunctionAccessArgs
create-pairpublicmentee: principal, topic: (string-ascii 30
log-sessionpublicid: uint
end-pairpublicid: uint
get-pairread-onlyid: uint