-- ============================================
-- Nginx域名转发管理平台 - 数据库初始化脚本
-- 数据库: nginxserver
-- MySQL: 10.1.1.122:3306
-- ============================================

-- 创建数据库（如果不存在）
CREATE DATABASE IF NOT EXISTS nginxserver
    DEFAULT CHARACTER SET utf8mb4
    DEFAULT COLLATE utf8mb4_unicode_ci;

USE nginxserver;

-- ============================================
-- 转发规则表
-- ============================================
CREATE TABLE IF NOT EXISTS forwarding_rules (
    id          BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
    domain      VARCHAR(255) NOT NULL COMMENT '域名',
    protocol    VARCHAR(10)  NOT NULL COMMENT '协议类型: http / https',
    target      VARCHAR(500) NOT NULL COMMENT '转发目标地址 (http://或https://开头)',
    config_file VARCHAR(500) DEFAULT NULL COMMENT 'Nginx配置文件路径',
    ssl_cert    VARCHAR(500) DEFAULT NULL COMMENT 'SSL证书文件路径',
    ssl_key     VARCHAR(500) DEFAULT NULL COMMENT 'SSL私钥文件路径',
    status      TINYINT      DEFAULT 1 COMMENT '状态: 0-已删除, 1-正常',
    created_at  DATETIME     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at  DATETIME     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    UNIQUE KEY uk_domain (domain),
    INDEX idx_status (status),
    INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Nginx转发规则表';

-- ============================================
-- SSL证书管理表
-- ============================================
CREATE TABLE IF NOT EXISTS certificates (
    id          BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
    domain      VARCHAR(255) NOT NULL COMMENT '域名',
    cert_path   VARCHAR(500) DEFAULT NULL COMMENT '证书文件路径 (.pem)',
    key_path    VARCHAR(500) DEFAULT NULL COMMENT '私钥文件路径 (.key)',
    issue_date  DATETIME     DEFAULT NULL COMMENT '证书签发日期',
    expire_date DATETIME     DEFAULT NULL COMMENT '证书过期日期',
    status      VARCHAR(20)  DEFAULT 'active' COMMENT '状态: active / expired / revoked',
    created_at  DATETIME     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at  DATETIME     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    UNIQUE KEY uk_cert_domain (domain),
    INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SSL证书管理表';
