CREATE DATABASE IF NOT EXISTS license_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE license_manager;

CREATE TABLE licenses (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    license_key VARCHAR(64) NOT NULL UNIQUE,
    product_slug VARCHAR(100) NOT NULL DEFAULT 'wp-businessos',
    customer_name VARCHAR(190) NOT NULL,
    customer_email VARCHAR(190) NOT NULL,
    order_id VARCHAR(100) NULL,
    status ENUM('active','revoked') NOT NULL DEFAULT 'active',
    activation_limit INT UNSIGNED NOT NULL DEFAULT 1,
    activated_domain VARCHAR(255) NULL,
    activated_url VARCHAR(500) NULL,
    activated_at DATETIME NULL,
    last_checked_at DATETIME NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_customer_email (customer_email),
    INDEX idx_product_status (product_slug, status)
) ENGINE=InnoDB;

CREATE TABLE api_logs (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    action VARCHAR(50) NOT NULL,
    license_key VARCHAR(64) NULL,
    domain VARCHAR(255) NULL,
    ip_address VARCHAR(45) NULL,
    request_data LONGTEXT NULL,
    response_status VARCHAR(30) NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_license_key (license_key),
    INDEX idx_created_at (created_at)
) ENGINE=InnoDB;
