# DATABASE_SPEC.md

## Banco alvo

MySQL 8+ em producao. SQLite e aceito apenas para desenvolvimento local e testes.

## Entidades implementadas na base inicial

users, roles, permissions, permission_role, role_user, events, event_user, warehouses, warehouse_locations, brands, categories, product_types, measurement_units, condition_tags, tags, products, product_units, inventory_balances, reservations, reservation_items, reservation_unit_allocations, transfers, transfer_items, sales, sale_items, inventory_movements, inspections, inspection_photos, maintenance_records, audit_logs e settings.

## Livro razao

inventory_movements e o livro razao do estoque. Toda alteracao operacional relevante deve gerar movimento com tipo, produto, unidade opcional, quantidade, origem, destino, evento, reserva, venda, usuario, data, observacao e metadata quando necessario.

## Arquivos

Fotos nao devem ser gravadas em BLOB. Salvar em storage, com caminho e metadados no banco.
