- Deve ser adicionado um botão "Locar" em cada linha da grid, que ao ser clicado irá redirecionar para a tela de locação.
- Como não faz mais sentido jogo possuir um "valor":
- Deve ser removido os indicadores de "Jogo mais barato", "Jogo mais caro" e média de preço da tela de listagem
- Deve ser removido o campo de valor do domínio, banco de dados e qualquer outro resquício que possa ter ficado
- Deve mostrar a imagem e descrição do jogo que foi selecionado na tela de listagem de jogos disponíveis, bem como a data prevista para devolução e o valor formatado em reais (isso tudo DEVE ficar numa Partial View)
- (bônus) Caso o operador tenha entrado na tela diretemante (sem selecionar um jogo) deve ser exibido para ele um campo de autocomplete para buscar os jogos por nome
- Deve possuir um campo com autocomplete para que o operador possa buscar um cliente (não precisa fazer tela de cadastro de clientes, basta inserir uns clientes na base de dados para podermos testar)
- Deve possuir um botão "Finalizar Locação"
- Cliente pode ter no máximo 3 jogos locados por vez
- Regra de selos:
- Ouro: Deve ser entregue em 1 dia e custa R$ 15,00
- Prata: Deve ser entregue em 2 dia e custa R$ 10,00
- Bronze: Deve ser entregue em 3 dia e custa R$ 5,00
- A tela deve receber o Id do jogo por parâmetro para saber qual jogo está sendo locado
- Ao clicar em "Finalizar Locação" deve validar as regras de locação, caso a locação não possa ser realizada pelo cliente deve exibir uma mensagem na tela
Dica: criar uma LocacaoService para centralizar as regras de locação
- Deve possuir um autocomplete de jogo para que o operador diga qual o jogo está sendo devolvido.
- Deve exibir o nome do jogo, data de locação, e valor final
- Caso o jogo esteja sendo entregue atrasado, deve ser adicionado no valor final uma taxa de 5 reais por dia de atraso.
Ao finalizar uma devolução deve recarregar a tela com todos os campos VAZIOS e exibir uma mensagem de que o jogo foi devolvido com sucesso.