# data[].attributes.body
O sistema deve permitir a reserva de filmes por clientes com os seguintes atributos: data e hora da reserva, tipo de mídia, cliente (reservas são atendidas por ordem de chegada e tipo de mídia). Não são aceitas reservas para filmes que têm itens do tipo de mídia requerido disponíveis na locadora, nem reservas para datas específicas.

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e exclusão de unidades federativas, com o seguinte atributo: Descrição.

# data[].attributes.body
O sistema deve permitir o registro de locação de filme com os seguintes atributos: data da locação, data de devolução prevista, filme e cliente (uma locação só pode ser feita para um item que estejam disponíveis e não reservado).

# data[].attributes.body
O sistema deverá ter uma interface agradável e ser de fácil utilização.

# data[].attributes.body
O sistema deve permitir a emissão de relatório exibindo os dados cadastrais de fornecedores selecionados, retornando Razão Social, Nome Fantasia, IE, CNPJ, E-mail, Telefone e Fax.

# data[].attributes.body
As consultas devem ser performáticas para garantir que em qualquer lugar o usuário possa acessar o acervo da locadora (via internet cabeada, Wi-Fi, 3G, etc.).

# data[].attributes.body
O sistema deve permitir a reserva de filmes por clientes com os seguintes atributos: data e hora da reserva, tipo de mídia, cliente (reservas são atendidas por ordem de chegada e tipo de mídia). Não são aceitas reservas para filmes que têm itens do tipo de mídia requerido disponíveis na locadora, nem reservas para datas específicas.

# data[].attributes.body
O sistema deve permitir a emissão de relatório de vendas em um determinado período, retornando Data e Hora, Tipo de Pagamento, Total da Venda, Total de Desconto e Vendedor, com os seguintes filtros: Data Inicial e Data Final, Forma de Pagamento, Vendas Ativas ou Vendas Canceladas.

# data[].attributes.body
O sistema deve permitir o recebimento de produtos, com os seguintes atributos: Produto, Quantidade, Data de Validade, Fornecedor, Custo Unitário e Observações (opcional). O estoque de produtos deverá ser atualizado automaticamente.

# data[].attributes.body
O sistema deve permitir o registro e alteração da devolução de filmes com os seguintes atributos: data de devolução prevista, valor pago na devolução (para multas de devoluções em atraso, é de um dia para lançamentos e três dias para filmes do catálogo, onde é calculada como sendo o valor da locação aplicado ao número de dias de atraso), desconto individualizado, ampliar prazo de devolução. Se a locação do item não tenha sido paga no ato da locação, terá de ser paga obrigatoriamente na devolução (não são aceitos pagamentos mensais ou em outros momentos que não a locação ou a devolução), status (devolvido, alugado ou reservado).

# data[].attributes.body
O sistema deve permitir a entrada de produtos no estoque, com os seguintes atributos: Quantidade, Produto, Data e Motivo. O estoque de produtos deverá ser atualizado automaticamente.

# data[].attributes.body
O sistema deve manter clientes dependentes com os seguintes atributos: nome, e-mail, sexo e data de nascimento (deve estar vinculado à um cliente titular), número de inscrição (único por cliente).

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e exclusão de unidades federativas, com o seguinte atributo: Descrição.

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e exclusão de unidades de medida, com o seguinte atributo: Descrição e status (unidade de medida ativa ou inativa).

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e exclusão de categorias, com o seguinte atributo: Descrição e o status (categoria ativa ou inativa).

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e inativação de funcionários, com os seguintes atributos: Nome, Usuário, Senha, Confirmação da Senha.

# data[].attributes.body
O sistema deve manter clientes titulares com os seguintes atributos: nome, e-mail, endereço, telefone residencial, local onde trabalha, telefone comercial, telefone celular, sexo, CPF data de nascimento (apenas maiores de idade podem ser titulares), dependentes (pode indicar até três dependentes), número de inscrição (único por cliente).

# data[].attributes.body
A interface de consulta web ao acervo deve ser responsiva, garantindo que qualquer dispositivo (Smartphone, Tablet, PC, etc.) possam ter acesso.

