openapi: "3.0.0"
info:
  description: "APIs Rest para consumo, inserção e atualização de dados referente ao SCM <br><br>"
  version: "1.0"
  title: "Softdib - API Rest"
  contact:
    email: "william@softdib.com.br"
tags: []

servers:
  - url: "http://softdib.ddns.net:3000/"
    description: Servidor Softdib
  - url: "http://192.168.1.3:3000/"
    description: IP Local
  - url: "http://localhost:3000/"
    description: Localhost
    

schemes:
- "http"
- "https"

components:
  securitySchemes:
    api_key: 
      type: apiKey
      in: header  
      name: x-access-token


paths:

####--rotas-api-autenticacao--####
  /api/sd/authentication:
    post:
      tags:
      - "Softdib/Autenticação"
      summary: "Gera um token para uso da api"
      operationId: "apiPedidoAuthenticationPOST"
      consumes:
        - "application/json"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              properties:
                user:
                  type: "string"
                  example: "API"
                pass: 
                  type: "string"
                  example: "123456"
                lkgp:
                  type: "string"
                  example: "inca"
      responses:
        200:
          description: "Token gerado"
          content: 
            text/plan:
              type: string
              example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
        401:
          description: "Não Autorizado"
      x-swagger-router-controller: "Auth"
  
##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~##~~

  /api/sd/scm/solicitacao_compra:
    post:
      tags:
      - "Softdib/SCM"
      summary: "Cria uma solicitação de compra"
      description: "Realizada a criação de uma solicitação de compra"
      operationId: "apiSoftdibSolicitacaoCompra"
      produces:
        - "application/json"
      consumes:
        - "application/json"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/definitions/properties-CRIAR_SOLICITACAO_COMPRA"
      responses: 
        200:
          description: "Solicitação criada com sucesso"
          content:
            application/json:
              schema:
                items:
                  $ref: "#/definitions/properties-CRIAR_SOLICITACAO_COMPRA-SUCESSO"
        401:
          description: "Sem Autorização"
        403:
          description: "Parametros informados da forma incorreta"
        5XX:
          description: "Houve algum erro no processo de integração. Informe o código do erro ao suporte para mais detalhes."
      security:
      - api_key: []
      x-swagger-router-controller: "Consultas"
      
  /api/sd/scm/solicitacao_compra/{numero_sc}:
    put:
      tags:
      - "Softdib/SCM"
      summary: "Atualiza uma solicitação de compra existente"
      description: "Atualiza uma solicitação de compra com os parâmetros desejados"
      operationId: "apiSoftdibSolicitacaoCompraAtualizar"
      produces:
      - "application/json"
      consumes:
        - "application/json"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/definitions/properties-ATUALIZAR_SOLICITACAO_COMPRA"
      parameters:
        - in: "path"
          required: true
          name: "numero_sc"
          description: "Passe o número da solicitação de compra!"
          schema:
            type: string
      responses: 
        200:
          description: "Atualização realizada com sucesso!"
          content:
            application/json:
              schema:
                items:
                  $ref: "#/definitions/properties-ATUALIZAR_SOLICITACAO_COMPRA-SUCESSO"
        401:
          description: "Sem Autorização"
        403:
          description: "Parametros informados da forma incorreta"
        5XX:
          description: "Houve algum erro no processo de integração. Informe o código do erro ao suporte para mais detalhes."
      security:
      - api_key: []
      x-swagger-router-controller: "Consultas"
      

definitions:
  properties-CRIAR_SOLICITACAO_COMPRA:
      properties:
        tipo_oc: 
          type: string
          required: true
          example: (M) Materiais (S) Servicos
        material: 
          type: string
          required: true
        solicitante: 
          type: string
          required: true
        centro_de_custo: 
          type: string
          format: int
          example: 143
          required: true
        quantidade: 
          type: string
          format: decimal
          example: "2.00"
        descr_servico: 
          type: string
        tempo_ressuprimento: 
          type: string
          format: int
          example: 0
        data_utilizacao: 
          type: string
          format: date
        numero_pedido: 
          type: string
          format: int
          example: 0
        local_pedido: 
          type: string
          format: int
          example: 0
        seq_pedido: 
          type: string
          format: int
          example: 0
        onde_usa: 
          type: string
        conta_gerencial: 
          type: string
          format: int
          example: 0
        aplicacao: 
          type: string
        obs_sc: 
          type: string
        local_entrega: 
          type: string
          format: int
          example: 0
        qtde_unid_compra: 
          type: string
          format: decimal
          example: "2.00"
        origem: 
          type: string
          format: int
          example: 0
        comprador: 
          type: string
        seq_roteiro_produc: 
          type: string
          format: int
          example: 0
        tipo_pedido: 
          type: string
          format: int
          example: 0-Nenhum; 1-Pedido de vendas; 2-O.F.; 3-OS; 4-SGM; 5-Obras
          
  properties-CRIAR_SOLICITACAO_COMPRA-SUCESSO:
    properties:
      gravacao_sc: 
        type: array
        items: 
          type: object
          properties: 
            mensagem: 
              type: string
              example: Solicitacao gravada com sucesso
            codigo_oc: 
              type: string
              example: 000563
        
  properties-ATUALIZAR_SOLICITACAO_COMPRA:
      properties:
        tipo_oc: 
          type: string
          required: true
          example: (M) Materiais (S) Servicos
        material: 
          type: string
          required: true
        solicitante: 
          type: string
          required: true
        centro_de_custo: 
          type: string
          format: int
          example: 0
          required: true
        quantidade: 
          type: string
          format: decimal
          example: "2.00"
        descr_servico: 
          type: string
        tempo_ressuprimento: 
          type: string
          format: int
          example: 0
        data_utilizacao: 
          type: string
          format: date
        numero_pedido: 
          type: string
          format: int
          example: 0
        local_pedido: 
          type: string
          format: int
          example: 0
        seq_pedido: 
          type: string
          format: int
          example: 0
        onde_usa: 
          type: string
        conta_gerencial: 
          type: string
          format: int
          example: 0
        aplicacao: 
          type: string
        obs_sc: 
          type: string
        local_entrega: 
          type: string
          format: int
          example: 0
        qtde_unid_compra: 
          type: string
          format: decimal
          example: "2.00"
        origem: 
          type: string
          format: int
          example: 0
        comprador: 
          type: string
        seq_roteiro_produc: 
          type: string
          format: int
          example: 0
        tipo_pedido: 
          type: string
          format: int
          example: 0-Nenhum; 1-Pedido de vendas; 2-O.F.; 3-OS; 4-SGM; 5-Obras

          
  properties-ATUALIZAR_SOLICITACAO_COMPRA-SUCESSO:
    properties:
      gravacao_sc: 
        type: array
        items: 
          type: object
          properties: 
            mensagem: 
              type: string
              example: Solicitacao Atualizada com Sucesso
            codigo_oc: 
              type: string
              example: 000549
        example: [
            mensagem: Solicitacao Atualizada com Sucesso,
            codigo_oc: 000549
        ]  
        