Files

52 lines
2.0 KiB
SQL

-- financeiro plugin: subscription plans, invoices, commissions
CREATE TABLE IF NOT EXISTS subscription_plans (
id VARCHAR(50) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
monthly_price DECIMAL(10,2) NOT NULL,
min_employees INT DEFAULT 1,
max_employees INT NULL,
custom_branding BOOLEAN DEFAULT FALSE,
priority_support BOOLEAN DEFAULT FALSE,
analytics_level VARCHAR(20) DEFAULT 'basic',
custom_benefits BOOLEAN DEFAULT FALSE,
api_access BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Seed default plans (idempotent via INSERT IGNORE)
INSERT IGNORE INTO subscription_plans (id, name, monthly_price, min_employees, max_employees, custom_branding, priority_support, analytics_level, custom_benefits, api_access) VALUES
('basic', 'Básico', 299.00, 1, 50, FALSE, FALSE, 'basic', FALSE, FALSE),
('pro', 'Profissional', 799.00, 51, 250, TRUE, TRUE, 'advanced', TRUE, FALSE),
('enterprise', 'Enterprise', 1999.00, 251, NULL, TRUE, TRUE, 'advanced', TRUE, TRUE);
CREATE TABLE IF NOT EXISTS invoices (
id INT AUTO_INCREMENT PRIMARY KEY,
partner_id VARCHAR(255) NOT NULL,
plan_id VARCHAR(50) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
issue_date DATE NOT NULL,
due_date DATE NOT NULL,
status ENUM('Paga', 'Pendente', 'Atrasada') NOT NULL DEFAULT 'Pendente',
paid_at TIMESTAMP NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_invoice_partner (partner_id),
INDEX idx_invoice_status (status),
INDEX idx_invoice_due (due_date)
);
CREATE TABLE IF NOT EXISTS commissions (
id INT AUTO_INCREMENT PRIMARY KEY,
benefit_id VARCHAR(255) NOT NULL,
benefit_title VARCHAR(255),
partner_id VARCHAR(255) NOT NULL,
user_id INT NOT NULL,
user_name VARCHAR(255),
transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
transaction_value DECIMAL(10,2) NOT NULL,
commission_rate DECIMAL(5,2) NOT NULL,
commission_value DECIMAL(10,2) NOT NULL,
INDEX idx_commission_partner (partner_id),
INDEX idx_commission_date (transaction_date)
)