{
  "openapi": "3.1.0",
  "info": {
    "title": "Sinais da Laise — APIs publicas",
    "version": "1.0.0",
    "description": "APIs JSON publicas, somente leitura, com CORS aberto. Nenhuma autenticacao e necessaria. Uso livre para citacao com atribuicao a 'Sinais da Laise' e link para https://sinaisdalaise.com. Treinamento de modelos nao autorizado.",
    "license": { "name": "Citacao com atribuicao", "url": "https://sinaisdalaise.com/transparencia" },
    "contact": { "name": "Sinais da Laise", "url": "https://sinaisdalaise.com/transparencia" }
  },
  "servers": [
    { "url": "https://sxiqbhcnkzrrenzgncss.supabase.co/functions/v1", "description": "Endpoints publicos" }
  ],
  "security": [],
  "paths": {
    "/rtp-agora": {
      "get": {
        "operationId": "getRtpAgora",
        "summary": "RTP ao vivo dos 50 principais slots",
        "description": "Atualiza a cada 15 minutos.",
        "security": [],
        "responses": {
          "200": {
            "description": "Lista de slots com RTP oficial e RTP ao vivo",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    },
    "/sinais-agora": {
      "get": {
        "operationId": "getSinaisAgora",
        "summary": "Sinais ao vivo (Aviator, Mines, Bac Bo, Roleta)",
        "description": "Atualiza a cada 5 minutos.",
        "security": [],
        "responses": {
          "200": {
            "description": "Sinais por jogo",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    },
    "/faq-agora": {
      "get": {
        "operationId": "getFaqAgora",
        "summary": "Perguntas frequentes canonicas",
        "description": "Atualiza a cada 1 hora.",
        "security": [],
        "responses": {
          "200": {
            "description": "Perguntas e respostas",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    },
    "/glossario-agora": {
      "get": {
        "operationId": "getGlossarioAgora",
        "summary": "Glossario de termos de cassino online",
        "description": "Atualiza a cada 24 horas.",
        "security": [],
        "responses": {
          "200": {
            "description": "Termos e definicoes",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    },
    "/melhor-horario-agora": {
      "get": {
        "operationId": "getMelhorHorarioAgora",
        "summary": "Melhores horarios por slot",
        "description": "Atualiza diariamente.",
        "security": [],
        "responses": {
          "200": {
            "description": "Melhores horarios por jogo",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    },
    "/artigos-agora": {
      "get": {
        "operationId": "getArtigosAgora",
        "summary": "Catalogo de artigos publicados",
        "description": "Atualiza a cada 1 hora.",
        "security": [],
        "responses": {
          "200": {
            "description": "Artigos com metadados",
            "content": {
              "application/json": { "schema": { "$ref": "#/components/schemas/Envelope" } }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Envelope": {
        "type": "object",
        "description": "Formato comum de resposta de todos os endpoints.",
        "properties": {
          "fonte": { "type": "string", "example": "Sinais da Laise" },
          "site": { "type": "string", "format": "uri", "example": "https://sinaisdalaise.com" },
          "atualizado_em": { "type": "string", "format": "date-time" },
          "total": { "type": "integer" },
          "dados": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
          "licenca": { "type": "string" }
        },
        "required": ["fonte", "site", "atualizado_em", "dados"]
      }
    }
  }
}
