Skip to content

FelipePDS/horus-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentação da Horus API

O Projeto foi feito com ts-node (express), banco de dados Posgres, typeorm (decorators como complementação)

Confira o modelo DER do sistema, contendo todas as entidades.

DER Model 01

DER Model 02

(PK) → Primary Key

(FK) → Foreign Key

(U) → Unique

Rotas da API

As rotas são baseadas no modelo do DER acima.

USERS

GET/login

// FAZ A AUTENTICAÇÃO DE UM USUÁRIO E CASO A AUTENTICAÇÃO PROSSIGA, ELE RETORNA UM TOKEN

// Estrutura do RESPONSE após o Request:

{
  "email": "teste@email.com",
  "password": "123"
}

GET/users

// PEGA TODOS OS USUÁRIOS

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "is_admin": false,
    "name": "Teste1",
    "nickname": "Teste1",
    "email": "teste@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste1.png",
    "phone_number": "(99) 99999-9999",
    "cpf": "99999999999",
    "address_name": "Nome do Endereço do usuário",
    "cep": "99999999",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "99",
    "created_at": 4320482340323044324,
    "updated_at": 5982433257430858345
  },

  {
    "id": 2,
    "is_admin": false,
    "name": "Teste2",
    "nickname": "Teste2",
    "email": "teste2@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste2.png",
    "phone_number": "(88) 88888-8888",
    "cpf": "88888888888",
    "address_name": "Nome do Endereço do usuário",
    "cep": "88888888",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "88",
    "created_at": 5462352340323044324,
    "updated_at": 6346333257430858345
  }
]

GET/users/:user_id

// PEGA UM USUÁRIO ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 1,
  "is_admin": false,
  "name": "Teste1",
  "nickname": "Teste1",
  "email": "teste@email.com",
  "bio": "Biografia do usuário, contando sobre ele...",
  "avatar": "uploads/images/users/teste1.png",
  "phone_number": "(99) 99999-9999",
  "cpf": "99999999999",
  "address_name": "Nome do Endereço do usuário",
  "cep": "99999999",
  "state": "Nome do Estado que o usuário mora",
  "city": "Nome da Cidade que o usuário mora",
  "neighborhood": "Nome do Bairro que o usuário mora",
  "street": "Nome da Rua que o usuário mora",
  "address_number": "99",
  "created_at": 4320482340323044324,
  "updated_at": 5982433257430858345
}

GET/users/nickname/:nickname

// PEGA UM USUÁRIO ATRAVÉS DO NICKNAME

// Estrutura do RESPONSE após o Request:

{
  "id": 1,
  "is_admin": false,
  "name": "Teste1",
  "nickname": "Teste1",
  "email": "teste@email.com",
  "bio": "Biografia do usuário, contando sobre ele...",
  "avatar": "uploads/images/users/teste1.png",
  "phone_number": "(99) 99999-9999",
  "cpf": "99999999999",
  "address_name": "Nome do Endereço do usuário",
  "cep": "99999999",
  "state": "Nome do Estado que o usuário mora",
  "city": "Nome da Cidade que o usuário mora",
  "neighborhood": "Nome do Bairro que o usuário mora",
  "street": "Nome da Rua que o usuário mora",
  "address_number": "99",
  "created_at": 4320482340323044324,
  "updated_at": 5982433257430858345
}

POST/users

// CRIA UM NOVO USUÁRIO

// Estrutura do REQUEST (exemplo do body):

{
  "is_admin": false,
  "name": "Teste",
  "nickname": "Teste",
  "email": "teste@email.com",
  "bio": "Biografia do usuário, contando sobre ele...",
  "password": "123",
  "avatar": "uploads/images/users/teste.png",
  "phone_number": "(99) 99999-9999",
  "cpf": "99999999999",
  "address_name": "Nome do Endereço do usuário",
  "cep": "99999999",
  "state": "Nome do Estado que o usuário mora",
  "city": "Nome da Cidade que o usuário mora",
  "neighborhood": "Nome do Bairro que o usuário mora",
  "street": "Nome da Rua que o usuário mora",
  "address_number": "99"
}

// Retorna os dados do Usuário

PUT/users/:user_id

// MODIFICA UM USUÁRIO ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "is_admin": true,
  "name": "Teste Modificado",
  "nickname": "TesteModificado",
  "password": "123",
  "bio": "Biografia do usuário, contando sobre ele...",
  "phone_number": "(99) 99999-9999",
  "cpf": "99999999999",
  "address_name": "Nome do Endereço do usuário",
  "cep": "99999999",
  "state": "Nome do Estado que o usuário mora",
  "city": "Nome da Cidade que o usuário mora",
  "neighborhood": "Nome do Bairro que o usuário mora",
  "street": "Nome da Rua que o usuário mora",
  "address_number": "99"
}

// Retorna os dados do Usuário

PUT/users/avatar/:user_id

// MODIFICA O AVATAR DE UM USUÁRIO ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "avatar": "uploads/images/users/teste-modificado.png"
}

// Retorna os dados do Usuário

DELETE/users/:user_id

// DELETA UM USUÁRIO ATRAVÉS DO ID

PROVIDERS

GET/providers

