{
  "openapi": "3.0.4",
  "info": {
    "title": "LightHouse — Atividades (GPT pack)",
    "description": "API principal do Leankeep — gestão de manutenção predial (preventiva e corretiva). Documentação gerada a partir do Swagger real da aplicação.\n\n## Rate limiting\n\nLimite: **250 requisições/hora** por credencial (janela de 1 hora; valor pode variar por ambiente - confirme o vigente com o time). Ao exceder, a API responde **429 Too Many Requests**. A integração deve respeitar o código 429 (não reenviar imediatamente), aplicar **backoff exponencial** antes de tentar de novo e distribuir chamadas ao longo do tempo em vez de picos. Ver o guia [Rate limiting](/guides/rate-limiting).",
    "version": "2.0.0.5",
    "contact": {
      "name": "Leankeep Software"
    }
  },
  "servers": [
    {
      "url": "https://lighthouse.lkp.dev.br",
      "description": "Sandbox"
    },
    {
      "url": "https://lighthousev2.lkp.app.br",
      "description": "Produção"
    }
  ],
  "security": [
    {
      "Bearer": []
    }
  ],
  "paths": {
    "/v1/usuarios": {
      "get": {
        "tags": [
          "Usuarios (V1)"
        ],
        "parameters": [
          {
            "name": "SiteId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "deprecated": true
            }
          },
          {
            "name": "Fornecedores",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "deprecated": true
            }
          },
          {
            "name": "Search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "UsuarioId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Filtro genérico por usuário; prefira ExecutorId ou EmitenteId quando a intenção for clara."
          },
          {
            "name": "EmpresaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "TipoUsuario",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ETipoUsuario"
            }
          },
          {
            "name": "UnidadeId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "GrupoUnidadeId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "SubGrupoUnidadeId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "EstadoId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CidadeId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "FornecedorId",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Usuarios"
                  }
                },
                "example": [
                  {
                    "usuario": 1,
                    "nome": "Fulano de Tal",
                    "email": "usuario@empresa.com.br",
                    "inativo": false,
                    "superUsuario": false,
                    "login": "⚠️ A confirmar",
                    "usuarioDesignado": false,
                    "filtrosDefault": false,
                    "filtrosAlteracaoDefault": false,
                    "filtrosTodosTiposAnomalias": false,
                    "tipo": 1,
                    "cargo": 1,
                    "setor": 1,
                    "assinaturaPath": "/uploads/exemplo.png",
                    "celular": "11999998888",
                    "dataCadastro": "2026-06-29T10:00:00Z",
                    "acessoTodasAreas": false,
                    "tipoNome": "⚠️ A confirmar",
                    "image": "⚠️ A confirmar",
                    "emailValido": false
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Usuarios"
                  }
                },
                "example": [
                  {
                    "usuario": 1,
                    "nome": "Fulano de Tal",
                    "email": "usuario@empresa.com.br",
                    "inativo": false,
                    "superUsuario": false,
                    "login": "⚠️ A confirmar",
                    "usuarioDesignado": false,
                    "filtrosDefault": false,
                    "filtrosAlteracaoDefault": false,
                    "filtrosTodosTiposAnomalias": false,
                    "tipo": 1,
                    "cargo": 1,
                    "setor": 1,
                    "assinaturaPath": "/uploads/exemplo.png",
                    "celular": "11999998888",
                    "dataCadastro": "2026-06-29T10:00:00Z",
                    "acessoTodasAreas": false,
                    "tipoNome": "⚠️ A confirmar",
                    "image": "⚠️ A confirmar",
                    "emailValido": false
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Usuarios"
                  }
                },
                "example": [
                  {
                    "usuario": 1,
                    "nome": "Fulano de Tal",
                    "email": "usuario@empresa.com.br",
                    "inativo": false,
                    "superUsuario": false,
                    "login": "⚠️ A confirmar",
                    "usuarioDesignado": false,
                    "filtrosDefault": false,
                    "filtrosAlteracaoDefault": false,
                    "filtrosTodosTiposAnomalias": false,
                    "tipo": 1,
                    "cargo": 1,
                    "setor": 1,
                    "assinaturaPath": "/uploads/exemplo.png",
                    "celular": "11999998888",
                    "dataCadastro": "2026-06-29T10:00:00Z",
                    "acessoTodasAreas": false,
                    "tipoNome": "⚠️ A confirmar",
                    "image": "⚠️ A confirmar",
                    "emailValido": false
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Bad Request - payload inválido (ver a mensagem retornada para o campo/motivo específico).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - autenticado, mas sem permissão para o recurso/empresa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.3",
                  "title": "Forbidden",
                  "status": 403,
                  "detail": "Usuário autenticado, mas sem permissão para este recurso/empresa.",
                  "instance": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found - recurso inexistente para o identificador informado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "detail": "Recurso inexistente para o identificador informado.",
                  "instance": null
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - limite de 250 req/h excedido. Aguarde e aplique backoff exponencial (ver guia Rate limiting).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc6585#section-4",
                  "title": "Too Many Requests",
                  "status": 429,
                  "detail": "Limite de 250 requisições/hora excedido. Aguarde e aplique backoff exponencial antes de tentar novamente.",
                  "instance": null
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              }
            }
          }
        },
        "operationId": "buscarUsuariosV1",
        "summary": "Buscar usuários",
        "description": "Busca usuários pelo nome via parâmetro Search. Use o campo 'usuario' da resposta como ID nos filtros UsuarioId/ExecutorId/EmitenteId.",
        "x-openai-isConsequential": false
      }
    },
    "/v1/atividades": {
      "get": {
        "tags": [
          "Atividades (V1)"
        ],
        "parameters": [
          {
            "name": "SelectedDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StatusId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GrupoUnidadeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SubGrupoUnidadeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FornecedorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EquipamentoId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SistemaEmpresaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SetorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ExecutorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Use quando a pergunta for sobre ocorrências/atividades EXECUTADAS, RESOLVIDAS ou SOLUCIONADAS por uma pessoa."
          },
          {
            "name": "GrupoAreaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SubGrupoAreaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "AreaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PlanoAtividadeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "AplicacaoPlanoAtividadeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UsuarioId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Filtro genérico por usuário; prefira ExecutorId ou EmitenteId quando a intenção for clara."
          },
          {
            "name": "EmpresaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "TarefasIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "DiasAdicionais",
            "in": "query",
            "schema": {
              "maximum": 40,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesAgendadasList"
                  }
                },
                "example": [
                  {
                    "tarefa": 1,
                    "numero": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "dataPrevista": "2026-06-29T10:00:00Z",
                    "dataRealizada": "2026-06-29T10:00:00Z",
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "planoAtividade": 1,
                    "atividade": 1,
                    "siteId": 123,
                    "siteNome": "⚠️ A confirmar",
                    "grupoAreaNome": "⚠️ A confirmar",
                    "subGrupoAreaNome": "⚠️ A confirmar",
                    "areaNome": "⚠️ A confirmar",
                    "equipNome": "⚠️ A confirmar",
                    "sistemaEmpresaNome": "⚠️ A confirmar",
                    "qtdMaterial": 1,
                    "executores": "⚠️ A confirmar",
                    "realizada": false,
                    "temMedicao": false,
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "materiaisNomes": "⚠️ A confirmar",
                    "observacoes": "⚠️ A confirmar",
                    "qtdFotos": 1,
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "status": 1
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesAgendadasList"
                  }
                },
                "example": [
                  {
                    "tarefa": 1,
                    "numero": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "dataPrevista": "2026-06-29T10:00:00Z",
                    "dataRealizada": "2026-06-29T10:00:00Z",
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "planoAtividade": 1,
                    "atividade": 1,
                    "siteId": 123,
                    "siteNome": "⚠️ A confirmar",
                    "grupoAreaNome": "⚠️ A confirmar",
                    "subGrupoAreaNome": "⚠️ A confirmar",
                    "areaNome": "⚠️ A confirmar",
                    "equipNome": "⚠️ A confirmar",
                    "sistemaEmpresaNome": "⚠️ A confirmar",
                    "qtdMaterial": 1,
                    "executores": "⚠️ A confirmar",
                    "realizada": false,
                    "temMedicao": false,
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "materiaisNomes": "⚠️ A confirmar",
                    "observacoes": "⚠️ A confirmar",
                    "qtdFotos": 1,
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "status": 1
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesAgendadasList"
                  }
                },
                "example": [
                  {
                    "tarefa": 1,
                    "numero": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "dataPrevista": "2026-06-29T10:00:00Z",
                    "dataRealizada": "2026-06-29T10:00:00Z",
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "planoAtividade": 1,
                    "atividade": 1,
                    "siteId": 123,
                    "siteNome": "⚠️ A confirmar",
                    "grupoAreaNome": "⚠️ A confirmar",
                    "subGrupoAreaNome": "⚠️ A confirmar",
                    "areaNome": "⚠️ A confirmar",
                    "equipNome": "⚠️ A confirmar",
                    "sistemaEmpresaNome": "⚠️ A confirmar",
                    "qtdMaterial": 1,
                    "executores": "⚠️ A confirmar",
                    "realizada": false,
                    "temMedicao": false,
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "materiaisNomes": "⚠️ A confirmar",
                    "observacoes": "⚠️ A confirmar",
                    "qtdFotos": 1,
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "status": 1
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Bad Request - payload inválido (ver a mensagem retornada para o campo/motivo específico).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - autenticado, mas sem permissão para o recurso/empresa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.3",
                  "title": "Forbidden",
                  "status": 403,
                  "detail": "Usuário autenticado, mas sem permissão para este recurso/empresa.",
                  "instance": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found - recurso inexistente para o identificador informado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "detail": "Recurso inexistente para o identificador informado.",
                  "instance": null
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - limite de 250 req/h excedido. Aguarde e aplique backoff exponencial (ver guia Rate limiting).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc6585#section-4",
                  "title": "Too Many Requests",
                  "status": 429,
                  "detail": "Limite de 250 requisições/hora excedido. Aguarde e aplique backoff exponencial antes de tentar novamente.",
                  "instance": null
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              }
            }
          }
        },
        "operationId": "listarAtividadesAgendadasV1",
        "summary": "Listar atividades agendadas",
        "description": "Lista tarefas de manutenção preventiva agendadas com filtros (SelectedDate e StatusId são obrigatórios). Primeiro passo típico de uma baixa em lote - ver [Dar baixa em atividades](/guides/recipe-baixa-lote).",
        "x-openai-isConsequential": false
      }
    },
    "/v2/atividades/baixa/list": {
      "post": {
        "tags": [
          "Atividades (V2)"
        ],
        "parameters": [
          {
            "name": "EmpresaId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "UnidadeId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                101,
                102,
                103
              ]
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                101,
                102,
                103
              ]
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                101,
                102,
                103
              ]
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesBaixaList"
                  }
                },
                "example": [
                  {
                    "tarefaId": 123,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "materiaisNomes": "⚠️ A confirmar"
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesBaixaList"
                  }
                },
                "example": [
                  {
                    "tarefaId": 123,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "materiaisNomes": "⚠️ A confirmar"
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AtividadesBaixaList"
                  }
                },
                "example": [
                  {
                    "tarefaId": 123,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "medicaoObrigatoria": false,
                    "medicoesNomes": "⚠️ A confirmar",
                    "conformidadeObrigatoriaBaixa": false,
                    "tipoValidacao": 1,
                    "tempoPrevisto": 1,
                    "aplicacaoPlanoAtividade": 1,
                    "materiaisNomes": "⚠️ A confirmar"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Bad Request - payload inválido (ver a mensagem retornada para o campo/motivo específico).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - autenticado, mas sem permissão para o recurso/empresa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.3",
                  "title": "Forbidden",
                  "status": 403,
                  "detail": "Usuário autenticado, mas sem permissão para este recurso/empresa.",
                  "instance": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found - recurso inexistente para o identificador informado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "detail": "Recurso inexistente para o identificador informado.",
                  "instance": null
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - limite de 250 req/h excedido. Aguarde e aplique backoff exponencial (ver guia Rate limiting).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc6585#section-4",
                  "title": "Too Many Requests",
                  "status": 429,
                  "detail": "Limite de 250 requisições/hora excedido. Aguarde e aplique backoff exponencial antes de tentar novamente.",
                  "instance": null
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              }
            }
          }
        },
        "operationId": "obterListaParaBaixaAtividadesV2",
        "summary": "Consultar lista para baixa",
        "description": "Retorna os dados detalhados das tarefas selecionadas (por ID) antes de confirmar a baixa em lote. Corpo: array de IDs de tarefa.",
        "x-openai-isConsequential": true
      }
    },
    "/v1/atividades/baixa": {
      "put": {
        "tags": [
          "Atividades (V1)"
        ],
        "parameters": [
          {
            "name": "EmpresaId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "UnidadeId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaixaAtividadeCommand"
              },
              "example": {
                "tarefasIds": [
                  101,
                  102,
                  103
                ],
                "plataforma": 6,
                "siteId": 456,
                "dataRealizada": "2026-06-29T15:30:00Z",
                "tempoTotal": 90,
                "observacao": "Manutenção preventiva mensal concluída",
                "statusId": 1
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BaixaAtividadeCommand"
              },
              "example": {
                "tarefasIds": [
                  101,
                  102,
                  103
                ],
                "plataforma": 6,
                "siteId": 456,
                "dataRealizada": "2026-06-29T15:30:00Z",
                "tempoTotal": 90,
                "observacao": "Manutenção preventiva mensal concluída",
                "statusId": 1
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BaixaAtividadeCommand"
              },
              "example": {
                "tarefasIds": [
                  101,
                  102,
                  103
                ],
                "plataforma": 6,
                "siteId": 456,
                "dataRealizada": "2026-06-29T15:30:00Z",
                "tempoTotal": 90,
                "observacao": "Manutenção preventiva mensal concluída",
                "statusId": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "⚠️ A confirmar",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "⚠️ A confirmar",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "⚠️ A confirmar",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "Ocorrência típica inválida",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "Ocorrência típica inválida",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaixaAtividadeCommandResult"
                },
                "example": {
                  "success": false,
                  "message": "Ocorrência típica inválida",
                  "data": {},
                  "assinaturaPath": "/uploads/exemplo.png",
                  "fotosPath": {}
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - autenticado, mas sem permissão para o recurso/empresa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.3",
                  "title": "Forbidden",
                  "status": 403,
                  "detail": "Usuário autenticado, mas sem permissão para este recurso/empresa.",
                  "instance": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found - recurso inexistente para o identificador informado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "detail": "Recurso inexistente para o identificador informado.",
                  "instance": null
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - limite de 250 req/h excedido. Aguarde e aplique backoff exponencial (ver guia Rate limiting).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc6585#section-4",
                  "title": "Too Many Requests",
                  "status": 429,
                  "detail": "Limite de 250 requisições/hora excedido. Aguarde e aplique backoff exponencial antes de tentar novamente.",
                  "instance": null
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              }
            }
          }
        },
        "operationId": "baixarAtividadesV1",
        "summary": "Dar baixa em atividades",
        "description": "Marca uma ou mais tarefas preventivas como realizadas em uma única chamada (BaixaAtividadeCommand). Campos obrigatórios: tarefasIds (array) e plataforma. Não faça loop de chamadas individuais - envie todos os IDs de uma vez. Ver [Dar baixa em atividades](/guides/recipe-baixa-lote).",
        "x-openai-isConsequential": true
      }
    },
    "/v1/atividades/justificativas": {
      "get": {
        "tags": [
          "Atividades (V1)"
        ],
        "parameters": [
          {
            "name": "EmpresaId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "UnidadeId",
            "in": "header",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JustificativasTarefas"
                  }
                },
                "example": [
                  {
                    "gid": "⚠️ A confirmar",
                    "justificativaTarefa": 1,
                    "empresa": 1,
                    "site": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "insClidMob": "⚠️ A confirmar",
                    "insCliRecIdMob": 1,
                    "insSincronizado": false
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JustificativasTarefas"
                  }
                },
                "example": [
                  {
                    "gid": "⚠️ A confirmar",
                    "justificativaTarefa": 1,
                    "empresa": 1,
                    "site": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "insClidMob": "⚠️ A confirmar",
                    "insCliRecIdMob": 1,
                    "insSincronizado": false
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JustificativasTarefas"
                  }
                },
                "example": [
                  {
                    "gid": "⚠️ A confirmar",
                    "justificativaTarefa": 1,
                    "empresa": 1,
                    "site": 1,
                    "descricao": "Vazamento no sistema hidráulico do 3º andar",
                    "insClidMob": "⚠️ A confirmar",
                    "insCliRecIdMob": 1,
                    "insSincronizado": false
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Bad Request - payload inválido (ver a mensagem retornada para o campo/motivo específico).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "detail": "Um ou mais campos do payload são inválidos.",
                  "instance": null
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - autenticado, mas sem permissão para o recurso/empresa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.3",
                  "title": "Forbidden",
                  "status": 403,
                  "detail": "Usuário autenticado, mas sem permissão para este recurso/empresa.",
                  "instance": null
                }
              }
            }
          },
          "404": {
            "description": "Not Found - recurso inexistente para o identificador informado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "detail": "Recurso inexistente para o identificador informado.",
                  "instance": null
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - limite de 250 req/h excedido. Aguarde e aplique backoff exponencial (ver guia Rate limiting).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc6585#section-4",
                  "title": "Too Many Requests",
                  "status": 429,
                  "detail": "Limite de 250 requisições/hora excedido. Aguarde e aplique backoff exponencial antes de tentar novamente.",
                  "instance": null
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCommandResult"
                }
              }
            }
          }
        },
        "operationId": "listarJustificativasAtividadeV1",
        "summary": "Listar justificativas de atividade",
        "description": "Lista as justificativas configuradas para marcar uma tarefa como não realizada - consulte antes de dar baixa com statusId=2 (Não realizada).",
        "x-openai-isConsequential": false
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JWT emitido pelo AuthCenter. Cole apenas o token (sem o prefixo Bearer)."
      }
    },
    "schemas": {
      "ETipoUsuario": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32",
        "description": "Tipo do usuário: 2 = Administrador, 3 = Operacional, 4 = Chamado. Determina as permissões geradas na criação."
      },
      "Usuarios": {
        "type": "object",
        "properties": {
          "usuario": {
            "type": "integer",
            "format": "int32"
          },
          "nome": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "inativo": {
            "type": "boolean"
          },
          "superUsuario": {
            "type": "boolean",
            "nullable": true
          },
          "login": {
            "type": "string",
            "nullable": true
          },
          "usuarioDesignado": {
            "type": "boolean",
            "nullable": true
          },
          "filtrosDefault": {
            "type": "boolean",
            "nullable": true
          },
          "filtrosAlteracaoDefault": {
            "type": "boolean",
            "nullable": true
          },
          "filtrosTodosTiposAnomalias": {
            "type": "boolean",
            "nullable": true
          },
          "tipo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cargo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "setor": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "assinaturaPath": {
            "type": "string",
            "nullable": true
          },
          "celular": {
            "type": "string",
            "nullable": true
          },
          "dataCadastro": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acessoTodasAreas": {
            "type": "boolean"
          },
          "tipoNome": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "image": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "emailValido": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "ErrorCommandResult": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "hash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AtividadesAgendadasList": {
        "type": "object",
        "properties": {
          "tarefa": {
            "type": "integer",
            "format": "int32"
          },
          "numero": {
            "type": "integer",
            "format": "int32"
          },
          "descricao": {
            "type": "string",
            "nullable": true
          },
          "dataPrevista": {
            "type": "string",
            "format": "date-time"
          },
          "dataRealizada": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tempoPrevisto": {
            "type": "integer",
            "format": "int32"
          },
          "aplicacaoPlanoAtividade": {
            "type": "integer",
            "format": "int32"
          },
          "planoAtividade": {
            "type": "integer",
            "format": "int32"
          },
          "atividade": {
            "type": "integer",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "format": "int32"
          },
          "siteNome": {
            "type": "string",
            "nullable": true
          },
          "grupoAreaNome": {
            "type": "string",
            "nullable": true
          },
          "subGrupoAreaNome": {
            "type": "string",
            "nullable": true
          },
          "areaNome": {
            "type": "string",
            "nullable": true
          },
          "equipNome": {
            "type": "string",
            "nullable": true
          },
          "sistemaEmpresaNome": {
            "type": "string",
            "nullable": true
          },
          "qtdMaterial": {
            "type": "integer",
            "format": "int32"
          },
          "executores": {
            "type": "string",
            "nullable": true
          },
          "realizada": {
            "type": "boolean"
          },
          "temMedicao": {
            "type": "boolean"
          },
          "medicaoObrigatoria": {
            "type": "boolean"
          },
          "medicoesNomes": {
            "type": "string",
            "nullable": true
          },
          "materiaisNomes": {
            "type": "string",
            "nullable": true
          },
          "observacoes": {
            "type": "string",
            "nullable": true
          },
          "qtdFotos": {
            "type": "integer",
            "format": "int32"
          },
          "conformidadeObrigatoriaBaixa": {
            "type": "boolean"
          },
          "tipoValidacao": {
            "$ref": "#/components/schemas/EAtividadeTipoValidacao"
          },
          "status": {
            "$ref": "#/components/schemas/EStatusAtividade"
          }
        },
        "additionalProperties": false
      },
      "AtividadesBaixaList": {
        "type": "object",
        "properties": {
          "tarefaId": {
            "type": "integer",
            "format": "int32"
          },
          "descricao": {
            "type": "string",
            "nullable": true
          },
          "medicaoObrigatoria": {
            "type": "boolean"
          },
          "medicoesNomes": {
            "type": "string",
            "nullable": true
          },
          "conformidadeObrigatoriaBaixa": {
            "type": "boolean"
          },
          "tipoValidacao": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tempoPrevisto": {
            "type": "integer",
            "format": "int32"
          },
          "aplicacaoPlanoAtividade": {
            "type": "integer",
            "format": "int32"
          },
          "materiaisNomes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BaixaAtividadeCommand": {
        "required": [
          "plataforma",
          "tarefasIds"
        ],
        "type": "object",
        "properties": {
          "tarefasIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "siteId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dataRealizada": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tempoTotal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "observacao": {
            "type": "string",
            "nullable": true
          },
          "texto": {
            "type": "string",
            "nullable": true
          },
          "avaliacao": {
            "$ref": "#/components/schemas/EAvaliacoes"
          },
          "conformidade": {
            "$ref": "#/components/schemas/EConformidade"
          },
          "custo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "statusId": {
            "$ref": "#/components/schemas/EStatusAtividade"
          },
          "qrCode": {
            "type": "string",
            "nullable": true
          },
          "justificativaNaoRealizado": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "temAssinatura": {
            "type": "boolean"
          },
          "usuarioAssinatura": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nomeUsuarioAssinatura": {
            "type": "string",
            "nullable": true
          },
          "gerarOcorrenciasPorAtividadeNaoConforme": {
            "type": "boolean"
          },
          "gerarOcorrenciasPorMedicoesForaPadrao": {
            "type": "boolean"
          },
          "plataforma": {
            "$ref": "#/components/schemas/EPlataforma"
          },
          "usuarioId": {
            "type": "integer",
            "format": "int32"
          },
          "executores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaixaExecutorAtividadeCommand"
            },
            "nullable": true
          },
          "materiais": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaixaMaterialAtividadeCommand"
            },
            "nullable": true
          },
          "fotos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddFotoAtividadeCommand"
            },
            "nullable": true
          },
          "skipMateriais": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BaixaAtividadeCommandResult": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "nullable": true,
            "type": "object"
          },
          "assinaturaPath": {
            "type": "string",
            "nullable": true
          },
          "fotosPath": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JustificativasTarefas": {
        "type": "object",
        "properties": {
          "gid": {
            "type": "string",
            "nullable": true
          },
          "justificativaTarefa": {
            "type": "integer",
            "format": "int32"
          },
          "empresa": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "descricao": {
            "type": "string",
            "nullable": true
          },
          "insClidMob": {
            "type": "string",
            "nullable": true
          },
          "insCliRecIdMob": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "insSincronizado": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EAtividadeTipoValidacao": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "EStatusAtividade": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32",
        "description": "Resultado da execução da tarefa: 1 = Realizada; 2 = Não realizada (informe também justificativaNaoRealizado); 3 = Em andamento; 4 = Cancelada; 5 = reservado."
      },
      "EAvaliacoes": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32",
        "description": "Avaliação qualitativa da execução, escala 1-4. ⚠️ A confirmar: o significado exato de cada valor (1..4) não está documentado - consulte o time de produto antes de usar em lógica automatizada."
      },
      "EConformidade": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32",
        "description": "Conformidade da execução: 1 = Conforme; 2 = Não conforme; 3 = reservado."
      },
      "EPlataforma": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          9,
          10
        ],
        "type": "integer",
        "format": "int32",
        "description": "Origem da requisição. Use sempre o inteiro (nunca a string \"WEB\"/\"API\"). Valor recomendado para integrações via API: 6. Demais valores (0,2,3,4,5,7,9,10) são canais internos - consulte o time AuthCenter. Mapeamento conhecido: 6 = API (integrações server-side); 1 = WEB (interface web)."
      },
      "BaixaExecutorAtividadeCommand": {
        "type": "object",
        "properties": {
          "executor": {
            "type": "integer",
            "format": "int32"
          },
          "tempo": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BaixaMaterialAtividadeCommand": {
        "type": "object",
        "properties": {
          "material": {
            "type": "integer",
            "format": "int32"
          },
          "quantidade": {
            "type": "number",
            "format": "double"
          },
          "custo": {
            "type": "number",
            "format": "double"
          },
          "custoMaoObra": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddFotoAtividadeCommand": {
        "type": "object",
        "properties": {
          "fotoPath": {
            "type": "string",
            "nullable": true
          },
          "descricao": {
            "type": "string",
            "nullable": true
          },
          "gid": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}