Code Monkey home page Code Monkey logo

hotel's Introduction

Daniel Wisky

danielwisky danielwisky

Olá! Seja bem-vindo ao meu perfil

Meu nome é Daniel e eu sou desenvolvedor back-end.

  • 💙 Apaixonado por Tecnologia
  • ☕ Java/Kotlin/Clojure
  • 💚 NoSQL
  • ✉️ Mensageria/Streams

Estatísticas

Linguagens mais usadas

Snake animation

Linkedin Badge Instagram Badge YouTube Badge

hotel's People

Contributors

danielwisky avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

hotel's Issues

Realizar reserva de acomodação (hospedagem)

Objetivo

Desenvolver fluxo de hospedagem (reserva de acomodações)

POST: /api/v1/hospedagens

Validações

  • Validar se já existe uma reserva para a mesma acomodação + período.

Payload

{
  "acomodacaoId": 1,
  "hospedeId": 1,
  "acompanhanteIds": [
    1
  ],
  "dataEntrada": "2021-05-20T00:00:00",
  "dataSaida": "2021-05-29T00:00:00"
}

Sugestão de leitura

https://docs.spring.io

Consultar hospedes

Objetivo

Desenvolver a consulta paginada de todos os hospedes.

GET: api/v1/hospedes?page={page}&size={size}

Payload

{
  "hospedes": [
    {
      "id": 123,
      "nome": "Tony Stark",
      "documento": "999.999.999-99",
      "dataNascimento": "1970-05-29T00:00:00",
      "email": "[email protected]",
      "telefone": "(99) 9999-9999",
      "celular": "(99) 9 9999-9999",
      "endereco": {
        "cep": "99999-999",
        "numero": "999",
        "bairro": "Manhattan",
        "cidade": "Nova Iorque",
        "estado": "Nova Iorque",
        "logradouro": "Park Avenue",
        "complemento": "casa do tony"
      }
    }
  ],
  "pageNumber": 0,
  "pageSize:": 1,
  "totalPages": 1,
  "totalElements": 1
}

Sugestão de leitura

https://docs.spring.io

Consultar acomodação por ID

Objetivo

Desenvolver uma consulta de uma acomodação por ID.

GET: api/v1/acomodacoes/{id}

Payload

{
  "id": 123,
  "nome": "Quarto",
  "descricao": "Quarto Duplo com Vista da Piscina",
  "capacidade": 4,
  "preco": 299.0
}

Sugestão de leitura

https://docs.spring.io

Consultar acompanhante de hospede por ID

Objetivo

Desenvolver uma consulta de um acompanhante por ID.

GET: api/v1/hospedes/{hospedeId}/acompanhantes/{id}

Payload

{
  "id": 123,
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00"
}

Sugestão de leitura

https://docs.spring.io

Consultar acompanhantes de hospede

Objetivo

Desenvolver uma consulta paginada de todas as acomodações.

GET: api/v1/hospedes/{hospedeId}/acompanhantes?page={page}&size={size}

Payload

{
  "acompanhantes": [
    {
      "id": 123,
      "nome": "Tony Stark",
      "documento": "999.999.999-99",
      "dataNascimento": "1970-05-29T00:00:00"
    }
  ],
  "pageNumber": 0,
  "pageSize:": 1,
  "totalPages": 1,
  "totalElements": 1
}

Sugestão de leitura

https://docs.spring.io

Editar hospede

Objetivo

Desenvolver fluxo de atualização de um hospede existente.

PUT: /api/v1/hospedes/{id}

Validações

  • Validar email único

Payload

{
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00",
  "email": "[email protected]",
  "telefone": "(99) 9999-9999",
  "celular": "(99) 9 9999-9999",
  "endereco": {
    "cep": "99999-999",
    "numero": "999",
    "bairro": "Manhattan",
    "cidade": "Nova Iorque",
    "estado": "Nova Iorque",
    "logradouro": "Park Avenue",
    "complemento": "casa do tony"
  }
}

Sugestão de leitura

https://docs.spring.io

Pesquisar reservas (hospedagem)

Objetivo

Desenvolver a pesquisa de hospedagens.

GET: api/v1/hospedagens

Filtros permitidos:

  • page
  • size
  • status
  • dataEntradaInicio
  • dataEntradaFim
  • dataSaidaInicio
  • dataSaidaFim

Payload

