REST API para cadastro de hospedes e checkins com Spring Boot, PostgreSQL, JPA, Hibernate.

Para rodar localmente

1. Clonar o repositório

git clone https://github.com/kultzak/spring-boot-postgres-booking-api.git

2. Configurar o PostgreSQL

Criar um banco de dados chamado hotel_booking. Abrir src/main/resources/application.properties e modificar para o usuário e senha utilizado pelo banco em sua instalação do PostgreSQL.

3. Rodar a API

Digitar o seguinte comando na raiz do projeto:

mvn spring-boot:run

ou o comando seguinte para empacotar a aplicação como JAR e rodar.

mvn clean package
java -jar target/booking-system-0.0.1-SNAPSHOT.jar

3. Utilização da API

Inserir hóspede:

POST http://localhost:8080/api/hospedes/register
Exemplo de input:     
{
    "name": "Guadalupe",
    "document": "000002",
    "phone": "999 818181"
}

Atualizar hóspede:

PUT http://localhost:8080/api/hospedes/{hospede id}
Exemplo de input:     
{
    "name": "Guadalupe Josefina",
    "document": "000002",
    "phone": "999 818181"
}

Excluir hóspede:

DELETE http://localhost:8080/api/hospedes/{hospede id}

Pesquisar hóspede:

# retorna a lista completa de hóspedes paginada:
GET http://localhost:8080/api/hospedes/

# pesquisa por nome, identidade ou telefone: 
http://localhost:8080/api/hospedes/q/?name=fulano
http://localhost:8080/api/hospedes/q/?document=00001
http://localhost:8080/api/hospedes/q/?phone=789 111

Criar check in:

POST http://localhost:8080/api/checkIns/create
{
    "hospedeId": "52",
    "chechInDate": "2020-06-21T19:10:19.866",
    "checkOutDate": "2020-07-25T12:17:19.866",
    "additional": true
}

Buscar clientes atualmente hospedados:

GET http://localhost:8080/api/checkIns/hosted-hospedes/{pagina}/{itens por pagina}

Buscar clientes não mais hospedados:

GET http://localhost:8080/api/checkIns/past-hosted-hospedes/{pagina}/{itens por pagina}