CREATE TABLE users (
                       id INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
                       username VARCHAR(100) NOT NULL UNIQUE COMMENT '用户名',
                       password VARCHAR(100) NOT NULL COMMENT '用户密码',
                       phone VARCHAR(15) NOT NULL UNIQUE COMMENT '用户手机号',
                       auth_status ENUM('unverified','pending', 'approved', 'rejected') DEFAULT 'unverified' COMMENT '认证状态：unverified=未提交，pending=待审核，approved=审核通过，rejected=审核拒绝',
                       disable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用，0=未禁用，1=禁用',
                       internal TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否内部人员，0=否，1=是',
                       quota_exceeded TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否额度用完，0=否，1=是',
                       created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '用户创建时间',
                       updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '用户更新时间',
                       PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表，存储用户的基本信息';

CREATE TABLE enterprise_info (
                                 id INT(11) NOT NULL AUTO_INCREMENT COMMENT '企业信息ID',
                                 user_id BIGINT NOT NULL UNIQUE COMMENT '关联的用户ID',
                                 enterprise_name VARCHAR(150) NOT NULL UNIQUE COMMENT '企业名称',
                                 credit_code VARCHAR(150) NOT NULL UNIQUE COMMENT '企业统一信用代码',
                                 legal_person VARCHAR(150) NOT NULL COMMENT '法人代表',
                                 business_license VARCHAR(1024) NOT NULL COMMENT '营业执照存储路径',
                                 enterprise_contact VARCHAR(100) NOT NULL COMMENT '企业联系方式',
                                 created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '企业信息创建时间',
                                 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '企业信息更新时间',
                                 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业信息表，存储认证通过的企业详细信息';

CREATE TABLE enterprise_auth (
                                 id INT(11) NOT NULL AUTO_INCREMENT COMMENT '认证ID',
                                 user_id INT(11) NOT NULL COMMENT '关联的用户ID',
                                 enterprise_name VARCHAR(150) NOT NULL COMMENT '企业名称',
                                 credit_code VARCHAR(150) NOT NULL COMMENT '企业统一信用代码',
                                 legal_person VARCHAR(150) NOT NULL COMMENT '法人代表',
                                 business_license VARCHAR(1000) NOT NULL COMMENT '营业执照存储路径',
                                 enterprise_contact VARCHAR(100) NOT NULL COMMENT '企业联系方式',
                                 auth_status ENUM('unverified','pending', 'approved', 'rejected') DEFAULT 'unverified' COMMENT '认证状态：unverified=未提交，pending=待审核，approved=审核通过，rejected=审核拒绝',
                                 created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '认证创建时间',
                                 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '认证更新时间',
                                 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业认证表，存储企业认证的相关信息';


CREATE TABLE wallets (
                         id INT(11) NOT NULL AUTO_INCREMENT COMMENT '钱包ID',
                         user_id INT(11) NOT NULL UNIQUE COMMENT '用户ID',
                         balance DECIMAL(10, 2) DEFAULT 0.00 COMMENT '钱包余额',
                         version INT(11) DEFAULT 0 COMMENT '乐观锁版本号',
                         created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                         updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                         PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='钱包表，存储用户的余额信息';

CREATE TABLE deductions (
                            id INT(11) NOT NULL AUTO_INCREMENT COMMENT '扣款记录ID',
                            user_id INT(11) NOT NULL COMMENT '用户ID',
                            amount DECIMAL(10, 2) NOT NULL COMMENT '扣款金额',
                            transaction_id VARCHAR(50) NOT NULL UNIQUE COMMENT '交易流水号',
                            created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '扣款时间',
                            PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='扣款记录表，存储用户的扣款历史记录';

CREATE TABLE api_requests (
                              id INT(11) NOT NULL AUTO_INCREMENT COMMENT '请求记录ID',
                              transaction_id VARCHAR(50) NOT NULL UNIQUE COMMENT '交易ID',
                              user_id INT(11) NOT NULL COMMENT '用户ID',
                              product_code VARCHAR(100) NOT NULL COMMENT '产品编码',
                              status ENUM('success', 'failed') DEFAULT 'success' COMMENT '请求状态：success=成功，failed=失败',
                              charges TINYINT(1) NOT NULL COMMENT '是否需要付费',
                              remark VARCHAR(255) COMMENT '备注',
                              timestamp DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '请求时间',
                              PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='API请求记录表，存储API请求的相关信息';

CREATE TABLE `recharge` (
                            id INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
                            user_id INT(11) NOT NULL COMMENT '用户ID',
                            transaction_id VARCHAR(64) NOT NULL UNIQUE COMMENT '交易ID，唯一',
                            out_trade_no VARCHAR(64) NOT NULL UNIQUE COMMENT '外部订单号，唯一',
                            amount DECIMAL(10, 2) NOT NULL COMMENT '充值金额',
                            payment_method TINYINT NOT NULL COMMENT '充值方式 1-支付宝在线支付, 2-对公转账',
                            remark VARCHAR(255) COMMENT '备注',
                            created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                            updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                            PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充值记录表';
CREATE TABLE `user_config` (
                               id INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
                               `gift_amount` DECIMAL(10, 2) DEFAULT 0.00 COMMENT '赠送额度',
                               `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                               `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                               PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户配置表';