{
  "hospedagens": [
    {
      "acomodacao": {
        "nome": "Quarto",
        "descricao": "Quarto Duplo com Vista da Piscina",
        "capacidade": 4,
        "preco": 299.0
      },
      "hospede": {
        "id": 123,
        "nome": "Tony Stark",
        "documento": "999.999.999-99",
        "dataNascimento": "1970-05-29T00:00:00",
        "email": "[email protected]",
        "telefone": "(99) 9999-9999",
        "celular": "(99) 9 9999-9999"
      },
      "acompanhantes": [
        {
          "id": 123,
          "nome": "Tony Stark",
          "documento": "999.999.999-99",
          "dataNascimento": "1970-05-29T00:00:00"
        }
      ],
      "dataEntrada": "2021-05-20T00:00:00",
      "dataSaida": "2021-05-29T00:00:00",
      "dataCheckIn": "2021-05-29T00:00:00",
      "dataCheckOut": "2021-05-29T00:00:00",
      "status": "PAGO"
    }
  ],
  "pageNumber": 0,
  "pageSize:": 1,
  "totalPages": 1,
  "totalElements": 1
}

Sugestão de leitura

https://docs.spring.io

Editar acompanhante de hospede

Objetivo

Desenvolver edição de acompanhante do hospede.

PUT: /api/v1/hospedes/{hospedeId}/acompanhantes/{id}

Payload

{
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00"
}

Sugestão de leitura

https://docs.spring.io

Editar acomodação

Objetivo

Desenvolver fluxo de atualização de uma acomodação existente (apartamentos/quartos).

PUT: /api/v1/acomodacoes/{id}

Payload

{
  "nome": "Quarto",
  "descricao": "Quarto Duplo com Vista da Piscina",
  "capacidade": 4,
  "preco": 299.0
}

Sugestão de leitura

https://docs.spring.io

Realizar check-in/check-out e confirmação de pagamento

Objetivo

Desenvolver de atualização parcial da hospedagem (check-in/check-out e confirmação de pagamento)

PATCH: /api/v1/hospedagens/{id}

Validações

  • Para realizar check-out (o check-in já deverá ter sido realizado)
  • Data do check-out deve ser maior que a data do check-int

Payload

  • Para realizar check-in:
{
  "dataCheckIn": "2021-05-29T00:00:00"
}
  • Para realizar check-out:
{
  "dataCheckOut": "2021-05-29T00:00:00"
}
  • Para realizar confirmação de pagamento:
{
  "status": "PAGO"
}

Sugestão de leitura

https://docs.spring.io

Criar acompanhante de hospede

Objetivo

Desenvolver fluxo de criação de acompanhante para um hospede.

POST: /api/v1/hospedes/{hospedeId}/acompanhantes

Payload

{
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00"
}

Sugestão de leitura

https://docs.spring.io

Consultar acomodações

Objetivo

Desenvolver uma consulta paginada de todas as acomodações.

GET: api/v1/acomodacoes?page={page}&size={size}

Payload

{
  "acomodacoes": [
    {
      "id": 123,
      "nome": "Quarto",
      "descricao": "Quarto Duplo com Vista da Piscina",
      "capacidade": 4,
      "preco": 299.0
    }
  ],
  "pageNumber": 0,
  "pageSize:": 1,
  "totalPages": 1,
  "totalElements": 1
}

Sugestão de leitura

https://docs.spring.io

Criar acomodação

Objetivo

Desenvolver fluxo de criação de uma nova acomodação (apartamentos/quartos).

POST: /api/v1/acomodacoes

Payload

{
  "nome": "Quarto",
  "descricao": "Quarto Duplo com Vista da Piscina",
  "capacidade": 4,
  "preco": 299.0
}

Sugestão de leitura

https://docs.spring.io

Criar hospede

Objetivo

Desenvolver fluxo de criação de um novo hospede.

POST: /api/v1/hospedes

Validações

  • validar email único

Payload

{
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00",
  "email": "[email protected]",
  "telefone": "(99) 9999-9999",
  "celular": "(99) 9 9999-9999",
  "endereco": {
    "cep": "99999-999",
    "numero": "999",
    "bairro": "Manhattan",
    "cidade": "Nova Iorque",
    "estado": "Nova Iorque",
    "logradouro": "Park Avenue",
    "complemento": "casa do tony"
  }
}

Sugestão de leitura

https://docs.spring.io

Consultar hospede por ID

Objetivo

Desenvolver uma consulta de um hospede por ID.

GET: api/v1/hospedes/{id}

Payload

{
  "id": 123,
  "nome": "Tony Stark",
  "documento": "999.999.999-99",
  "dataNascimento": "1970-05-29T00:00:00",
  "email": "[email protected]",
  "telefone": "(99) 9999-9999",
  "celular": "(99) 9 9999-9999",
  "endereco": {
    "cep": "99999-999",
    "numero": "999",
    "bairro": "Manhattan",
    "cidade": "Nova Iorque",
    "estado": "Nova Iorque",
    "logradouro": "Park Avenue",
    "complemento": "casa do tony"
  }
}

Sugestão de leitura

https://docs.spring.io

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.