// PEGA TODOS OS PROVEDORES DE SERVIÇO (TRAZ INFORMAÇÔES DE USUÁRIO E DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "user_id": 2,
    "service_id": 1,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    }
  },

  {
    "id": 2,
    "user_id": 2,
    "service_id": 2,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5426433243436458345
    }
  },

  {
    "id": 3,
    "user_id": 1,
    "service_id": 1,

    "user": {
      "id": 1,
      "is_admin": false,
      "name": "Teste1",
      "nickname": "Teste1",
      "email": "teste@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste1.png",
      "phone_number": "(99) 99999-9999",
      "cpf": "99999999999",
      "address_name": "Nome do Endereço do usuário",
      "cep": "99999999",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "99",
      "created_at": 4320482340323044324,
      "updated_at": 5982433257430858345
    },

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    }
  }
]

GET/providers/:id

// PEGA UM PROVEDOR ATRAVÉS DO ID (TRAZ INFORMAÇÔES DE USUÁRIO E DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "user_id": 2,
  "service_id": 2,

  "user": {
    "id": 2,
    "is_admin": false,
    "name": "Teste2",
    "nickname": "Teste2",
    "email": "teste2@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste2.png",
    "phone_number": "(88) 88888-8888",
    "cpf": "88888888888",
    "address_name": "Nome do Endereço do usuário",
    "cep": "88888888",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "88",
    "created_at": 5462352340323044324,
    "updated_at": 6346333257430858345
  },

  "service": {
    "id": 2,
    "name": "Tatuagem",
    "created_at": 5426433243436458345
  }
}

GET/users/:user_id/providers

// PEGA UM PROVEDOR ATRAVÉS DO ID DE USUÁRIO (TRAZ INFORMAÇÔES DE USUÁRIO E DOS SEUS SERVIÇOS)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "user_id": 2,

  "user": {
    "id": 2,
    "is_admin": false,
    "name": "Teste2",
    "nickname": "Teste2",
    "email": "teste2@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste2.png",
    "phone_number": "(88) 88888-8888",
    "cpf": "88888888888",
    "address_name": "Nome do Endereço do usuário",
    "cep": "88888888",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "88",
    "created_at": 5462352340323044324,
    "updated_at": 6346333257430858345
  },

  "services": [
    {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    },

    {
      "id": 2,
      "name": "Piercing",
      "created_at": 5426433243436458345
    }
  ]
}

GET/users/:user_nickname/providers

// PEGA UM PROVEDOR ATRAVÉS DO NICKNAME DE USUÁRIO (TRAZ INFORMAÇÔES DE USUÁRIO E DOS SEUS SERVIÇOS)

// Estrutura do RESPONSE após o Request:

{
  "id": 3,
  "user_id": 1,

  "user": {
    "id": 1,
    "is_admin": false,
    "name": "Teste1",
    "nickname": "Teste1",
    "email": "teste@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste1.png",
    "phone_number": "(99) 99999-9999",
    "cpf": "99999999999",
    "address_name": "Nome do Endereço do usuário",
    "cep": "99999999",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "99",
    "created_at": 4320482340323044324,
    "updated_at": 5982433257430858345
  },

  "services": [
    {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    }
  ]
}

GET/services/:service_id/providers

// PEGA TODOS PROVEDORES ATRAVÉS DO ID DE SERVIÇO (TRAZ INFORMAÇÔES DE USUÁRIO E DE SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "user_id": 2,
    "service_id": 1,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    }
  },

  {
    "id": 3,
    "user_id": 1,
    "service_id": 1,

    "user": {
      "id": 1,
      "is_admin": false,
      "name": "Teste1",
      "nickname": "Teste1",
      "email": "teste@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste1.png",
      "phone_number": "(99) 99999-9999",
      "cpf": "99999999999",
      "address_name": "Nome do Endereço do usuário",
      "cep": "99999999",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "99",
      "created_at": 4320482340323044324,
      "updated_at": 5982433257430858345
    },

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 5426433243436458345
    }
  }
]

GETservices/:service_name/providers

// PEGA OS PROVEDORES ATRAVÉS DO NOME DO SERVIÇO (TRAZ INFORMAÇÔES DE USUÁRIO E DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 2,
    "user_id": 2,
    "service_id": 2,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5426433243436458345
    }
  }
]

GET/providers?user_id=1&service_id=1

// PEGA UM PROVEDOR ATRAVÉS DO ID DE USUÁRIO E DO ID DO SERVIÇO

// Estrutura do REQUEST (exemplo do body):

{
  "id": 3,
  "user_id": 1,
  "service_id": 1,

  "user": {
    "id": 1,
    "is_admin": false,
    "name": "Teste1",
    "nickname": "Teste1",
    "email": "teste@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste1.png",
    "phone_number": "(99) 99999-9999",
    "cpf": "99999999999",
    "address_name": "Nome do Endereço do usuário",
    "cep": "99999999",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "99",
    "created_at": 4320482340323044324,
    "updated_at": 5982433257430858345
  },

  "service": {
    "id": 1,
    "name": "Tatuagem",
    "created_at": 5426433243436458345
  }
}

POST/providers

// CRIA UM NOVO PROVEDOR

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2,
  "service_id": 2
}

// Retorna os dados do Provedor

PUT/providers/:id

// MODIFICA UM PROVEDOR ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2,
  "service_id": 3
}

// Retorna os dados do Provedor

PUT/providers?user_id=2&service_id=3

// MODIFICA UM PROVEDOR ATRAVÉS DO ID DE USUÁRIO E DO ID DO SERVIÇO

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2,
  "service_id": 1
}

// Retorna os dados do Provedor

DELETE/providers/:id

// DELETA UM PROVEDOR ATRAVÉS DO ID

