> ## Documentation Index
> Fetch the complete documentation index at: https://docs.olie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Editar um projeto

> Atualiza os dados de um projeto existente.



## OpenAPI

````yaml /api-reference/openapi.json put /api/management/projects/{id}
openapi: 3.0.0
info:
  title: Olie API
  version: 1.0.0
  description: >
    # Introdução 👋


    Olá! Esta é a documentação oficial da API da [olie.ai](https://olie.ai/).
    Aqui você encontra as referências e exemplos de uso dos nossos endpoints.


    Para uma visão completa, recomendamos fortemente que você leia a
    [documentação oficial](https://docs.olie.ai/api-reference/introduction). Lá
    estão detalhados tópicos essenciais como
    [autenticação](https://docs.olie.ai/api-reference/introduction/authentication),
    [estrutura de
    respostas](https://docs.olie.ai/api-reference/general/response-structure),
    [paginação](https://docs.olie.ai/api-reference/general/pagination) e outros
    guias de integração.


    No Postman, esta coleção foca nas informações específicas de cada requisição
    (endpoints, parâmetros e exemplos), servindo como apoio rápido para testes e
    desenvolvimento.
servers:
  - url: https://api.olie.ai
security:
  - BearerAuth: []
paths:
  /api/management/projects/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID do projeto
        schema:
          type: string
        example: <string>
    put:
      tags:
        - projects
        - '{id}'
      summary: Editar um projeto
      description: Atualiza os dados de um projeto existente.
      requestBody:
        content:
          application/json:
            schema:
              title: Atualização de Projeto
              description: >-
                Campos para atualização de um projeto. Todos os campos são
                opcionais, permitindo atualizar apenas os campos desejados.
              allOf:
                - description: Dados para atualização de um projeto
                  title: Projeto
                  type: object
                  properties:
                    name:
                      type: string
                      maxLength: 191
                      example: Projeto Atualizado
                      description: >-
                        Nome do projeto. Campo opcional na atualização, máximo
                        de 191 caracteres.
                    description:
                      type: string
                      example: Nova descrição do projeto
                      description: >-
                        Descrição detalhada do projeto. Campo opcional que
                        permite atualizar as informações adicionais sobre o
                        projeto.
                    impact:
                      type: integer
                      minimum: 1
                      maximum: 10
                      example: 8
                      description: Nível de impacto do projeto em uma escala de 1 a 10.
                    contact_id:
                      type: string
                      example: uuid-do-contato
                      description: >-
                        ID único (UUID) do contato associado ao projeto. Campo
                        opcional que permite atualizar ou vincular um contato
                        específico ao projeto.
                      format: uuid
                    customer_id:
                      type: string
                      example: uuid-do-cliente
                      description: >-
                        ID único (UUID) do cliente associado ao projeto. Campo
                        opcional que permite atualizar ou vincular um cliente
                        específico ao projeto.
                      format: uuid
                    status:
                      type: number
                      enum:
                        - 1
                        - 2
                        - 3
                        - 4
                      example: 2
                      description: >-
                        Status atual do projeto. Valores possíveis: 1 (Em
                        execução), 2 (Concluído), 3 (Arquivado), 4 (Parado).
                    budget:
                      type: number
                      minimum: 0
                      maximum: 999999999999.99
                      example: 35000.5
                      description: >-
                        Receita esperada do projeto em valor numérico decimal.
                        Campo opcional que permite atualizar a receita esperada
                        para o projeto.
                      format: float
                    is_template:
                      type: boolean
                      example: false
                      description: >-
                        Indica se o projeto é um modelo de projeto. Quando true,
                        o projeto pode ser usado como base para criação de
                        outros projetos.
                    form_answers:
                      type: array
                      description: >-
                        Array de objetos contendo as respostas de formulários
                        dinâmicos associados ao projeto. Cada objeto contém os
                        dados das respostas dos campos do formulário. Permite
                        atualizar as respostas dos formulários.
                      items:
                        type: object
                    forecast_dates:
                      type: array
                      description: >-
                        Array de objetos para atualizar datas de previsão por
                        funil. Permite atualizar ou remover datas de previsão de
                        diferentes funis de projeto.
                      items:
                        type: object
                        properties:
                          date:
                            type: string
                            example: '2025-08-01'
                            description: >-
                              Data de previsão para o funil de projeto. Pode ser
                              null para remover a data de previsão.
                            format: date
                          project_funnel_id:
                            type: integer
                            example: 4
                            description: >-
                              ID do funil de projeto ao qual esta data de
                              previsão está associada.
                        required:
                          - project_funnel_id
                    groups:
                      type: object
                      description: >-
                        Objeto para gerenciar grupos associados ao projeto.
                        Contém arrays 'to_add' e 'to_rem' para adicionar ou
                        remover grupos. Ambos os arrays devem estar presentes
                        quando este campo for fornecido.
                    tags:
                      type: object
                      description: >-
                        Objeto para gerenciar **etiquetas de funil associadas ao
                        projeto**. Contém arrays 'to_add' e 'to_rem' para
                        adicionar ou remover etiquetas do projeto. Ambos os
                        arrays devem estar presentes quando este campo for
                        fornecido.
                      properties:
                        to_add:
                          type: array
                          description: >-
                            Array de IDs das etiquetas dos funis de projeto
                            serem adicionados ao projeto.
                          items:
                            type: integer
                        to_rem:
                          type: array
                          description: >-
                            Array de IDs das etiquetas dos funis de projeto
                            serem removidas do projeto.
                          items:
                            type: integer
                      required:
                        - to_add
                        - to_rem
                    funnels:
                      type: object
                      description: >-
                        Objeto para gerenciar funis que o projeto está
                        vinculado. Contém arrays 'to_add' e 'to_rem' para
                        adicionar ou remover funis. Ambos os arrays devem estar
                        presentes quando este campo for fornecido.
                      properties:
                        to_add:
                          type: array
                          description: >-
                            Array de IDs dos funis de projeto a serem
                            adicionados ao projeto.
                          items:
                            type: integer
                        to_rem:
                          type: array
                          description: >-
                            Array de IDs dos funis de projeto a serem removidos
                            do projeto.
                          items:
                            type: integer
                      required:
                        - to_add
                        - to_rem
                    funnel_status:
                      type: object
                      description: >-
                        Objeto para vincular ou desvincular um status de funil
                        do projeto.
                      properties:
                        project_funnel_id:
                          type: integer
                          example: 5
                          description: >-
                            ID do funil de projeto ao qual o status será
                            aplicado.
                        funnel_status_id:
                          type: integer
                          example: 3
                          description: >-
                            ID do status de funil que será atribuído ao projeto
                            dentro do funil especificado.
                      required:
                        - project_funnel_id
                    users:
                      type: array
                      description: >-
                        Array de objetos para gerenciar usuários associados ao
                        projeto. Permite adicionar ou remover usuários com
                        diferentes papéis do projeto.
                      items:
                        type: object
                        properties:
                          user_id:
                            type: string
                            example: uuid-do-usuario
                            description: >-
                              ID único (UUID) do usuário a ser associado ou
                              removido do projeto.
                            format: uuid
                          role:
                            type: string
                            example: assignee
                            description: >-
                              Papel do usuário no projeto. Valores possíveis:
                              'creator', 'assignee', 'follower'.
                          action:
                            type: string
                            example: remove
                            description: >-
                              Ação a ser executada com o usuário. Valores
                              possíveis: 'add' (Adicionar usuário ao projeto),
                              'remove' (Remover usuário do projeto).
                        required:
                          - user_id
                          - role
                          - action
                    parent_id:
                      type: string
                      example: 550e8400-e29b-41d4-a716-446655440000
                      format: uuid
                      nullable: true
                      description: >-
                        ID do projeto pai na hierarquia. Quando null, o projeto
                        fica na raiz.
            example:
              name: Nome do projeto
              description: Descrição detalhada do projeto
              impact: 5
              contact_id: 770e8400-e29b-41d4-a716-446655440001
              customer_id: 880e8400-e29b-41d4-a716-446655440001
              status: 3
              budget: 25000
              is_template: false
              parent_id: 550e8400-e29b-41d4-a716-446655440000
              funnels:
                to_add:
                  - 1
                  - 2
                  - 3
                to_rem: []
              groups:
                to_add:
                  - 550e8400-e29b-41d4-a716-446655440000
                  - 550e8400-e29b-41d4-a716-446655440001
                to_rem:
                  - 550e8400-e29b-41d4-a716-446655440001
              tags:
                to_add:
                  - 1
                  - 2
                  - 3
                to_rem: []
              users:
                - user_id: 550e8400-e29b-41d4-a716-446655440000
                  role: assignee
                  action: add
                - user_id: 550e8400-e29b-41d4-a716-446655440001
                  role: follower
                  action: add
              childrens:
                to_add:
                  - 550e8400-e29b-41d4-a716-446655440002
                to_rem: []
              forecast_dates:
                - date: '2025-06-01'
                  project_funnel_id: 4
                - date: '2025-07-15'
                  project_funnel_id: 5
              funnel_status:
                project_funnel_id: 5
                funnel_status_id: 2
              form_answers:
                - id: 1
                  answer: Resposta do campo
                - id: 2
                  answer: Resposta do campo
      responses:
        '200':
          description: Editado com sucesso
          headers:
            Date:
              schema:
                type: string
              example: Tue, 16 Dec 2025 18:49:13 GMT
            Transfer-Encoding:
              schema:
                type: string
              example: chunked
            Connection:
              schema:
                type: string
              example: keep-alive
            Cache-Control:
              schema:
                type: string
              example: private, must-revalidate
            pragma:
              schema:
                type: string
              example: no-cache
            expires:
              schema:
                type: integer
              example: -1
            X-RateLimit-Limit:
              schema:
                type: integer
              example: 160
            X-RateLimit-Remaining:
              schema:
                type: integer
              example: 159
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            Access-Control-Expose-Headers:
              schema:
                type: string
              example: '*'
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: boolean
                  project:
                    type: object
                    properties:
                      id:
                        type: string
                      code:
                        type: string
                      name:
                        type: string
                      description:
                        type: string
                      impact:
                        type: integer
                      frame_id:
                        type: string
                      created_at:
                        type: string
                        format: date-time
                      updated_at:
                        type: string
                        format: date-time
                      customer_id:
                        type: string
                      contact_id:
                        type: integer
                      status:
                        type: integer
                      budget:
                        type: integer
                      is_template:
                        type: boolean
                      created_by:
                        type: string
                      form_answers:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            label:
                              type: string
                            model:
                              type: string
                            updated_at:
                              type: string
                              format: date-time
                      frame:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          type:
                            type: integer
                          status:
                            type: integer
                          subdomain:
                            type: string
                          model_forms:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                class:
                                  type: string
                          cockpit_access:
                            type: integer
              example:
                response: true
                project:
                  id: 019b277f-e453-733d-a00e-6d26d444008b
                  parent_id: null
                  old_id: null
                  code: P-83
                  name: Laboratório Hawkins
                  description: Companhia de energia da cidade de Hawkins
                  impact: 5
                  frame_id: 019aeaa3-2778-73ec-8f8d-59d06cc59dca
                  created_at: '2025-12-16T14:10:51.000000Z'
                  updated_at: '2025-12-16T18:49:13.000000Z'
                  customer_id: 019b277d-c615-723f-a1dd-f03940bce866
                  contact_id: 12597
                  share_token: null
                  share_settings: null
                  merged_id: null
                  status: 1
                  budget: 950000
                  is_template: false
                  created_by: 019aeaa3-2370-731c-9008-be759795f449
                  deleted_at: null
                  form_answers:
                    - id: 2130
                      label: Texto curto
                      answer: null
                      model: Project
                      answered_by: null
                      updated_at: '2025-12-16T14:45:52.000000Z'
                    - id: 2131
                      label: Texto longo
                      answer: null
                      model: Project
                      answered_by: null
                      updated_at: '2025-12-16T14:45:52.000000Z'
                  frame:
                    id: 019aeaa3-2778-73ec-8f8d-59d06cc59dca
                    old_id: null
                    name: 'OlieDev Company '
                    type: work
                    status: 1
                    subdomain: devframe
                    frame_billing_data_id: null
                    model_forms:
                      - id: 377
                        class: App\Models\Project
                    logo_img: null
                    cockpit_access: 0
        '401':
          description: Não autorizado
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: unauthorized
                  error:
                    type: string
                    example: Unauthenticated.
              example:
                response: <boolean>
                message: <string>
                error: <string>
        '404':
          description: Model não encontrada
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: '[modelName]_model_not_found'
                  error:
                    type: string
                    example: No query results for model
              example:
                response: <boolean>
                message: <string>
                error: <string>
        '422':
          description: Erro de validação
          headers:
            Date:
              schema:
                type: string
              example: Tue, 16 Dec 2025 18:52:00 GMT
            Transfer-Encoding:
              schema:
                type: string
              example: chunked
            Connection:
              schema:
                type: string
              example: keep-alive
            Cache-Control:
              schema:
                type: string
              example: private, must-revalidate
            X-RateLimit-Limit:
              schema:
                type: integer
              example: 160
            X-RateLimit-Remaining:
              schema:
                type: integer
              example: 158
            pragma:
              schema:
                type: string
              example: no-cache
            expires:
              schema:
                type: integer
              example: -1
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            Access-Control-Expose-Headers:
              schema:
                type: string
              example: '*'
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: string
                  validation:
                    type: object
                    properties:
                      description:
                        type: array
                        items:
                          type: string
                      impact:
                        type: array
                        items:
                          type: string
              example:
                response: false
                message: validation_errors
                error: The descrição must be a string. (and 1 more error)
                validation:
                  description:
                    - The descrição must be a string.
                  impact:
                    - The impact must not be greater than 10.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````