esse sistema é um backend de um e-commerce, onde é possível realizar cadastro de usuários, produtos, categorias, endereços, pedidos e itens do pedido.
- Histórico de compras: Registrar o histórico de compras de cada usuário para análise e personalização de ofertas.
- Política de senha: Definir requisitos de força para a senha (tamanho mínimo, caracteres especiais, etc.). -Verificação de email: Enviar um email de verificação para confirmar o endereço de email cadastrado
- Recuperação de senha: Permitir que o usuário redefina a senha por meio de um link enviado por email.
- Perfil do usuário: Permitir que o usuário edite suas informações pessoais e endereços cadastrados.
- Exclusão de conta: Permitir que o usuário exclua sua conta
- O usuário deve preencher todos os campos obrigatórios (nome completo, email, senha,
- telefone) para se cadastrar.
- O email deve ser único e válido.
- A senha deve ser criptografada com um algoritmo seguro (como bcrypt).
- O telefone deve ser único e válido.
- O email e a senha informados devem corresponder a um usuário cadastrado.
- Implementar políticas de tentativas de login para evitar ataques de força bruta.
- Limite de endereços: Definir se há um limite para o número de endereços que um usuário pode cadastrar.
- Endereço padrão: Um usuário deve ter um endereço padrão definido para entregas.
- Validação de endereço: Verificar se o endereço fornecido é válido (CEP, formato, etc.).
- Exclusão de endereço: Permitir que o usuário exclua endereços cadastrados.
- Relacionamento: Um endereço pertence a um único usuário, e um usuário pode ter vários endereços (um para muitos).
- Preço: O preço e o preço de atacado devem ser valores positivos.
- Disponibilidade: A quantidade de estoque disponível deve ser um valor não negativo.
- Imagens: Definir o tamanho máximo permitido para as imagens dos produtos.
- Status: O status do produto deve ser "outStock" ou "inStock".
- Status do pedido: O status do pedido deve refletir o fluxo de processamento (pendente, em processamento, enviado, entregue, cancelado).
- Total do pedido: O total do pedido deve ser calculado com base na quantidade e preço dos itens comprados, considerando descontos de cupons (se houver).
- Validação de endereço de entrega: O endereço de entrega deve pertencer ao cliente que realizou o pedido.
- Validação do método de pagamento: O método de pagamento selecionado deve ser válido e suportado pelo e-commerce.
- Cancelamento de pedido: Permitir que o cliente cancele um pedido antes do envio.
- Quantidade: A quantidade de itens por produto no pedido deve ser um valor positivo.
- Nome da categoria: O nome da categoria deve ser único e descritivo.
- Relacionamento: Um produto pode pertencer a várias categorias, e uma categoria pode conter vários produtos (muitos para muitos).
- Quantidade vendida: A quantidade vendida deve ser um valor positivo e não pode exceder a quantidade disponível em estoque.
- Avaliação: A avaliação por estrelas deve estar entre 0 e 5.
- Comentários: Permitir que os clientes deixem comentários sobre os produtos.
- Limite de itens: Definir se há um limite para o número de itens que um cliente pode adicionar ao carrinho.
- Exclusão de itens: Permitir que o cliente exclua itens do carrinho.
- Quantidade: A quantidade de itens por produto no carrinho deve ser um valor positivo.
- Validade: O cupom deve ter uma data de expiração.
- Tipo de desconto: O tipo de desconto pode ser percentual ou valor fixo.
- Valor do desconto: O valor do desconto deve ser positivo (para descontos percentuais) ou não-negativo (para descontos fixos).
- Restrições de uso: Definir se há restrições de uso para o cupom (valor mínimo de compra, categorias específicas, etc.).
- Relacionamento: Um pedido pode ter um único cupom associado.