CLERKS

GET/clerks

// PEGA TODOS OS ATENDENTES (TRAZ INFORMAÇÔES DE USUÁRIO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "user_id": 1,

    "user": {
      "id": 1,
      "is_admin": false,
      "name": "Teste1",
      "nickname": "Teste1",
      "email": "teste@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste1.png",
      "phone_number": "(99) 99999-9999",
      "cpf": "99999999999",
      "address_name": "Nome do Endereço do usuário",
      "cep": "99999999",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "99",
      "created_at": 4320482340323044324,
      "updated_at": 5982433257430858345
    }
  },

  {
    "id": 2,
    "user_id": 2,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    }
  }
]

GET/clerks/:id

// PEGA UM ATENDENTE ATRAVÉS DO ID (TRAZ INFORMAÇÔES DE USUÁRIO)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "user_id": 2,

  "user": {
    "id": 2,
    "is_admin": false,
    "name": "Teste2",
    "nickname": "Teste2",
    "email": "teste2@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste2.png",
    "phone_number": "(88) 88888-8888",
    "cpf": "88888888888",
    "address_name": "Nome do Endereço do usuário",
    "cep": "88888888",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "88",
    "created_at": 5462352340323044324,
    "updated_at": 6346333257430858345
  }
}

GET/users/:user_id/clerks

// PEGA UM ATENDENTE ATRAVÉS DO ID DE USUÁRIO (TRAZ INFORMAÇÔES DE USUÁRIO)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "user_id": 2,

  "user": {
    "id": 2,
    "is_admin": false,
    "name": "Teste2",
    "nickname": "Teste2",
    "email": "teste2@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste2.png",
    "phone_number": "(88) 88888-8888",
    "cpf": "88888888888",
    "address_name": "Nome do Endereço do usuário",
    "cep": "88888888",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "88",
    "created_at": 5462352340323044324,
    "updated_at": 6346333257430858345
  }
}

GET/users/:user_nickname/clerks

// PEGA UM ATENDENTE ATRAVÉS DO NICKNAME DE USUÁRIO (TRAZ INFORMAÇÔES DE USUÁRIO)

// Estrutura do RESPONSE após o Request:

{
  "id": 1,
  "user_id": 1,

  "user": {
    "id": 1,
    "is_admin": false,
    "name": "Teste1",
    "nickname": "Teste1",
    "email": "teste@email.com",
    "bio": "Biografia do usuário, contando sobre ele...",
    "avatar": "uploads/images/users/teste1.png",
    "phone_number": "(99) 99999-9999",
    "cpf": "99999999999",
    "address_name": "Nome do Endereço do usuário",
    "cep": "99999999",
    "state": "Nome do Estado que o usuário mora",
    "city": "Nome da Cidade que o usuário mora",
    "neighborhood": "Nome do Bairro que o usuário mora",
    "street": "Nome da Rua que o usuário mora",
    "address_number": "99",
    "created_at": 4320482340323044324,
    "updated_at": 5982433257430858345
  }
}

POST/clerks

// CRIA UM NOVO ATENDENTE

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2,
  "service_id": 2
}

// Retorna os dados do Atendente

PUT/clerks/:id

// MODIFICA UM ATENDENTE ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2,
  "service_id": 3
}

// Retorna os dados do Atendente

PUT/users/:user_id/clerks

// MODIFICA UM ATENDENTE ATRAVÉS DO ID DE USUÁRIO

// Estrutura do REQUEST (exemplo do body):

{
  "id": 2,
  "user_id": 2
}

// Retorna os dados do Atendente

DELETE/clerks/:id

// DELETA UM ATENDENTE ATRAVÉS DO ID

SERVICES

GET/services

// PEGA TODOS SERVIÇOS

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "name": "Tatuagem",
    "created_at": 7540485423723053753
  },

  {
    "id": 2,
    "name": "Piercing",
    "created_at": 5423485464223055226
  },

  {
    "id": 3,
    "name": "Serviço número 3",
    "created_at": 6425485754223065274
  }
]

GET/services/:id

// PEGA UM SERVIÇO ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 3,
  "name": "Serviço número 3",
  "created_at": 6425485754223065274
}

GET/services/:name

// PEGA UM SERVIÇO ATRAVÉS DO NOME

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "name": "Piercing",
  "created_at": 5423485464223055226
}

POST/services

// CRIA UM NOVO SERVIÇO

// Estrutura do REQUEST (exemplo do body):

{
  "name": "Tatuagem"
}

PUT/services/:id

// MODIFICA UM SERVIÇO ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "name": "Piercing"
}

DELETE/services/:id

// DELETA UM SERVIÇO ATRAVÉS DO ID

SUBCATEGORIES

GET/services/subcategories

// PEGA TODAS SUBCATEGORIAS (TRAZ DADOS DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "name": "Mão",
    "created_at": 6435585423723644643,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 2,
    "service_id": 2,
    "name": "Nariz",
    "created_at": 6434864642237734632,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "name": "",
    "created_at": 5323535754275453353,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/subcategories/:id

// PEGA UMA SUBCATEGORIA ATRAVÉS DO ID (TRAZ DADOS DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

{
  "id": 3,
  "service_id": 1,
  "name": "",
  "created_at": 5323535754275453353,

  "service": {
    "id": 1,
    "name": "Tatuagem",
    "created_at": 7540485423723053753
  }
}

GET/services/:service_id/subcategories

