Seeders Criados - AgrSis v1
Seeders Criados - AgrSis v1
Resumo Executivo
Foram criados 8 seeders essenciais para popular o banco de dados do AgrSis com dados iniciais necessários para o funcionamento do sistema.
Lista de Seeders Criados
1. GeographySeeder ✅
Arquivo: /api/database/seeders/GeographySeeder.php
Popula:
- 27 Estados brasileiros (tabela
states) - ~220 Cidades principais (tabela
state_cities)
Total de registros: ~247
2. AccessTypeSeeder ✅
Arquivo: /api/database/seeders/AccessTypeSeeder.php
Popula:
- Tipos de acesso ao sistema (tabela
access_types)- ID 1: Acesso de Cliente
- ID 2: Acesso de Fornecedor
- ID 9: Acesso de Administrador
Total de registros: 3
Características:
- IDs fixos para manter consistência
- Idempotente (pode ser executado múltiplas vezes)
3. ProductTypeSeeder ✅
Arquivo: /api/database/seeders/ProductTypeSeeder.php
Popula:
- Tipos de produtos agrícolas (tabela
product_types)- Fertilizantes
- Defensivos Agrícolas
- Herbicidas, Inseticidas, Fungicidas
- Sementes, Mudas
- Equipamentos (Irrigação, EPIs)
- Produtos Veterinários
- E muitos outros...
Total de registros: 21
4. MeasurementUnitSeeder ✅
Arquivo: /api/database/seeders/MeasurementUnitSeeder.php
Popula:
- Unidades de medida (tabela
measurement_units)- Peso: kg, g, ton, mg
- Volume: L, mL, gal
- Quantidade: un, dz, cx, sc, pac, fd, bomb, bd, tamb, barr
- Área: ha, m², alq
- Comprimento: m, cm, km, mm
- Específicas do agro: @, sc 60kg, sc 50kg, etc.
Total de registros: 31
5. PaymentMethodSeeder ✅
Arquivo: /api/database/seeders/PaymentMethodSeeder.php
Popula:
- Métodos de pagamento (tabela
payment_methods)- Boleto Bancário
- PIX
- Cartão de Crédito/Débito
- Transferência Bancária
- Dinheiro
- Depósito em Conta
- Cheque (desativado)
Total de registros: 8
6. OrderStatusSeeder ✅
Arquivo: /api/database/seeders/OrderStatusSeeder.php
Popula:
- Status de pedidos (tabela
order_statuses)- Rascunho
- Aguardando Aprovação
- Aprovado
- Em Licitação
- Licitação Finalizada
- Aguardando/Pagamento Confirmado
- Em Fornecimento (Parcial/Completo)
- Finalizado
- Cancelado/Rejeitado/Devolvido
Total de registros: 14
7. QuotationStatusSeeder ✅
Arquivo: /api/database/seeders/QuotationStatusSeeder.php
Popula:
- Status de cotações/licitações (tabela
quotation_statuses)- ID 1 a 16: Fluxo completo de cotação
- Desde "Enviada para Fornecedor" até "Cancelada pelo Cliente"
- Inclui status de pagamento, contrato, fornecimento, etc.
Total de registros: 16
Características:
- IDs fixos conforme constantes no Model
- Idempotente
8. SettingsSeeder ✅
Arquivo: /api/database/seeders/SettingsSeeder.php
Popula:
- Configurações do sistema (tabela
settings)
Grupos de configurações:
- Sistema: Nome, versão, contatos
- Licitação: Prazos, permissões, lances
- Financeiro: Taxas, multas, juros
- Entrega: Raio, frete
- Notificação: Preferências
- Contrato: Geração, assinatura
- Assinatura: Trial, cancelamentos
- Segurança: Sessão, login
- API: Integrações externas
- Manutenção: Modo de manutenção
Total de registros: 41
Características:
- Chaves únicas para cada configuração
- Idempotente (usa chave como identificador)
- Todas editáveis exceto versão do sistema
9. DatabaseSeeder (Atualizado) ✅
Arquivo: /api/database/seeders/DatabaseSeeder.php
Função:
- Orquestra a execução de todos os seeders na ordem correta
- Exibe mensagens informativas no console
- Sugere próximos passos após conclusão
Documentação Criada
README.md ✅
Arquivo: /api/database/seeders/README.md
Documentação completa contendo:
- Descrição detalhada de cada seeder
- Instruções de uso
- Ordem de execução
- Comandos para execução individual
- Troubleshooting
- Estatísticas totais
- Próximos passos
Estatísticas Totais
| Seeder | Tabela(s) | Registros |
|---|---|---|
| GeographySeeder | states, state_cities | 27 + ~220 |
| AccessTypeSeeder | access_types | 3 |
| ProductTypeSeeder | product_types | 21 |
| MeasurementUnitSeeder | measurement_units | 31 |
| PaymentMethodSeeder | payment_methods | 8 |
| OrderStatusSeeder | order_statuses | 14 |
| QuotationStatusSeeder | quotation_statuses | 16 |
| SettingsSeeder | settings | 41 |
| TOTAL | 8 tabelas | ~381 registros |
Como Executar
Pré-requisitos
- Configurar banco de dados:
Edite o arquivo .env:
# Para PostgreSQL (padrão atual)
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=agrsis_db
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha
# OU para MySQL
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=agrsis_db
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha
- Criar o banco de dados:
PostgreSQL:
# Entrar no PostgreSQL
psql -U postgres
# Criar usuário e banco
CREATE USER agrsis_user WITH PASSWORD 'agrsis_password';
CREATE DATABASE agrsis_db OWNER agrsis_user;
\q
MySQL:
# Entrar no MySQL
mysql -u root -p
# Criar banco e usuário
CREATE DATABASE agrsis_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'agrsis_user'@'localhost' IDENTIFIED BY 'agrsis_password';
GRANT ALL PRIVILEGES ON agrsis_db.* TO 'agrsis_user'@'localhost';
FLUSH PRIVILEGES;
exit
- Executar migrations:
cd /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api
php artisan migrate
Execução dos Seeders
Executar todos:
php artisan db:seed
Executar com reset completo do banco:
php artisan migrate:fresh --seed
⚠️ ATENÇÃO: Este comando apaga TODOS os dados!
Executar seeder específico:
php artisan db:seed --class=GeographySeeder
php artisan db:seed --class=AccessTypeSeeder
# ... etc
Ordem de Execução Recomendada
Os seeders devem ser executados nesta ordem (já configurada no DatabaseSeeder):
- GeographySeeder
- AccessTypeSeeder
- ProductTypeSeeder
- MeasurementUnitSeeder
- PaymentMethodSeeder
- OrderStatusSeeder
- QuotationStatusSeeder
- SettingsSeeder
Idempotência
Os seeders foram desenvolvidos para serem idempotentes:
- AccessTypeSeeder: Verifica existência por ID antes de inserir/atualizar
- QuotationStatusSeeder: Verifica existência por ID antes de inserir/atualizar
- SettingsSeeder: Verifica existência por chave antes de inserir/atualizar
- Demais seeders: Inserem novos registros (use
migrate:freshpara limpar antes)
Verificação
Após executar, verifique os registros:
php artisan tinker
# Verificar registros
>>> \App\Models\State::count()
=> 27
>>> \App\Models\StateCity::count()
=> ~220
>>> \App\Models\AccessType::count()
=> 3
>>> \App\Models\ProductType::count()
=> 21
>>> \App\Models\MeasurementUnit::count()
=> 31
>>> \App\Models\PaymentMethod::count()
=> 8
>>> \App\Models\OrderStatus::count()
=> 14
>>> \App\Models\QuotationStatus::count()
=> 16
>>> \App\Models\Setting::count()
=> 41
Próximos Passos
Após popular o banco com os seeders, você deve:
- Criar usuário administrador:
php artisan tinker
>>> $user = \App\Models\User::create([
'name' => 'Administrador',
'email' => 'admin@agrsis.com.br',
'password' => bcrypt('senha_segura_aqui'),
]);
>>> \App\Models\UserAccess::create([
'user_id' => $user->id,
'access_type_id' => 9, // Administrador
'status' => true,
]);
- Configurar planos de assinatura (se necessário)
- Cadastrar modelos de contrato (se necessário)
- Cadastrar culturas agrícolas (plantation_cultures)
- Personalizar configurações através da tabela
settings
Observações Importantes
- Geografia: O GeographySeeder contém apenas as principais cidades de cada estado. Para ter todas as ~5.570 cidades brasileiras, você pode:
- Usar a API do IBGE para popular dinamicamente
- Importar de um arquivo JSON completo
- Usar um package Laravel específico para geografia brasileira
- Configurações: As configurações do SettingsSeeder são valores padrão. Ajuste conforme necessário para sua operação.
- IDs Fixos: Os seeders AccessTypeSeeder e QuotationStatusSeeder usam IDs fixos que correspondem às constantes definidas nos Models. NÃO altere esses IDs.
- Performance: Para grandes volumes de dados (como todas as cidades), considere:
- Usar
DB::table()->insert()em batch - Desabilitar logs temporariamente
- Usar
DB::statement('SET FOREIGN_KEY_CHECKS=0;')se necessário
- Usar
Arquivos Criados
/api/database/seeders/
├── DatabaseSeeder.php (atualizado)
├── GeographySeeder.php
├── AccessTypeSeeder.php
├── ProductTypeSeeder.php
├── MeasurementUnitSeeder.php
├── PaymentMethodSeeder.php
├── OrderStatusSeeder.php
├── QuotationStatusSeeder.php
├── SettingsSeeder.php
└── README.md
Data de Criação: 2025-12-04 Versão: 1.0.0 Status: ✅ Todos os seeders criados e documentados