-- ----------------------------
-- 开发者资源管理表
-- 统一存放服务器/数据库/云存储/域名/SSL证书等开发基础设施资源
-- ----------------------------
CREATE TABLE IF NOT EXISTS `app_resource` (
  `resource_id`   BIGINT        NOT NULL AUTO_INCREMENT     COMMENT '资源ID',
  `resource_type` VARCHAR(20)   NOT NULL                    COMMENT '资源类型: server/database/storage/domain/ssl',
  `name`          VARCHAR(100)  NOT NULL                    COMMENT '资源名称',
  `provider`      VARCHAR(30)   DEFAULT NULL                COMMENT '服务商: tencent/aliyun/huawei/other',

  -- 服务器字段
  `ip`            VARCHAR(50)   DEFAULT NULL                COMMENT 'IP地址（服务器用）',

  -- 数据库字段
  `db_type`       VARCHAR(30)   DEFAULT NULL                COMMENT '数据库类型: MySQL/PostgreSQL/Redis/MongoDB',
  `host`          VARCHAR(200)  DEFAULT NULL                COMMENT '连接主机地址（数据库用）',
  `port`          INT           DEFAULT NULL                COMMENT '连接端口（数据库用）',

  -- 云存储字段
  `region`        VARCHAR(50)   DEFAULT NULL                COMMENT '地区/Region（云存储用）',
  `acl`           VARCHAR(30)   DEFAULT 'private'           COMMENT '访问权限: public-read/private（云存储用）',
  `used_bytes`    BIGINT        DEFAULT 0                   COMMENT '已用空间（字节，云存储用）',

  -- 域名字段
  `domain`        VARCHAR(200)  DEFAULT NULL                COMMENT '域名（域名/SSL用）',
  `registrar`     VARCHAR(100)  DEFAULT NULL                COMMENT '注册商（域名用）',
  `icp`           TINYINT(1)    DEFAULT 0                   COMMENT '是否已备案: 0否 1是（域名用）',
  `icp_no`        VARCHAR(100)  DEFAULT NULL                COMMENT 'ICP备案号（域名用）',
  `ssl_bound`     TINYINT(1)    DEFAULT 0                   COMMENT '是否已绑定SSL（域名冗余标记）',

  -- SSL证书字段
  `cert_type`     VARCHAR(10)   DEFAULT NULL                COMMENT '证书类型: DV/OV/EV（SSL用）',
  `issuer`        VARCHAR(100)  DEFAULT NULL                COMMENT '颁发机构（SSL用）',

  -- 通用字段
  `status`        VARCHAR(20)   NOT NULL DEFAULT 'running'  COMMENT '状态: running/stopped/expired/pending',
  `website_id`    BIGINT        DEFAULT NULL                COMMENT '关联应用ID（可选）',
  `expire_at`     DATE          DEFAULT NULL                COMMENT '到期时间',
  `remark`        VARCHAR(500)  DEFAULT NULL                COMMENT '备注',
  `user_id`       INT           NOT NULL                    COMMENT '所属用户ID',
  `tenant_id`     INT           DEFAULT NULL                COMMENT '租户ID',
  `deleted`       TINYINT       NOT NULL DEFAULT 0          COMMENT '是否删除: 0否 1是',
  `create_time`   DATETIME      DEFAULT CURRENT_TIMESTAMP   COMMENT '创建时间',
  `update_time`   DATETIME      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

  PRIMARY KEY (`resource_id`),
  KEY `idx_resource_type` (`resource_type`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_website_id` (`website_id`),
  KEY `idx_status` (`status`),
  KEY `idx_expire_at` (`expire_at`),
  KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开发者资源管理（服务器/数据库/云存储/域名/SSL）';