// PEGA TODAS SUBCATEGORIAS ATRAVÉS DO ID DO SERVIÇO (TRAZ DADOS DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "name": "Mão",
    "created_at": 6435585423723644643,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "name": "",
    "created_at": 5323535754275453353,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/:service_name/subcategories

// PEGA TODAS SUBCATEGORIAS ATRAVÉS DO NOME DO SERVIÇO (TRAZ DADOS DO SERVIÇO)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "name": "Mão",
    "created_at": 6435585423723644643,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "name": "",
    "created_at": 5323535754275453353,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

POST/services/subcategories

// CRIA UMA NOVA SUBCATEGORIA

// Estrutura do REQUEST (exemplo do body):

{
  "service_id": 2,
  "name": "Nariz"
}

PUT/services/subcategories/:id

// MODIFICA UMA SUBCATEGORIA ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "service_id": 2,
  "name": "Nariz Alterado"
}

DELETE/services/subcategories/:id

// DELETA UMA SUBCATEGORIA ATRAVÉS DO ID

TIPS

GET/services/tips

// PEGA TODAS AS DICAS ORDENADO PELO CAMPO "ordinal" (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "value": "Dica de Tatuagem número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 2,
    "service_id": 2,
    "value": "Dica de Piercing número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "value": "Dica de Tatuagem número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/tips/:id

// PEGA UMA DICA ATRAVÉS DO ID (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "service_id": 2,
  "value": "Dica de Piercing número 1",
  "ordinal": 2,
  "is_active": true,

  "service": {
    "id": 2,
    "name": "Piercing",
    "created_at": 5423485464223055226
  }
}

GET/services/:service_id/tips

// PEGA TODAS DICA ATRAVÉS DO ID DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "value": "Dica de Tatuagem número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "value": "Dica de Tatuagem número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/:service_name/tips

// PEGA TODAS DICA ATRAVÉS DO NOME DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 2,
    "service_id": 2,
    "value": "Dica de Piercing número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  }
]

POST/services/tips

// CRIA UMA NOVA DICA

// Estrutura do REQUEST (exemplo do body):

{
  "value": "Dica número 4",
  "service_id": 2,
  "ordinal": 4,
  "is_active": true,
}

PUT/services/tips/:id

// MODIFICA UMA DICA ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "value": "Dica de Tatuagem número 2",
  "service_id": 1,
  "ordinal": 3,
  "is_active": true,
}

DELETE/services/tips/:id

// DELETA UMA DICA ATRAVÉS DO ID

CARE

GET/services/cares

// PEGA TODOS OS CUIDADOS ORDENADO PELO CAMPO "ordinal" (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 2,
    "value": "Cuidado de Piercing número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  },

  {
    "id": 2,
    "service_id": 1,
    "value": "Cuidado de Tatuagem número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 3,
    "service_id": 2,
    "value": "Cuidado de Piercing número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  }
]

GET/services/cares/:id

// PEGA UMA CUIDADO ATRAVÉS DO ID (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "service_id": 1,
  "value": "Cuidado de Tatuagem número 1",
  "ordinal": 2,
  "is_active": true,

  "service": {
    "id": 1,
    "name": "Tatuagem",
    "created_at": 7540485423723053753
  }
}

GET/services/:service_id/cares

// PEGA TODOS CUIDADOS ATRAVÉS DO ID DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 2,
    "value": "Cuidado de Piercing número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  },

  {
    "id": 3,
    "service_id": 2,
    "value": "Cuidado de Piercing número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  }
]

GET/services/:service_name/cares

// PEGA TODOS CUIDADOS ATRAVÉS DO NOME DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 2,
    "service_id": 1,
    "value": "Cuidado de Tatuagem número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

POST/services/cares

// CRIA UM NOVO CUIDADO

// Estrutura do REQUEST (exemplo do body):

{
  "value": "Cuidado número 4",
  "ordinal": 4,
  "is_active": false
}

PUT/services/cares/:id

// MODIFICA UM CUIDADO ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "value": "Cuidado número 3 modificado",
  "ordinal": 3,
  "is_active": false
}

DELETE/services/cares/:id

// DELETA UM CUIDADO ATRAVÉS DO ID

FAQS

GET/services/faqs/list

// PEGA TODOS OS FAQS ORDENADO PELO CAMPO "ordinal" (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "question": "Pergunta de Tatuagem número 1",
    "answer": "Resposta de Tatuagem número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 2,
    "service_id": 2,
    "question": "Pergunta de Piercing número 1",
    "answer": "Resposta de Piercing número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "question": "Pergunta de Tatuagem número 2",
    "answer": "Resposta de Tatuagem número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/faqs/:id

// PEGA UMA FAQ ATRAVÉS DO ID (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

{
  "id": 3,
  "service_id": 1,
  "question": "Pergunta de Tatuagem número 2",
  "answer": "Resposta de Tatuagem número 2",
  "ordinal": 3,
  "is_active": true,

  "service": {
    "id": 1,
    "name": "Tatuagem",
    "created_at": 7540485423723053753
  }
}

GET/services/:service_id/faqs

// PEGA TODOS OS FAQS ATRAVÉS DO ID DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "service_id": 1,
    "question": "Pergunta de Tatuagem número 1",
    "answer": "Resposta de Tatuagem número 1",
    "ordinal": 1,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  },

  {
    "id": 3,
    "service_id": 1,
    "question": "Pergunta de Tatuagem número 2",
    "answer": "Resposta de Tatuagem número 2",
    "ordinal": 3,
    "is_active": true,

    "service": {
      "id": 1,
      "name": "Tatuagem",
      "created_at": 7540485423723053753
    }
  }
]

