CREATE TABLE IF NOT EXISTS companies (
 id INT AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(180) NOT NULL,
 document VARCHAR(30) NULL,
 email VARCHAR(160) NULL,
 phone VARCHAR(60) NULL,
 wallet_address VARCHAR(255) NOT NULL,
 eulen_api_url VARCHAR(255) NOT NULL DEFAULT 'https://depix.eulen.app/api',
 eulen_api_key VARCHAR(255) NULL,
 company_fixed_fee_cents INT NOT NULL DEFAULT 99,
 company_percent_fee DECIMAL(10,4) NOT NULL DEFAULT 2.0000,
 djr_commission_percent DECIMAL(10,4) NOT NULL DEFAULT 1.0000,
 djr_wallet_address VARCHAR(255) NULL,
 min_payment_cents INT NOT NULL DEFAULT 5000,
 active TINYINT(1) NOT NULL DEFAULT 1,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS users (
 id INT AUTO_INCREMENT PRIMARY KEY,
 company_id INT NOT NULL DEFAULT 1,
 name VARCHAR(160) NOT NULL,
 email VARCHAR(160) NOT NULL,
 password_hash VARCHAR(255) NOT NULL,
 role VARCHAR(40) NOT NULL DEFAULT 'company_admin',
 active TINYINT(1) NOT NULL DEFAULT 1,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS clients (
 id INT AUTO_INCREMENT PRIMARY KEY,
 company_id INT NOT NULL DEFAULT 1,
 name VARCHAR(180) NOT NULL,
 document VARCHAR(30) NULL,
 email VARCHAR(160) NULL,
 phone VARCHAR(60) NULL,
 wallet_address VARCHAR(255) NULL,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS payments (
 id INT AUTO_INCREMENT PRIMARY KEY,
 company_id INT NOT NULL DEFAULT 1,
 client_id INT NULL,
 public_token VARCHAR(80) NOT NULL,
 external_id VARCHAR(120) NULL,
 amount_cents INT NOT NULL DEFAULT 0,
 gross_amount_cents INT NOT NULL DEFAULT 0,
 company_fee_cents INT NOT NULL DEFAULT 0,
 djr_commission_cents INT NOT NULL DEFAULT 0,
 fee_cents INT NOT NULL DEFAULT 0,
 net_amount_cents INT NOT NULL DEFAULT 0,
 fee_mode VARCHAR(40) DEFAULT 'seller_pays',
 description VARCHAR(255) NULL,
 payer_name VARCHAR(180) NULL,
 payer_document VARCHAR(30) NULL,
 qr_copy_paste TEXT NULL,
 qr_image_url TEXT NULL,
 target_wallet VARCHAR(255) NOT NULL,
 status VARCHAR(40) NOT NULL DEFAULT 'pending',
 created_by INT NULL,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 paid_at DATETIME NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS djr_commission_logs (
 id INT AUTO_INCREMENT PRIMARY KEY,
 company_id INT NOT NULL,
 payment_id INT NOT NULL,
 amount_cents INT NOT NULL,
 wallet_address VARCHAR(255) NULL,
 txid VARCHAR(255) NULL,
 status VARCHAR(40) DEFAULT 'pending',
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS simulator_logs (
 id INT AUTO_INCREMENT PRIMARY KEY,
 company_id INT NOT NULL,
 desired_net_cents INT NOT NULL,
 gross_buyer_pays_cents INT NOT NULL,
 net_seller_pays_cents INT NOT NULL,
 company_fee_cents INT NOT NULL,
 djr_commission_cents INT NOT NULL,
 recommended_mode VARCHAR(40) NOT NULL,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
