The Offers System enables content creators (buyers) to submit licensing offers to account owners (sellers) for use of their IP — such as AI-generated images for ads, voice-over for radio spots, or video content. Buyers discover sellers via Z-links (e.g. /z/alex-rivera-a3f2), fill out an offer form, and submit. Sellers review offers in their Agent dashboard and can accept, reject, or counter them.
buyerAccountId is resolved from auth cookiepackages/db)offers table with offer_status enumcreateOffer, getOfferById, listOffersBySellerAccount, updateOfferStatusapps/zooly-app)POST /api/offers/submit): Auth required; creates offer from slug + authenticated buyerGET /api/offers/list): Auth required; returns offers for authenticated sellerPOST /api/offers/respond): Auth required; accept/reject/counterapps/zooly-app2)submitOffer(), fetchOffers(), respondToOffer() in appApi.tssubmitOffer() on submit