(define-map milestones uint {escrow-id: uint, amount: uint, completed: bool, approved: bool})
(define-data-var milestone-count uint u0)
(define-read-only (get-milestone (id uint)) (map-get? milestones id))
(define-public (create-milestone (escrow-id uint) (amount uint))
(let ((id (var-get milestone-count)))
(map-set milestones id {escrow-id: escrow-id, amount: amount, completed: false, approved: false})
(var-set milestone-count (+ id u1))
(ok id)))
(define-public (complete-milestone (id uint))
(match (map-get? milestones id)
m (begin (map-set milestones id (merge m {completed: true})) (ok true))
(err u404)))