-- =============================================================
-- 会员商城 建表脚本（MySQL）
-- 库：lqerp_dev（或对应租户库）
-- 说明：与 NCC.Extend.Entitys 中 6 张 lq_mall_* 实体一一对应
-- 主键均为 varchar(50)（YitId 雪花号字符串）；DeleteMark 为 NULL 表示未删除
-- ⚠️ 每张表建表前先 DROP TABLE IF EXISTS（存在即删除后重建），会清空原有数据，请谨慎在生产库执行
-- =============================================================

SET NAMES utf8mb4;

-- 1. 微信会员 -------------------------------------------------
DROP TABLE IF EXISTS `lq_mall_member`;
CREATE TABLE `lq_mall_member` (
  `F_Id`            varchar(50)  NOT NULL COMMENT '主键',
  `F_OpenId`        varchar(100) DEFAULT NULL COMMENT '微信OpenId',
  `F_UnionId`       varchar(100) DEFAULT NULL COMMENT '微信UnionId',
  `F_NickName`      varchar(100) DEFAULT NULL COMMENT '昵称',
  `F_Avatar`        varchar(500) DEFAULT NULL COMMENT '头像',
  `F_Phone`         varchar(20)  DEFAULT NULL COMMENT '手机号',
  `F_Gender`        int          DEFAULT NULL COMMENT '性别 0未知1男2女',
  `F_LinkedKhId`    varchar(50)  DEFAULT NULL COMMENT '关联客户档案Id',
  `F_CreateTime`    datetime     DEFAULT NULL COMMENT '创建时间',
  `F_LastLoginTime` datetime     DEFAULT NULL COMMENT '最近登录时间',
  `F_DeleteMark`    int          DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_member_openid` (`F_OpenId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-微信会员';

-- 1.1 商品分类 ----------------------------------------------
DROP TABLE IF EXISTS `lq_mall_category`;
CREATE TABLE `lq_mall_category` (
  `F_Id`         varchar(50)  NOT NULL COMMENT '主键',
  `F_Name`       varchar(100) DEFAULT NULL COMMENT '分类名称',
  `F_Icon`       varchar(500) DEFAULT NULL COMMENT '图标(图片地址或图标类名)',
  `F_SortNo`     int          NOT NULL DEFAULT 0 COMMENT '排序号(倒序,越大越靠前)',
  `F_Enabled`    int          NOT NULL DEFAULT 1 COMMENT '是否启用 0停用1启用',
  `F_CreateUser` varchar(50)  DEFAULT NULL COMMENT '创建人',
  `F_CreateTime` datetime     DEFAULT NULL COMMENT '创建时间',
  `F_UpdateUser` varchar(50)  DEFAULT NULL COMMENT '更新人',
  `F_UpdateTime` datetime     DEFAULT NULL COMMENT '更新时间',
  `F_DeleteMark` int          DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_category_enabled` (`F_Enabled`,`F_DeleteMark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品分类';

-- 2. 商品 -----------------------------------------------------
DROP TABLE IF EXISTS `lq_mall_product`;
CREATE TABLE `lq_mall_product` (
  `F_Id`            varchar(50)    NOT NULL COMMENT '主键',
  `F_ProductName`   varchar(200)   DEFAULT NULL COMMENT '商品名称',
  `F_CoverImg`      varchar(500)   DEFAULT NULL COMMENT '封面图',
  `F_Images`        text           DEFAULT NULL COMMENT '轮播图JSON数组',
  `F_CategoryId`    varchar(50)    DEFAULT NULL COMMENT '分类Id(关联lq_mall_category)',
  `F_CategoryName`  varchar(100)   DEFAULT NULL COMMENT '分类名称(冗余)',
  `F_Description`   text           DEFAULT NULL COMMENT '简介',
  `F_Price`         decimal(18,2)  NOT NULL DEFAULT 0 COMMENT '现价',
  `F_OriginalPrice` decimal(18,2)  DEFAULT NULL COMMENT '原价',
  `F_Stock`         int            NOT NULL DEFAULT 0 COMMENT '库存',
  `F_Sales`         int            NOT NULL DEFAULT 0 COMMENT '销量',
  `F_OnShelf`       int            NOT NULL DEFAULT 1 COMMENT '上下架 0下架1上架',
  `F_SortNo`        int            NOT NULL DEFAULT 0 COMMENT '排序号',
  `F_Detail`        longtext       DEFAULT NULL COMMENT '图文详情',
  `F_CreateUser`    varchar(50)    DEFAULT NULL COMMENT '创建人',
  `F_CreateTime`    datetime       DEFAULT NULL COMMENT '创建时间',
  `F_UpdateUser`    varchar(50)    DEFAULT NULL COMMENT '更新人',
  `F_UpdateTime`    datetime       DEFAULT NULL COMMENT '更新时间',
  `F_DeleteMark`    int            DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_product_shelf` (`F_OnShelf`,`F_DeleteMark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品';

-- 3. 商品规格 SKU --------------------------------------------
DROP TABLE IF EXISTS `lq_mall_sku`;
CREATE TABLE `lq_mall_sku` (
  `F_Id`            varchar(50)    NOT NULL COMMENT '主键',
  `F_ProductId`     varchar(50)    DEFAULT NULL COMMENT '商品Id',
  `F_SkuName`       varchar(200)   DEFAULT NULL COMMENT '规格名称',
  `F_Price`         decimal(18,2)  NOT NULL DEFAULT 0 COMMENT '现价',
  `F_OriginalPrice` decimal(18,2)  DEFAULT NULL COMMENT '原价',
  `F_Stock`         int            NOT NULL DEFAULT 0 COMMENT '库存',
  `F_Sales`         int            NOT NULL DEFAULT 0 COMMENT '销量',
  `F_SkuImg`        varchar(500)   DEFAULT NULL COMMENT '规格图片',
  `F_OnShelf`       int            NOT NULL DEFAULT 1 COMMENT '上下架 0下架1上架',
  `F_SortNo`        int            NOT NULL DEFAULT 0 COMMENT '排序号',
  `F_DeleteMark`    int            DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_sku_product` (`F_ProductId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品规格';

-- 4. 订单 -----------------------------------------------------
DROP TABLE IF EXISTS `lq_mall_order`;
CREATE TABLE `lq_mall_order` (
  `F_Id`             varchar(50)   NOT NULL COMMENT '主键',
  `F_OrderNo`        varchar(50)   DEFAULT NULL COMMENT '订单号',
  `F_MemberId`       varchar(50)   DEFAULT NULL COMMENT '会员Id',
  `F_MemberName`     varchar(100)  DEFAULT NULL COMMENT '会员昵称',
  `F_MemberPhone`    varchar(20)   DEFAULT NULL COMMENT '会员手机号',
  `F_StoreId`        varchar(50)   DEFAULT NULL COMMENT '自提门店Id',
  `F_StoreName`      varchar(200)  DEFAULT NULL COMMENT '自提门店名称',
  `F_TotalAmount`    decimal(18,2) NOT NULL DEFAULT 0 COMMENT '商品原总额',
  `F_PayAmount`      decimal(18,2) NOT NULL DEFAULT 0 COMMENT '实付金额',
  `F_PayType`        int           NOT NULL DEFAULT 1 COMMENT '支付方式 1微信99其他',
  `F_PayStatus`      int           NOT NULL DEFAULT 0 COMMENT '支付状态 0未支付1已支付2已退款',
  `F_OrderStatus`    int           NOT NULL DEFAULT 1 COMMENT '订单状态 1待付款2待自提3已完成4已取消',
  `F_PickupCode`     varchar(20)   DEFAULT NULL COMMENT '取件核销码',
  `F_PickupTime`     datetime      DEFAULT NULL COMMENT '自提核销时间',
  `F_VerifyUser`     varchar(50)   DEFAULT NULL COMMENT '核销操作人Id',
  `F_VerifyUserName` varchar(100)  DEFAULT NULL COMMENT '核销操作人姓名',
  `F_VerifyStoreId`  varchar(50)   DEFAULT NULL COMMENT '核销门店Id',
  `F_Remark`         varchar(500)  DEFAULT NULL COMMENT '备注',
  `F_WxPrepayId`     varchar(100)  DEFAULT NULL COMMENT '微信预支付会话标识',
  `F_WxTransactionId` varchar(100) DEFAULT NULL COMMENT '微信支付交易单号',
  `F_PayTime`        datetime      DEFAULT NULL COMMENT '支付时间',
  `F_CancelReason`   varchar(500)  DEFAULT NULL COMMENT '取消原因',
  `F_CreateTime`     datetime      DEFAULT NULL COMMENT '创建时间',
  `F_UpdateTime`     datetime      DEFAULT NULL COMMENT '更新时间',
  `F_DeleteMark`     int           DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  UNIQUE KEY `uk_mall_order_no` (`F_OrderNo`),
  KEY `idx_mall_order_member` (`F_MemberId`),
  KEY `idx_mall_order_store` (`F_StoreId`),
  KEY `idx_mall_order_pickup` (`F_PickupCode`),
  KEY `idx_mall_order_status` (`F_OrderStatus`,`F_PayStatus`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-订单';

-- 5. 订单明细 -------------------------------------------------
DROP TABLE IF EXISTS `lq_mall_order_item`;
CREATE TABLE `lq_mall_order_item` (
  `F_Id`          varchar(50)   NOT NULL COMMENT '主键',
  `F_OrderId`     varchar(50)   DEFAULT NULL COMMENT '订单Id',
  `F_OrderNo`     varchar(50)   DEFAULT NULL COMMENT '订单号',
  `F_ProductId`   varchar(50)   DEFAULT NULL COMMENT '商品Id',
  `F_ProductName` varchar(200)  DEFAULT NULL COMMENT '商品名称',
  `F_SkuId`       varchar(50)   DEFAULT NULL COMMENT '规格Id',
  `F_SkuName`     varchar(200)  DEFAULT NULL COMMENT '规格名称',
  `F_ProductImg`  varchar(500)  DEFAULT NULL COMMENT '商品图片',
  `F_Price`       decimal(18,2) NOT NULL DEFAULT 0 COMMENT '单价',
  `F_Quantity`    int           NOT NULL DEFAULT 0 COMMENT '数量',
  `F_Amount`      decimal(18,2) NOT NULL DEFAULT 0 COMMENT '小计金额',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_order_item_order` (`F_OrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-订单明细';

-- 6. 收货/联系地址 -------------------------------------------
DROP TABLE IF EXISTS `lq_mall_address`;
CREATE TABLE `lq_mall_address` (
  `F_Id`            varchar(50)  NOT NULL COMMENT '主键',
  `F_MemberId`      varchar(50)  DEFAULT NULL COMMENT '会员Id',
  `F_ReceiverName`  varchar(100) DEFAULT NULL COMMENT '收货人姓名',
  `F_ReceiverPhone` varchar(20)  DEFAULT NULL COMMENT '收货人电话',
  `F_Province`      varchar(50)  DEFAULT NULL COMMENT '省',
  `F_City`          varchar(50)  DEFAULT NULL COMMENT '市',
  `F_District`      varchar(50)  DEFAULT NULL COMMENT '区/县',
  `F_DetailAddress` varchar(300) DEFAULT NULL COMMENT '详细地址',
  `F_IsDefault`     int          NOT NULL DEFAULT 0 COMMENT '是否默认 0否1是',
  `F_CreateTime`    datetime     DEFAULT NULL COMMENT '创建时间',
  `F_UpdateTime`    datetime     DEFAULT NULL COMMENT '更新时间',
  `F_DeleteMark`    int          DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_address_member` (`F_MemberId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-收货/联系地址';

-- 8. 预约意向（会员商城端提交，不关联现有业务）--------------
DROP TABLE IF EXISTS `lq_mall_appointment`;
CREATE TABLE `lq_mall_appointment` (
  `F_Id`              varchar(50)  NOT NULL COMMENT '主键',
  `F_AppointmentNo`   varchar(50)  DEFAULT NULL COMMENT '预约单号',
  `F_MemberId`        varchar(50)  DEFAULT NULL COMMENT '会员Id',
  `F_MemberName`      varchar(100) DEFAULT NULL COMMENT '会员昵称',
  `F_MemberPhone`     varchar(20)  DEFAULT NULL COMMENT '联系手机号',
  `F_StoreId`         varchar(50)  DEFAULT NULL COMMENT '预约门店Id',
  `F_StoreName`       varchar(200) DEFAULT NULL COMMENT '预约门店名称',
  `F_AppointDate`     datetime     DEFAULT NULL COMMENT '期望到店日期',
  `F_TimeSlot`        varchar(20)  DEFAULT NULL COMMENT '期望到店时段(如14:00)',
  `F_ProjectDesc`     varchar(500) DEFAULT NULL COMMENT '需求/项目描述',
  `F_Remark`          varchar(500) DEFAULT NULL COMMENT '会员备注',
  `F_Status`          int          NOT NULL DEFAULT 1 COMMENT '状态 1待确认2已确认3已取消',
  `F_ConfirmUser`     varchar(50)  DEFAULT NULL COMMENT '确认人Id',
  `F_ConfirmUserName` varchar(100) DEFAULT NULL COMMENT '确认人姓名',
  `F_ConfirmTime`     datetime     DEFAULT NULL COMMENT '确认时间',
  `F_ConfirmRemark`   varchar(500) DEFAULT NULL COMMENT '确认备注(电话沟通结果)',
  `F_CancelReason`    varchar(500) DEFAULT NULL COMMENT '取消原因',
  `F_CreateTime`      datetime     DEFAULT NULL COMMENT '创建时间',
  `F_UpdateTime`      datetime     DEFAULT NULL COMMENT '更新时间',
  `F_DeleteMark`      int          DEFAULT NULL COMMENT '删除标记(NULL未删除)',
  PRIMARY KEY (`F_Id`),
  KEY `idx_mall_appt_member` (`F_MemberId`),
  KEY `idx_mall_appt_store` (`F_StoreId`,`F_Status`),
  KEY `idx_mall_appt_status` (`F_Status`,`F_DeleteMark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-预约意向';

-- 7. 支付配置（沿用 BASE_SYSCONFIG，Category=MallPayment）------
-- 可选：预置空配置项，管理后台「支付配置」页保存后自动 upsert
-- INSERT INTO base_sysconfig (F_Id, F_Category, F_Key, F_Value) VALUES
--   (..., 'MallPayment', 'payEnabled', '0');