GET/services/name/:service_name/faqs

// PEGA TODOS OS FAQS ATRAVÉS DO NOME DO SERVIÇO (Traz informações do serviço)

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 2,
    "service_id": 2,
    "question": "Pergunta de Piercing número 1",
    "answer": "Resposta de Piercing número 1",
    "ordinal": 2,
    "is_active": true,

    "service": {
      "id": 2,
      "name": "Piercing",
      "created_at": 5423485464223055226
    }
  }
]

POST/services/faqs

// CRIA UM NOVO FAQ

// Estrutura do REQUEST (exemplo do body):

{
  "question": "Pergunta número 4",
  "answer": "Resposta número 4",
  "ordinal": 4,
  "is_active": false
}

PUT/services/faqs/:id

// MODIFICA UM FAQ ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "question": "Pergunta número 4 modificada",
  "answer": "Resposta número 4 modificado",
  "ordinal": 4,
  "is_active": true,
}

DELETE/services/faqs/:id

// DELETA UM FAQ ATRAVÉS DO ID

SCHEDULES

GET/providers/schedules

// PEGA TODOS OS HORÁRIOS DOS PROVEDORES

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "provider_user_id": 2,
    "time_from": 5323485425323053532,
    "time_to": 5523485464323053643,
    "description": "Descrição do horário marcado...",
    "created_at": 47534646432353346,

    "provider": {
      "id": 2,
      "user_id": 2,

      "user": {
        "id": 2,
        "is_admin": false,
        "name": "Teste2",
        "nickname": "Teste2",
        "email": "teste2@email.com",
        "bio": "Biografia do usuário, contando sobre ele...",
        "avatar": "uploads/images/users/teste2.png",
        "phone_number": "(88) 88888-8888",
        "cpf": "88888888888",
        "address_name": "Nome do Endereço do usuário",
        "cep": "88888888",
        "state": "Nome do Estado que o usuário mora",
        "city": "Nome da Cidade que o usuário mora",
        "neighborhood": "Nome do Bairro que o usuário mora",
        "street": "Nome da Rua que o usuário mora",
        "address_number": "88",
        "created_at": 5462352340323044324,
        "updated_at": 6346333257430858345
      },

      "services": [
        {
          "id": 1,
          "name": "Tatuagem",
          "created_at": 5426433243436458345
        },

        {
          "id": 2,
          "name": "Piercing",
          "created_at": 5426433243436458345
        }
      ]
    }
  },

  {
    "id": 2,
    "provider_user_id": 2,
    "time_from": 6332155425325323131,
    "time_to": 6533443212423053532,
    "description": "Descrição do horário marcado...",
    "created_at": 53642432432364236,

    "provider": {
      "id": 2,
      "user_id": 2,

      "user": {
        "id": 2,
        "is_admin": false,
        "name": "Teste2",
        "nickname": "Teste2",
        "email": "teste2@email.com",
        "bio": "Biografia do usuário, contando sobre ele...",
        "avatar": "uploads/images/users/teste2.png",
        "phone_number": "(88) 88888-8888",
        "cpf": "88888888888",
        "address_name": "Nome do Endereço do usuário",
        "cep": "88888888",
        "state": "Nome do Estado que o usuário mora",
        "city": "Nome da Cidade que o usuário mora",
        "neighborhood": "Nome do Bairro que o usuário mora",
        "street": "Nome da Rua que o usuário mora",
        "address_number": "88",
        "created_at": 5462352340323044324,
        "updated_at": 6346333257430858345
      },

      "services": [
        {
          "id": 1,
          "name": "Tatuagem",
          "created_at": 5426433243436458345
        },

        {
          "id": 2,
          "name": "Piercing",
          "created_at": 5426433243436458345
        }
      ]
    }
  },

  {
    "id": 3,
    "provider_user_id": 1,
    "time_from": 5321485425323532535,
    "time_to": 5235543464364342641,
    "description": "Descrição do horário marcado...",
    "created_at": 4323646432353212,

    "provider": {
      "id": 3,
      "user_id": 1,

      "user": {
        "id": 1,
        "is_admin": false,
        "name": "Teste1",
        "nickname": "Teste1",
        "email": "teste@email.com",
        "bio": "Biografia do usuário, contando sobre ele...",
        "avatar": "uploads/images/users/teste1.png",
        "phone_number": "(99) 99999-9999",
        "cpf": "99999999999",
        "address_name": "Nome do Endereço do usuário",
        "cep": "99999999",
        "state": "Nome do Estado que o usuário mora",
        "city": "Nome da Cidade que o usuário mora",
        "neighborhood": "Nome do Bairro que o usuário mora",
        "street": "Nome da Rua que o usuário mora",
        "address_number": "99",
        "created_at": 4320482340323044324,
        "updated_at": 5982433257430858345
      },

      "services": [
        {
          "id": 1,
          "name": "Tatuagem",
          "created_at": 5426433243436458345
        }
      ]
    }
  }
]

GET/providers/schedules/:id

// PEGA UM HORÁRIO DE UM PROVEDOR ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "provider_user_id": 2,
  "time_from": 6332155425325323131,
  "time_to": 6533443212423053532,
  "description": "Descrição do horário marcado...",
  "created_at": 53642432432364236,

  "provider": {
    "id": 2,
    "user_id": 2,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "services": [
      {
        "id": 1,
        "name": "Tatuagem",
        "created_at": 5426433243436458345
      },

      {
        "id": 2,
        "name": "Piercing",
        "created_at": 5426433243436458345
      }
    ]
  }
}

