-- ============================================================================
-- LASER CUT SAAS - SEED DATA
-- Demo data for testing and initial setup
-- ============================================================================

SET FOREIGN_KEY_CHECKS = 0;

-- ============================================================================
-- PERMISSIONS (System-wide, no tenant_id)
-- ============================================================================

INSERT INTO `permissions` (`name`, `slug`, `module`, `description`, `created_at`) VALUES
('Ver Produtos', 'products.view', 'products', 'Visualizar produtos', NOW()),
('Criar Produtos', 'products.create', 'products', 'Criar novos produtos', NOW()),
('Editar Produtos', 'products.edit', 'products', 'Editar produtos existentes', NOW()),
('Deletar Produtos', 'products.delete', 'products', 'Deletar produtos', NOW()),
('Ver Pedidos', 'orders.view', 'orders', 'Visualizar pedidos', NOW()),
('Gerenciar Pedidos', 'orders.manage', 'orders', 'Gerenciar status de pedidos', NOW()),
('Ver Clientes', 'customers.view', 'customers', 'Visualizar clientes', NOW()),
('Gerenciar Clientes', 'customers.manage', 'customers', 'Criar e editar clientes', NOW()),
('Ver Produção', 'production.view', 'production', 'Visualizar produção', NOW()),
('Gerenciar Produção', 'production.manage', 'production', 'Gerenciar produção', NOW()),
('Ver Relatórios', 'reports.view', 'reports', 'Visualizar relatórios', NOW()),
('Configurações', 'settings.manage', 'settings', 'Gerenciar configurações', NOW());

-- ============================================================================
-- DEMO TENANT
-- ============================================================================

INSERT INTO `tenants` (`id`, `name`, `slug`, `subdomain`, `email`, `phone`, `contact_name`, `active`, `subscription_status`, `created_at`, `updated_at`) VALUES
(1, 'Laser Cut Demo', 'demo', 'demo', 'contato@demolasercut.com', '(11) 99999-9999', 'João Silva', 1, 'active', NOW(), NOW());

-- ============================================================================
-- TENANT SETTINGS
-- ============================================================================

INSERT INTO `tenant_settings` (`tenant_id`, `setting_key`, `setting_value`, `setting_type`, `created_at`) VALUES
(1, 'company_name', 'Laser Cut Demo Ltda', 'string', NOW()),
(1, 'primary_color', '#3B82F6', 'string', NOW()),
(1, 'currency', 'BRL', 'string', NOW()),
(1, 'timezone', 'America/Sao_Paulo', 'string', NOW()),
(1, 'language', 'pt_BR', 'string', NOW()),
(1, 'email_notifications', '1', 'boolean', NOW()),
(1, 'orders_require_approval', '1', 'boolean', NOW()),
(1, 'min_order_value', '50.00', 'number', NOW());

-- ============================================================================
-- ROLES
-- ============================================================================

INSERT INTO `roles` (`tenant_id`, `name`, `slug`, `description`, `is_system_role`, `created_at`, `updated_at`) VALUES
(1, 'Administrador', 'admin', 'Acesso total ao sistema', 1, NOW(), NOW()),
(1, 'Gerente', 'manager', 'Gerenciar pedidos e produção', 1, NOW(), NOW()),
(1, 'Operador', 'operator', 'Acesso à produção', 1, NOW(), NOW());

-- ============================================================================
-- DEMO ADMIN USER (password: admin123)
-- ============================================================================

