{"openapi":"3.1.0","info":{"title":"George Avgousti Photography: booking for AI assistants","version":"1.0","description":"Check wedding and christening photography collections and live date availability, and send a couple's enquiry with their permission. The studio replies personally with a quotation; nothing is booked automatically. Read GET /api/agent first."},"servers":[{"url":"https://www.georgeavgousti.com"}],"paths":{"/api/agent":{"get":{"operationId":"getCatalogue","summary":"Celebrations, collections, optional extras, price guide and the details an enquiry needs","responses":{"200":{"description":"Catalogue","content":{"application/json":{"schema":{"type":"object","properties":{"studio":{"type":"string"},"website":{"type":"string"},"based":{"type":"string"},"howBookingWorks":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"string"}},"celebrations":{"type":"array","description":"Each: id, name, about, priceGuide, page, collections (package, summary, includes, optionalExtras...), requiredDetails (key, label, options, format)","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"priceGuide":{"type":"string"}}}},"multiDayWeddings":{"type":"string"}}}}}}}}},"/api/agent/availability":{"get":{"operationId":"checkDate","summary":"Is a date free? available, limited (another couple has a quotation for it), booked or unknown","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"YYYY-MM-DD"},{"name":"celebration","in":"query","schema":{"type":"string"},"description":"christening, with time, checks only the hours around the ceremony"},{"name":"time","in":"query","schema":{"type":"string"},"description":"HH:MM, christenings only"}],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"status":{"type":"string","enum":["available","limited","booked","unavailable","unknown"]},"note":{"type":"string"}}}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string"}}}}}}}}},"/api/agent/enquiry":{"post":{"operationId":"sendEnquiry","summary":"Send the couple’s enquiry, only when they asked you to. They get a confirmation email; the studio replies with a quotation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["coupleConsent","celebration","package","partner1","email","date","message","details"],"properties":{"coupleConsent":{"type":"boolean","enum":[true],"description":"true only when the couple asked you to send this for them"},"assistant":{"type":"string","description":"Your name, e.g. ChatGPT, Claude, Gemini"},"celebration":{"type":"string","enum":["destination","traditional","elopement","christening"]},"package":{"type":"string","description":"The exact \"package\" value from the catalogue"},"extras":{"type":"array","items":{"type":"string"},"description":"Optional extras from that collection"},"partner1":{"type":"string"},"partner2":{"type":"string","description":"Required except for christenings"},"email":{"type":"string","format":"email","description":"The couple’s own email"},"date":{"type":"string","format":"date"},"message":{"type":"string","description":"A few words from the couple about their day"},"details":{"type":"object","description":"Every requiredDetails key for the celebration (GET /api/agent)","properties":{"venue":{"type":"string"},"guests":{"type":"string"},"planner":{"type":"string"},"heard":{"type":"string"},"time":{"type":"string"},"bridePrep":{"type":"string"},"groomPrep":{"type":"string"},"church":{"type":"string"},"reception":{"type":"string"},"country":{"type":"string"},"people":{"type":"string"},"choice":{"type":"string"}}},"language":{"type":"string","enum":["en","el"],"description":"el for a reply in Greek"}}}}}},"responses":{"200":{"description":"Sent","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"message":{"type":"string"}}}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string"}}}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string"}}}}}}}}}}}