-- ========================================
-- 会员权益 — oemsaasapp 应用库表结构
-- 执行范围：oemsaasapp 独立业务库（非商城 cn01_db）
-- 说明：折扣/积分/会员日/运费配置存商城库，见 membership_tables.sql
-- ========================================

-- 1. 自动升级（店铺设置 + 各级别门槛，合并单表）
-- level_id = 0：店铺级行（开关、条件类型）；level_id > 0：各级别门槛（对应商城 o_customer_level.id）
CREATE TABLE IF NOT EXISTS `o_membership_upgrade_rule` (
  `id`                      int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `store_id`                int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商城店铺ID',
  `level_id`                int(11) unsigned NOT NULL DEFAULT '0' COMMENT '0=店铺设置行；>0=顾客级别ID',
  `auto_upgrade_enabled`    tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '是否自动升级；仅 level_id=0 行有效',
  `upgrade_condition_type`  enum('amount','order_count') NOT NULL DEFAULT 'amount' COMMENT '升级条件；仅 level_id=0 行有效',
  `amount_threshold`        decimal(12,2)             DEFAULT NULL COMMENT '累计消费金额门槛；level_id>0 且 condition=amount 时使用',
  `order_count_threshold`   int(11) unsigned          DEFAULT NULL COMMENT '累计订单笔数门槛；level_id>0 且 condition=order_count 时使用',
  `created_at`              int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `updated_at`              int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_store_level` (`store_id`, `level_id`),
  KEY `idx_store_id` (`store_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员自动升级-店铺设置与级别门槛';


-- 2. 升级流水（审计 / 排障；不做自动降级，仅记录升级）
CREATE TABLE IF NOT EXISTS `o_membership_upgrade_log` (
  `id`                      bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `store_id`                int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商城店铺ID',
  `customer_id`             int(11) unsigned NOT NULL DEFAULT '0' COMMENT '顾客ID',
  `order_id`                int(11) unsigned NOT NULL DEFAULT '0' COMMENT '触发订单ID',
  `order_number`            varchar(64)      NOT NULL DEFAULT '' COMMENT '订单号',
  `from_level_id`           int(11) unsigned NOT NULL DEFAULT '0' COMMENT '升级前 level_id',
  `to_level_id`             int(11) unsigned NOT NULL DEFAULT '0' COMMENT '升级后 level_id',
  `upgrade_condition_type`  enum('amount','order_count') NOT NULL DEFAULT 'amount' COMMENT '判定使用的条件类型',
  `metric_value`            decimal(12,2)     NOT NULL DEFAULT '0.00' COMMENT '判定时顾客指标值（金额或笔数）',
  `trigger_source`          varchar(32)      NOT NULL DEFAULT 'order_paid' COMMENT '触发来源：order_paid 等',
  `webhook_trace_id`        varchar(64)      NOT NULL DEFAULT '' COMMENT '商城 Webhook trace_id',
  `created_at`              int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_store_customer` (`store_id`, `customer_id`),
  KEY `idx_store_order` (`store_id`, `order_id`),
  KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员自动升级-流水';


-- 3. 安装 / Webhook（非应用库 DDL）
-- 安装状态、Webhook 注册信息存商城：o_my_app、o_webhook
-- orders/paid，delay_time = 300
