# Requisitos

## Requisitos Funcionais

### RF01 - Cadastro de Produtos

O sistema deve permitir cadastrar produtos com código, nome, descrição, categoria, unidade de medida e estoque mínimo.

### RF02 - Edição de Produtos

O sistema deve permitir editar dados cadastrais de produtos existentes.

### RF03 - Inativação de Produtos

O sistema deve permitir inativar produtos sem excluir seu histórico.

### RF04 - Cadastro de Fornecedores

O sistema deve permitir cadastrar fornecedores com dados básicos de contato.

### RF05 - Entrada de Estoque

O sistema deve permitir registrar entrada de produtos no estoque.

### RF06 - Saída de Estoque

O sistema deve permitir registrar saída de produtos do estoque.

### RF07 - Ajuste de Estoque

O sistema deve permitir registrar ajustes positivos ou negativos mediante justificativa.

### RF08 - Consulta de Saldo

O sistema deve permitir consultar o saldo atual de cada produto.

### RF09 - Estoque Mínimo

O sistema deve identificar produtos com saldo abaixo do estoque mínimo configurado.

### RF10 - Histórico de Movimentações

O sistema deve manter histórico completo de movimentações por produto.

### RF11 - Relatórios

O sistema deve gerar relatórios de saldo, movimentações, entradas, saídas e produtos abaixo do mínimo.

### RF12 - Controle de Usuários

O sistema deve permitir perfis de acesso para administrador, operador e consulta.

## Requisitos Não Funcionais

### RNF01 - Usabilidade

A interface deve ser simples, objetiva e adequada para uso operacional diário.

### RNF02 - Segurança

O sistema deve exigir autenticação para acesso às funcionalidades internas.

### RNF03 - Auditoria

Operações críticas devem registrar usuário, data e detalhes da alteração.

### RNF04 - Integridade

O sistema deve impedir inconsistências de saldo e movimentações inválidas.

### RNF05 - Desempenho

Consultas de saldo e listagens principais devem responder rapidamente para volumes moderados de dados.

### RNF06 - Manutenibilidade

O código deve ser organizado por responsabilidades e permitir evolução incremental.

## Regras de Validação

- Quantidades devem ser maiores que zero.
- Código do produto deve ser único.
- Nome do produto é obrigatório.
- Estoque mínimo não pode ser negativo.
- Movimentações devem estar vinculadas a um produto ativo.
- Ajustes devem exigir observação.

