{
  "openapi": "3.1.0",
  "info": {
    "title": "Brit Gentlemen’s Grooming — shop facts",
    "version": "1.0.0",
    "description": "Read-only JSON for the physical barbershop at Amfitritis 13, Palaio Faliro. v1 is the current and only major version. Breaking changes would be published under /api/v2. /api/shop is a permanent alias for /api/v1/shop. There is no booking, payment, authentication, or user API. See https://britbarber.gr/docs/"
  },
  "servers": [{ "url": "https://britbarber.gr" }],
  "paths": {
    "/api/v1/shop": {
      "get": {
        "summary": "Shop facts",
        "description": "Public landline, WhatsApp link, usual hours, and euro prices. Hours can change; confirm on Google Business.",
        "operationId": "getShopV1",
        "tags": ["shop"],
        "responses": {
          "200": {
            "description": "Current public facts",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Shop" }
              }
            }
          },
          "405": {
            "description": "Method not allowed",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Error" }
              }
            }
          }
        }
      }
    },
    "/api/shop": {
      "get": {
        "summary": "Shop facts (alias of /api/v1/shop)",
        "description": "Permanent unversioned alias. Prefer /api/v1/shop in new integrations.",
        "operationId": "getShop",
        "tags": ["shop"],
        "responses": {
          "200": {
            "description": "Current public facts",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Shop" }
              }
            }
          },
          "405": {
            "description": "Method not allowed",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Error" }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Hours": {
        "type": "object",
        "additionalProperties": false,
        "required": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"],
        "properties": {
          "monday": { "type": "string" },
          "tuesday": { "type": "string" },
          "wednesday": { "type": "string" },
          "thursday": { "type": "string" },
          "friday": { "type": "string" },
          "saturday": { "type": "string" },
          "sunday": { "type": "string" }
        }
      },
      "Service": {
        "type": "object",
        "additionalProperties": false,
        "required": ["id", "el", "en", "eur"],
        "properties": {
          "id": { "type": "string" },
          "el": { "type": "string", "description": "Greek name" },
          "en": { "type": "string", "description": "English name" },
          "eur": { "type": "number", "description": "Price in euros" }
        }
      },
      "Shop": {
        "type": "object",
        "additionalProperties": true,
        "required": ["name", "phone", "address", "hours", "services", "booking"],
        "properties": {
          "name": { "type": "string" },
          "url": { "type": "string", "format": "uri" },
          "phone": { "type": "string" },
          "whatsapp": { "type": "string", "format": "uri" },
          "address": { "type": "string" },
          "maps": { "type": "string", "format": "uri" },
          "hoursNote": { "type": "string" },
          "hours": { "$ref": "#/components/schemas/Hours" },
          "booking": { "type": "string" },
          "services": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/Service" }
          },
          "markdown": { "type": "string", "format": "uri" },
          "llms": { "type": "string", "format": "uri" },
          "openapi": { "type": "string", "format": "uri" },
          "docs": { "type": "string", "format": "uri" },
          "version": { "type": "string" }
        }
      },
      "Error": {
        "type": "object",
        "additionalProperties": true,
        "required": ["error", "status"],
        "properties": {
          "type": { "type": "string" },
          "title": { "type": "string" },
          "status": { "type": "integer" },
          "detail": { "type": "string" },
          "code": { "type": "string" },
          "hint": { "type": "string" },
          "instance": { "type": "string" },
          "error": {
            "type": "object",
            "additionalProperties": false,
            "required": ["code", "message"],
            "properties": {
              "code": { "type": "string" },
              "message": { "type": "string" },
              "hint": { "type": "string" }
            }
          }
        }
      }
    }
  }
}