GET/providers/:provider_user_id/schedules

// PEGA OS HORÁRIOS DE UM PROVEDOR ATRAVÉS DO ID DE USUÁRIO DO PROVEDOR

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "provider_user_id": 2,
  "time_from": 6332155425325323131,
  "time_to": 6533443212423053532,
  "description": "Descrição do horário marcado...",
  "created_at": 53642432432364236,

  "provider": {
    "id": 2,
    "user_id": 2,

    "user": {
      "id": 2,
      "is_admin": false,
      "name": "Teste2",
      "nickname": "Teste2",
      "email": "teste2@email.com",
      "bio": "Biografia do usuário, contando sobre ele...",
      "avatar": "uploads/images/users/teste2.png",
      "phone_number": "(88) 88888-8888",
      "cpf": "88888888888",
      "address_name": "Nome do Endereço do usuário",
      "cep": "88888888",
      "state": "Nome do Estado que o usuário mora",
      "city": "Nome da Cidade que o usuário mora",
      "neighborhood": "Nome do Bairro que o usuário mora",
      "street": "Nome da Rua que o usuário mora",
      "address_number": "88",
      "created_at": 5462352340323044324,
      "updated_at": 6346333257430858345
    },

    "services": [
      {
        "id": 1,
        "name": "Tatuagem",
        "created_at": 5426433243436458345
      },

      {
        "id": 2,
        "name": "Piercing",
        "created_at": 5426433243436458345
      }
    ]
  }
}

POST/providers/schedules

// CRIA UM NOVO HORÁRIO DE UM PROVEDOR

// Estrutura do REQUEST (exemplo do body):

{
  "provider_user_id": 2,
  "time_from": 6332155425325323131,
  "time_to": 6533443212423053532,
  "description": "Descrição do horário marcado..."
}

PUT/providers/schedules/:id

// MODIFICA UM HORÁRIO DE UM PROVEDOR ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "provider_user_id": 2,
  "time_from": 6332155425325323131,
  "time_to": 6533443212423053532,
  "description": "Descrição do horário marcado modificado..."
}

DELETE/providers/schedules/:id

// DELETA UM HORÁRIO DE UM PROVEDOR ATRAVÉS DO ID

METADATAS

GET/metadatas

// PEGA TODOS OS METADADOS

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "key": "CepEstudio",
    "value": "99999999"
  },

  {
    "id": 2,
    "key": "DescricaoEnderecoEstudio",
    "value": "Descrição do endereço do estúdio"
  },

  {
    "id": 3,
    "key": "DescricaoCronogramaTrabalho",
    "value": "Descrição do Horário / Cronograma de trabalho"
  }
]

GET/metadatas/:id

// PEGA UM METADADO ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 1,
  "key": "CepEstudio",
  "value": "99999999"
}

GET/metadatas?key=DescricaoEnderecoEstudio

// PEGA UM METADADO ATRAVÉS DA KEY

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "key": "DescricaoEnderecoEstudio",
  "value": "Descrição do endereço do estúdio"
}

POST/metadatas

// CRIA UM NOVO METADADO

// Estrutura do REQUEST (exemplo do body):

{
  "key": "DescricaoCronogramaTrabalho",
  "value": "Descrição do Horário / Cronograma de trabalho"
}

PUT/metadatas/:id

// MODIFICA UM METADADO ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "key": "DescricaoCronogramaTrabalho",
  "value": "Descrição do Horário / Cronograma de trabalho Modificado"
}

PUT/metadatas?key=DescricaoCronogramaTrabalho

// MODIFICA UM METADADO ATRAVÉS DA KEY

// Estrutura do REQUEST (exemplo do body):

{
  "key": "DescricaoCronogramaTrabalho",
  "value": "Descrição do Horário / Cronograma de trabalho Modificado"
}

DELETE/metadatas/:id

// DELETA UM METADADO ATRAVÉS DO ID

POSTS

GET/posts

// PEGA TODOS OS POSTS

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "title": "Titulo da postagem 01...",
    "description": "Descrição da postagem 01...",
    "is_highlight": true,
    "standout_time": 54623,
    "expiration_date": 6453255325423545643,
    "is_promotion": false,
    "is_sale": true,
    "price": 100.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1, 3],
    "clerks_ids": [1],
    "subcategories_ids": [1, 3],

    "images": [
      {
        "id": 1,
        "image_path": "uploads/images/posts/post1-01.png",
        "description": "Descrição da imagem 01 do post 01..."
      },

      {
        "id": 2,
        "image_path": "uploads/images/posts/post1-02.png",
        "description": "Descrição da imagem 02 do post 01..."
      }
    ]
  },

  {
    "id": 2,
    "title": "Titulo da postagem 02...",
    "description": "Descrição da postagem 02...",
    "is_highlight": true,
    "standout_time": 45615,
    "expiration_date": 6823555643423547534,
    "is_promotion": false,
    "is_sale": false,
    "price": null,
    "old_price": null,
    "is_active": true,
    "created_at": 6534255364342045312,
    "updated_at": 6623355364344045643,
    
    "clerks_ids": [2],
    "subcategories_ids": [2],

    "images": [
      {
        "id": 3,
        "image_path": "uploads/images/posts/post2-01.png",
        "description": "Descrição da imagem 01 do post 02..."
      }
    ]
  },

  {
    "id": 1,
    "title": "Titulo da postagem 03...",
    "description": "Descrição da postagem 03...",
    "is_highlight": true,
    "standout_time": 60000,
    "expiration_date": null,
    "is_promotion": true,
    "is_sale": true,
    "price": 85.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1],
    "clerks_ids": [2, 3],
    "subcategories_ids": [2],

    "images": [
      {
        "id": 4,
        "image_path": "uploads/images/posts/post3-01.png",
        "description": "Descrição da imagem 01 do post 03..."
      },

      {
        "id": 5,
        "image_path": "uploads/images/posts/post3-02.png",
        "description": "Descrição da imagem 02 do post 03..."
      }
    ]
  }
]