INSERT INTO `users` (`tenant_id`, `role_id`, `name`, `email`, `password`, `active`, `created_at`, `updated_at`) VALUES
(1, 1, 'Administrador', 'admin@demolasercut.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 1, NOW(), NOW());

-- ============================================================================
-- PRODUCT CATEGORIES
-- ============================================================================

INSERT INTO `categories` (`tenant_id`, `name`, `slug`, `description`, `display_order`, `active`, `created_at`, `updated_at`) VALUES
(1, 'Topos de Bolo', 'topos-de-bolo', 'Cakeboards personalizados', 1, 1, NOW(), NOW()),
(1, 'Caixas MDF', 'caixas-mdf', 'Caixas em MDF', 2, 1, NOW(), NOW()),
(1, 'Placas Decorativas', 'placas-decorativas', 'Placas personalizadas', 3, 1, NOW(), NOW()),
(1, 'Lembrancinhas', 'lembrancinhas', 'Lembrancinhas para eventos', 4, 1, NOW(), NOW()),
(1, 'Peças em Acrílico', 'pecas-acrilico', 'Peças em acrílico', 5, 1, NOW(), NOW());

-- ============================================================================
-- MATERIALS
-- ============================================================================

INSERT INTO `materials` (`tenant_id`, `name`, `code`, `type`, `thickness_mm`, `cost_per_unit`, `unit`, `stock_quantity`, `active`, `created_at`, `updated_at`) VALUES
(1, 'MDF 3mm', 'MDF3', 'MDF', 3.00, 0.50, 'cm²', 10000, 1, NOW(), NOW()),
(1, 'MDF 6mm', 'MDF6', 'MDF', 6.00, 0.80, 'cm²', 8000, 1, NOW(), NOW()),
(1, 'Acrílico Cristal 3mm', 'ACR3C', 'Acrílico', 3.00, 2.00, 'cm²', 5000, 1, NOW(), NOW()),
(1, 'Acrílico Colorido 5mm', 'ACR5', 'Acrílico', 5.00, 3.50, 'cm²', 3000, 1, NOW(), NOW());

-- ============================================================================
-- DEMO PRODUCTS
-- ============================================================================

INSERT INTO `products` (`tenant_id`, `category_id`, `material_id`, `name`, `slug`, `description`, `short_description`, `sku`, `price`, `cost`, `min_order_quantity`, `allow_customization`, `customization_required`, `requires_artwork`, `artwork_required`, `production_time_days`, `featured`, `active`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 'Topo de Bolo Personalizado', 'topo-bolo-personalizado', 'Topo de bolo em MDF 3mm, cortado a laser. Totalmente personalizável com nome, idade e tema.', 'Topo de bolo MDF 3mm personalizado', 'TB-001', 25.00, 8.00, 1, 1, 1, 1, 1, 3, 1, 1, NOW(), NOW()),
(1, 2, 1, 'Caixa MDF Quadrada 10x10cm', 'caixa-mdf-10x10', 'Caixa em MDF cru, ideal para lembrancinhas. Pode ser pintada e decorada.', 'Caixa MDF 10x10cm', 'CX-001', 8.50, 3.00, 1, 0, 0, 0, 0, 2, 0, 1, NOW(), NOW()),
(1, 3, 2, 'Placa Decorativa "Bem-vindo"', 'placa-bemvindo', 'Placa decorativa em MDF 6mm. Personalizável com cores e acabamento.', 'Placa decorativa MDF 6mm', 'PL-001', 35.00, 12.00, 1, 1, 0, 0, 0, 4, 1, 1, NOW(), NOW()),
(1, 5, 3, 'Chaveiro Acrílico Personalizado', 'chaveiro-acrilico', 'Chaveiro em acrílico cristal 3mm, gravado a laser. Personalizável com nome ou logo.', 'Chaveiro acrílico gravado', 'CH-001', 12.00, 4.00, 1, 1, 0, 1, 0, 2, 0, 1, NOW(), NOW());

-- ============================================================================
-- DEMO CUSTOMER
-- ============================================================================

INSERT INTO `customers` (`tenant_id`, `name`, `email`, `phone`, `cpf_cnpj`, `customer_type`, `active`, `created_at`, `updated_at`) VALUES
(1, 'Maria Santos', 'maria.santos@email.com', '(11) 98888-7777', '123.456.789-00', 'individual', 1, NOW(), NOW());

-- ============================================================================
-- DEMO CUSTOMER ADDRESS
-- ============================================================================

INSERT INTO `customer_addresses` (`tenant_id`, `customer_id`, `address_type`, `label`, `street`, `number`, `neighborhood`, `city`, `state`, `zipcode`, `is_default`, `created_at`, `updated_at`) VALUES
(1, 1, 'both', 'Casa', 'Rua das Flores', '123', 'Centro', 'São Paulo', 'SP', '01234-567', 1, NOW(), NOW());

-- ============================================================================
-- DEMO ORDER
-- ============================================================================

INSERT INTO `orders` (`tenant_id`, `customer_id`, `order_number`, `status`, `payment_status`, `subtotal`, `tax`, `shipping`, `total`, `payment_method`, `customer_name`, `customer_email`, `customer_phone`, `created_at`, `updated_at`) VALUES
(1, 1, 'PED-2024-0001', 'processing', 'paid', 70.00, 0.00, 15.00, 85.00, 'pix', 'Maria Santos', 'maria.santos@email.com', '(11) 98888-7777', NOW(), NOW());

-- ============================================================================
-- DEMO ORDER ITEMS
-- ============================================================================

INSERT INTO `order_items` (`tenant_id`, `order_id`, `product_id`, `product_name`, `product_sku`, `quantity`, `unit_price`, `subtotal`, `total`, `production_status`, `created_at`) VALUES
(1, 1, 1, 'Topo de Bolo Personalizado', 'TB-001', 2, 25.00, 50.00, 50.00, 'in_queue', NOW()),
(1, 1, 2, 'Caixa MDF Quadrada 10x10cm', 'CX-001', 2, 8.50, 17.00, 17.00, 'pending', NOW());

-- ============================================================================
-- ORDER STATUS HISTORY
-- ============================================================================

INSERT INTO `order_status_history` (`tenant_id`, `order_id`, `status`, `notes`, `notified_customer`, `created_at`) VALUES
(1, 1, 'pending', 'Pedido criado', 1, NOW()),
(1, 1, 'confirmed', 'Pagamento confirmado', 1, DATE_ADD(NOW(), INTERVAL 1 HOUR)),
(1, 1, 'processing', 'Pedido em processamento', 1, DATE_ADD(NOW(), INTERVAL 2 HOUR));

-- ============================================================================
-- DEMO OPERATOR
-- ============================================================================

INSERT INTO `operators` (`tenant_id`, `name`, `code`, `specialty`, `active`, `created_at`, `updated_at`) VALUES
(1, 'Carlos Ferreira', 'OP001', 'Corte a laser', 1, NOW(), NOW());

-- ============================================================================
-- DEMO COUPON
-- ============================================================================

INSERT INTO `coupons` (`tenant_id`, `code`, `description`, `discount_type`, `discount_value`, `min_order_amount`, `usage_limit`, `valid_from`, `valid_until`, `active`, `created_at`, `updated_at`) VALUES
(1, 'BEMVINDO10', 'Desconto de 10% para novos clientes', 'percentage', 10.00, 50.00, 100, NOW(), DATE_ADD(NOW(), INTERVAL 30 DAY), 1, NOW(), NOW());

SET FOREIGN_KEY_CHECKS = 1;

-- ============================================================================
-- END OF SEED DATA
-- ============================================================================