# data[].attributes.body
O sistema deve possuir senhas de acesso e identificação para os usuários do sistema, pois a base de dados deve ser protegida para acesso apenas de usuários autorizados.

# data[].attributes.body
O sistema deve estar disponível 24h por dia e 7 dias na semana, garantindo que a qualquer momento o usuário possa consultar o acervo da locadora online.

# data[].attributes.body
O sistema deve possuir tela de autenticação, solicitando usuário e senha para ter acesso ao sistema.

# data[].attributes.body
O sistema deve ser simples e de fácil uso.

# data[].attributes.body
O sistema deve ser capaz de realizar consultas na base de dados em até 5 (cinco) segundos.

# data[].attributes.body
O tempo de resposta para as operações de inserção, alteração e inativação não deve exceder cinco segundos.

# data[].attributes.body
O sistema deve comunicar por e-mail o cliente que reservou um filme quando o filme for devolvido e estiver disponível (o cliente tem 24 horas para retirá-lo, Caso contrário, expirasse a reserva e o item é liberado).

# data[].attributes.body
O sistema devera iniciar uma impressão de relatórios solicitados dentro de no máximo dois segundos após sua requisição.

# data[].attributes.body
O sistema deve permitir manter distribuidores com os seguintes atributos: razão social, CNPJ, endereço, telefone e pessoa de contato.

# data[].attributes.body
O sistema deve registrar pagamentos feitos em cartão com os seguintes atributos: valor, a operadora do cartão e o número e a data da autorização

# data[].attributes.body
O sistema deve registrar pagamentos feitos em cheque com os seguintes atributos: valor, banco, agência, conta e número do cheque.

# data[].attributes.body
O sistema deve permitir a saída de produtos no estoque, com os seguintes atributos: Quantidade, Produto, Data e Motivo. O estoque de produtos deverá ser atualizado automaticamente.

# data[].attributes.body
O sistema deve permitir manter filmes com os seguintes atributos: título original, título em português, países, ano, direção, elenco, sinopse, duração,  distribuidor, data de aquisição, número de série (código de barras) e tipo de mídia, tipo de mídia (DVD e HDDVD R$ 6,00 e BluRay R$ 8,50), gênero (ação, animação, aventura, comédia, documentário, drama, ficção, guerra, musical, policial, romance, suspense e terror), tipo (catálogo possuem preço comum e, ou lançamentos possuem acréscimo de 50% no valor).

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e inativação de fornecedores, com os seguintes atributos: Razão Social, Nome Fantasia, IE, CNPJ, Representante, Telefone, Celular, Fax, E-mail, Endereço, Número, Bairro, Cidade, UF, CEP Complemento e Fornecedor Ativo (sim/não).

# data[].attributes.body
O sistema deve permitir o registro de locação de filme com os seguintes atributos: data da locação, data de devolução prevista, filme e cliente (uma locação só pode ser feita para um item que estejam disponíveis e não reservado).

# data[].attributes.body
O sistema deve permitir o cadastro e cancelamento de vendas, com os seguintes atributos: Produto, código de barras, Forma de Pagamento, Unidade de Medida, Valor Unitário, Quantidade, Subtotal, Desconto e Valor Recebido. O estoque de produtos deverá ser atualizado automaticamente.

# data[].attributes.body
O sistema deve permitir consultas ao acervo da locadora pela internet com os seguintes atributos: título (ou parte dele, original ou em português), gênero, tipo de mídia disponível, ator, diretor, nacionalidade e lançamentos (combinando ou não essas informações para filtrar os filmes).

# data[].attributes.body
O sistema deve permitir a emissão de relatório dos produtos disponíveis no estoque retornando Quantidade, Validade, Descrição, Data do Cadastro e Última Atualização, podendo ser filtrados de acordo com os seguintes parâmetros: Categoria, Todos, Código de Barras e Produto Ativo ou Produto Inativo.

# data[].attributes.body
O sistema deve permitir o cadastro, alteração e inativação de produtos, com os seguintes atributos: Código de Barras, Descrição, Unidade de Medida, Categoria, Estoque Mínimo, Estoque Máximo, quantidade atual do produto no estoque, Custo Unitário, Percentual do Lucro, Preço de Venda e Produto Ativo (sim/não).