{
  "openapi": "3.1.0",
  "info": {
    "title": "iNTERNET PRAHA JOSEFOV — Order API",
    "description": "API pro objednávku optického internetu a IT služeb v Praze 1 – Josefov. Umožňuje AI agentům a integrovaným systémům odeslat poptávku bez webového formuláře. Objednávky zpracovává obchodní tým do 24 hodin.",
    "version": "1.0.0",
    "contact": {
      "name": "iNTERNET PRAHA JOSEFOV",
      "email": "obchod@pvip.cz",
      "url": "https://internet-Praha1.cz"
    }
  },
  "servers": [
    {
      "url": "https://internet-Praha1.cz",
      "description": "Production"
    }
  ],
  "paths": {
    "/api/order": {
      "post": {
        "operationId": "createOrder",
        "summary": "Odeslat objednávku internetu nebo IT služby",
        "description": "Přijme poptávku na optický internet nebo IT podporu. Nepožaduje autentizaci. Odpověď obsahuje referenční číslo a informace o dalším postupu. Obchodní tým se ozve do 24 hodin.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequest"
              },
              "examples": {
                "domacnost": {
                  "summary": "Objednávka pro domácnost",
                  "value": {
                    "name": "Jana Nováková",
                    "email": "jana@example.com",
                    "phone": "+420 777 123 456",
                    "address": "Pařížská 12, Praha 1",
                    "service": "optical-500",
                    "message": "Zájem o připojení od příštího měsíce."
                  }
                },
                "firma": {
                  "summary": "Firemní objednávka",
                  "value": {
                    "name": "Martin Kovář",
                    "email": "m.kovar@firma.cz",
                    "phone": "+420 800 123 456",
                    "address": "Dlouhá 5, Praha 1",
                    "service": "business",
                    "message": "Potřebujeme SLA garanci a statickou IP pro 20 zaměstnanců."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Objednávka přijata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Chybějící nebo neplatná pole",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Interní chyba serveru",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/check-availability": {
      "post": {
        "operationId": "checkAvailability",
        "summary": "Ověřit dostupnost internetu na adrese",
        "description": "Ověří, zda je zadaná adresa v oblasti pokrytí (Praha 1 a okolí).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["address"],
                "properties": {
                  "address": {
                    "type": "string",
                    "description": "Ulice a číslo popisné, Praha",
                    "example": "Kaprova 10, Praha 1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Výsledek ověření dostupnosti",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "available": {"type": "boolean"},
                    "address": {"type": "string"},
                    "message": {"type": "string"}
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "OrderRequest": {
        "type": "object",
        "required": ["name", "address"],
        "properties": {
          "name": {
            "type": "string",
            "description": "Jméno a příjmení zákazníka nebo název firmy",
            "example": "Jana Nováková"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "E-mailová adresa (povinná pokud není uveden telefon)",
            "example": "jana@example.com"
          },
          "phone": {
            "type": "string",
            "description": "Telefonní číslo (povinné pokud není uveden e-mail)",
            "example": "+420 777 123 456"
          },
          "address": {
            "type": "string",
            "description": "Adresa instalace (ulice, číslo, Praha 1)",
            "example": "Pařížská 12, Praha 1"
          },
          "service": {
            "type": "string",
            "description": "Typ požadované služby",
            "enum": [
              "optical-100",
              "optical-500",
              "optical-1000",
              "optical-2000",
              "business",
              "svj",
              "it-support"
            ],
            "enumDescriptions": {
              "optical-100":  "Optický internet 100 Mbit/s symetricky – domácnosti",
              "optical-500":  "Optický internet 500 Mbit/s symetricky – domácnosti",
              "optical-1000": "Optický internet 1000 Mbit/s symetricky",
              "optical-2000": "Optický internet 2000 Mbit/s symetricky",
              "business":     "Firemní optický internet se SLA a dedikovanou linkou",
              "svj":          "Internet pro SVJ a bytový dům",
              "it-support":   "Správa IT pro firmy v Praze 1"
            }
          },
          "message": {
            "type": "string",
            "description": "Volitelná poznámka nebo specifické požadavky",
            "example": "Zájem o připojení od příštího měsíce, preferuji kontakt e-mailem."
          }
        }
      },
      "OrderResponse": {
        "type": "object",
        "properties": {
          "ok": {"type": "boolean", "example": true},
          "reference": {
            "type": "string",
            "description": "Referenční číslo objednávky",
            "example": "IPJ-20260428-AB3F"
          },
          "message": {
            "type": "string",
            "example": "Vaše objednávka byla přijata. Ozveme se vám do 24 hodin na pracovní dny."
          },
          "next_steps": {
            "type": "array",
            "items": {"type": "string"}
          },
          "contact": {
            "type": "object",
            "properties": {
              "phone": {"type": "string"},
              "email": {"type": "string"},
              "web": {"type": "string"}
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "ok": {"type": "boolean", "example": false},
          "error": {"type": "string"}
        }
      }
    }
  }
}
