{ "name": "Announcement", "type": "object", "properties": { "team_id": { "type": "string", "description": "ID of the team that created this announcement" }, "vendor_id": { "type": "string", "description": "Vendor/owner ID" }, "title": { "type": "string", "description": "Announcement headline" }, "body": { "type": "string", "description": "Full announcement content/message" }, "flyer_url": { "type": "string", "description": "URL to uploaded flyer image" }, "audience": { "type": "array", "description": "Who can see this announcement", "items": { "type": "string", "enum": [ "all", "vendor", "client", "workforce", "procurement", "operator", "sector", "admin" ] } }, "specific_recipients": { "type": "array", "description": "Specific individual staff members to send this announcement to", "items": { "type": "object", "properties": { "staff_id": { "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" }, "phone": { "type": "string" }, "position": { "type": "string" } } } }, "status": { "type": "string", "enum": [ "draft", "scheduled", "active", "paused", "expired" ], "default": "draft", "description": "Current status of the announcement" }, "priority": { "type": "string", "enum": [ "low", "normal", "high", "urgent" ], "default": "normal", "description": "Announcement priority/urgency level" }, "publish_date": { "type": "string", "format": "date-time", "description": "Scheduled publish date and time" }, "expire_date": { "type": "string", "format": "date-time", "description": "When the announcement stops being visible" }, "send_email": { "type": "boolean", "default": false, "description": "Whether to also send this as an email to audience" }, "send_push": { "type": "boolean", "default": false, "description": "Whether to send push notification" }, "pin_to_top": { "type": "boolean", "default": false, "description": "Pin this announcement to top of feed" }, "view_count": { "type": "number", "default": 0, "description": "Number of views" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "Tags for categorization" }, "created_by_name": { "type": "string", "description": "Name of user who created the announcement" } }, "required": [ "team_id", "title", "body", "audience", "status" ] }