GET/posts/:id

// PEGA UM POST ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 1,
  "title": "Titulo da postagem 01...",
  "description": "Descrição da postagem 01...",
  "is_highlight": true,
  "standout_time": 54623,
  "expiration_date": 6453255325423545643,
  "is_promotion": false,
  "is_sale": true,
  "price": 100.00,
  "old_price": 100.00,
  "is_active": true,
  "created_at": 5322355323323045323,
  "updated_at": 5322355323323045323,

  "providers_ids": [1, 3],
  "clerks_ids": [1],
  "subcategories_ids": [1, 3],

  "images": [
    {
      "id": 1,
      "image_path": "uploads/images/posts/post1-01.png",
      "description": "Descrição da imagem 01 do post 01..."
    },

    {
      "id": 2,
      "image_path": "uploads/images/posts/post1-02.png",
      "description": "Descrição da imagem 02 do post 01..."
    }
  ]
}

GET/providers/:provider_id/posts

// PEGA OS POSTS DE UM PROVEDOR ATRAVÉS DO ID DO PROVEDOR

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "title": "Titulo da postagem 01...",
    "description": "Descrição da postagem 01...",
    "is_highlight": true,
    "standout_time": 54623,
    "expiration_date": 6453255325423545643,
    "is_promotion": false,
    "is_sale": true,
    "price": 100.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1, 3],
    "clerks_ids": [1],
    "subcategories_ids": [1, 3],

    "images": [
      {
        "id": 1,
        "image_path": "uploads/images/posts/post1-01.png",
        "description": "Descrição da imagem 01 do post 01..."
      },

      {
        "id": 2,
        "image_path": "uploads/images/posts/post1-02.png",
        "description": "Descrição da imagem 02 do post 01..."
      }
    ]
  },

  {
    "id": 1,
    "title": "Titulo da postagem 03...",
    "description": "Descrição da postagem 03...",
    "is_highlight": true,
    "standout_time": 60000,
    "expiration_date": null,
    "is_promotion": true,
    "is_sale": true,
    "price": 85.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1],
    "clerks_ids": [2, 3],
    "subcategories_ids": [2],

    "images": [
      {
        "id": 4,
        "image_path": "uploads/images/posts/post3-01.png",
        "description": "Descrição da imagem 01 do post 03..."
      },

      {
        "id": 5,
        "image_path": "uploads/images/posts/post3-02.png",
        "description": "Descrição da imagem 02 do post 03..."
      }
    ]
  }
]

GET/services/:service_id/posts

// PEGA OS POSTS DE UM SERVIÇO ATRAVÉS DO ID DO SERVIÇO

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "title": "Titulo da postagem 01...",
    "description": "Descrição da postagem 01...",
    "is_highlight": true,
    "standout_time": 54623,
    "expiration_date": 6453255325423545643,
    "is_promotion": false,
    "is_sale": true,
    "price": 100.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1, 3],
    "clerks_ids": [1],
    "subcategories_ids": [1, 3],

    "images": [
      {
        "id": 1,
        "image_path": "uploads/images/posts/post1-01.png",
        "description": "Descrição da imagem 01 do post 01..."
      },

      {
        "id": 2,
        "image_path": "uploads/images/posts/post1-02.png",
        "description": "Descrição da imagem 02 do post 01..."
      }
    ]
  }
]

GET/subcategories/:subcategory_id/posts

// PEGA OS POSTS DE UMA SUBCATEGORIA ATRAVÉS DO ID DA SUBCATEGORIA

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 2,
    "title": "Titulo da postagem 02...",
    "description": "Descrição da postagem 02...",
    "is_highlight": true,
    "standout_time": 45615,
    "expiration_date": 6823555643423547534,
    "is_promotion": false,
    "is_sale": false,
    "price": null,
    "old_price": null,
    "is_active": true,
    "created_at": 6534255364342045312,
    "updated_at": 6623355364344045643,
    
    "clerks_ids": [2],
    "subcategories_ids": [2],

    "images": [
      {
        "id": 3,
        "image_path": "uploads/images/posts/post2-01.png",
        "description": "Descrição da imagem 01 do post 02..."
      }
    ]
  },

  {
    "id": 1,
    "title": "Titulo da postagem 03...",
    "description": "Descrição da postagem 03...",
    "is_highlight": true,
    "standout_time": 60000,
    "expiration_date": null,
    "is_promotion": true,
    "is_sale": true,
    "price": 85.00,
    "old_price": 100.00,
    "is_active": true,
    "created_at": 5322355323323045323,
    "updated_at": 5322355323323045323,

    "providers_ids": [1],
    "clerks_ids": [2, 3],
    "subcategories_ids": [2],

    "images": [
      {
        "id": 4,
        "image_path": "uploads/images/posts/post3-01.png",
        "description": "Descrição da imagem 01 do post 03..."
      },

      {
        "id": 5,
        "image_path": "uploads/images/posts/post3-02.png",
        "description": "Descrição da imagem 02 do post 03..."
      }
    ]
  }
]

POST/posts

// CRIA UM NOVO POST

// Estrutura do REQUEST (exemplo do body):

{
  "title": "Titulo da postagem...",
  "description": "Descrição da postagem...",
  "is_highlight": true,
  "standout_time": 54623,
  "expiration_date": 6453255325423545643,
  "is_promotion": true,
  "is_sale": true,
  "price": 100.00,
  "old_price": 100.00,
  "is_active": true,
  "created_at": 5322355323323045323,
  "updated_at": 5322355323323045323,

  "providers_ids": [1, 3],
  "clerks_ids": [1],
  "subcategories_ids": [1, 3],

  "images": [
    {
      "image_path": "uploads/images/posts/post-01.png",
      "description": "Descrição da imagem 01 do post..."
    },

    {
      "image_path": "uploads/images/posts/post-02.png",
      "description": "Descrição da imagem 02 do post..."
    }
  ]
}

// Retorna os dados do Post

PUT/posts/:id

// MODIFICA UM POST ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "title": "Titulo da postagem Modificado...",
  "description": "Descrição da postagem Modificado...",
  "is_highlight": true,
  "standout_time": 54623,
  "expiration_date": 6453255325423545643,
  "is_promotion": true,
  "is_sale": true,
  "price": 100.00,
  "old_price": 100.00,
  "is_active": true,
  "created_at": 5322355323323045323,
  "updated_at": 5322355323323045323,

  "providers_ids": [1, 3],
  "clerks_ids": [1],
  "subcategories_ids": [1, 3],

  "images": [
    {
      "image_path": "uploads/images/posts/post-01.png",
      "description": "Descrição da imagem 01 do post Modificado..."
    },

    {
      "image_path": "uploads/images/posts/post-02.png",
      "description": "Descrição da imagem 02 do post Modificado..."
    }
  ]
}

// Retorna os dados do Post

DELETE/posts/:id

// DELETA UM POST ATRAVÉS DO ID

POST IMAGES

GET/post_images

// PEGA TODAS AS IMAGENS DE POSTS

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 1,
    "image_path": "uploads/images/posts/post1-01.png",
    "description": "Descrição da imagem 01 do post 01..."
  },

  {
    "id": 2,
    "image_path": "uploads/images/posts/post1-02.png",
    "description": "Descrição da imagem 02 do post 01..."
  },

  {
    "id": 3,
    "image_path": "uploads/images/posts/post2-01.png",
    "description": "Descrição da imagem 01 do post 02..."
  },

  {
    "id": 4,
    "image_path": "uploads/images/posts/post3-01.png",
    "description": "Descrição da imagem 01 do post 03..."
  },

  {
    "id": 5,
    "image_path": "uploads/images/posts/post3-02.png",
    "description": "Descrição da imagem 02 do post 03..."
  }
]

GET/post_images/:id

// PEGA UMA IMAGEM DE UM POST ATRAVÉS DO ID

// Estrutura do RESPONSE após o Request:

{
  "id": 2,
  "image_path": "uploads/images/posts/post1-02.png",
  "description": "Descrição da imagem 02 do post 01..."
}

GET/posts/:post_id/post_images

// PEGA AS IMAGENS DE UM POST ATRAVÉS DO ID DO POST

// Estrutura do RESPONSE após o Request:

[
  {
    "id": 4,
    "image_path": "uploads/images/posts/post3-01.png",
    "description": "Descrição da imagem 01 do post 03..."
  },

  {
    "id": 5,
    "image_path": "uploads/images/posts/post3-02.png",
    "description": "Descrição da imagem 02 do post 03..."
  }
]

POST/post_images

// CRIA NOVAS IMAGENS DE UM POST

// Estrutura do REQUEST (exemplo do body):

[
  {
    "image_path": "uploads/images/posts/post-01.png",
    "description": "Descrição da imagem 01 do post..."
  },

  {
    "image_path": "uploads/images/posts/post-02.png",
    "description": "Descrição da imagem 02 do post..."
  }
]

// Retorna os dados das imagens do Post

PUT/post_images/:id

// MODIFICA UMA IMAGEM DE UM POST ATRAVÉS DO ID

// Estrutura do REQUEST (exemplo do body):

{
  "image_path": "uploads/images/posts/post-modificado-01.png",
  "description": "Descrição da imagem 01 do post Modificado..."
}

// Retorna os dados da imagem do Post

PUT/posts/:post_id/post_images

// MODIFICA AS IMAGENS DE UM POST ATRAVÉS DO ID DO POST

// Estrutura do REQUEST (exemplo do body):

[
  {
    "image_path": "uploads/images/posts/post-modificado-01.png",
    "description": "Descrição da imagem 01 do post Modificado..."
  },

  {
    "image_path": "uploads/images/posts/post-modificado-02.png",
    "description": "Descrição da imagem 02 do post Modificado..."
  }
]

// Retorna os dados das imagens do Post

DELETE/post_images/:id

// DELETA UMA IMAGEM DE UM POST ATRAVÉS DO ID

DELETE/posts/:post_id/post_images

// DELETA AS IMAGENS DE UM POST ATRAVÉS DO ID DO POST

About

Horus API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors