# 2026/02/10
CREATE TABLE `pet_system`.`sys_tenant_categories`
(
    `id`          bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `name`        varchar(255)       NOT NULL COMMENT '分类名称',
    `sort`        bigint COMMENT '排序',
    `icon`        bigint COMMENT '图标',
    `status`      tinyint            NOT NULL DEFAULT 0 COMMENT '状态',
    `del_flag`    char(1)                     DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept` bigint(20) COMMENT '创建部门',
    `create_by`   bigint(20) COMMENT '创建者',
    `create_time` datetime COMMENT '创建时间',
    `update_by`   bigint(20) COMMENT '更新者',
    `update_time` datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '商户分类表';

# 2026/02/24
CREATE TABLE `pet_system`.`sys_store`
(
    `id`                  bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `logo`                bigint COMMENT 'LOGO',
    `business_license`    bigint             NOT NULL COMMENT '营业执照',
    `name`                varchar(64)        NOT NULL COMMENT '门店名称',
    `tenant_catergories`  bigint             NOT NULL COMMENT '商户分类',
    `start_business_time` time               NOT NULL COMMENT '开始营业时间',
    `end_business_time`   time               NOT NULL COMMENT '结束营业时间',
    `contact`             varchar(64)        NOT NULL COMMENT '联系人',
    `contact_number`      varchar(32)        NOT NULL COMMENT '联系电话',
    `validity`            date               NOT NULL COMMENT '有效期至',
    `site`                bigint COMMENT '归属站点',
    `detail_address`      varchar(255) COMMENT '详细地址',
    `status`              tinyint            NOT NULL DEFAULT 0 COMMENT '状态',
    `longitude`           decimal(20, 4) COMMENT '经度',
    `latitude`            decimal(20, 4) COMMENT '维度',
    `del_flag`            char(1)                     DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `tenant_id`           varchar(20)        NOT NULL COMMENT '租户编号',
    `create_dept`         bigint(20) COMMENT '创建部门',
    `create_by`           bigint(20) COMMENT '创建者',
    `create_time`         datetime COMMENT '创建时间',
    `update_by`           bigint(20) COMMENT '更新者',
    `update_time`         datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '门店表';

# 2026/02/25
CREATE TABLE `pet_system`.`sys_service`
(
    `id`          bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `name`        varchar(64)        NOT NULL COMMENT '服务名称',
    `icon`        bigint             NOT NULL COMMENT '服务图标',
    `mode`        tinyint            NOT NULL COMMENT '服务模式',
    `sort`        bigint  DEFAULT 0 COMMENT '排序权重',
    `remark`      varchar(255) COMMENT '备注说明',
    `del_flag`    char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept` bigint(20) COMMENT '创建部门',
    `create_by`   bigint(20) COMMENT '创建者',
    `create_time` datetime COMMENT '创建时间',
    `update_by`   bigint(20) COMMENT '更新者',
    `update_time` datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '服务项目表';

CREATE TABLE `pet_system`.`sys_area_station`
(
    `id`            bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `name`          varchar(100)       NOT NULL COMMENT '区域名称',
    `parent_id`     bigint(20) DEFAULT 0 COMMENT '父级ID',
    `code`          varchar(50) COMMENT '省市编码',
    `sort`          bigint     DEFAULT 0 COMMENT '排序权重',
    `address`       varchar(255) COMMENT '详细地址',
    `leader_name`   varchar(64) COMMENT '站长姓名',
    `contact_phone` varchar(32) COMMENT '联系电话',
    `longitude`     decimal(20, 6) COMMENT '经度',
    `latitude`      decimal(20, 6) COMMENT '纬度',
    `type`          tinyint            NOT NULL COMMENT '类型',
    `status`        tinyint    DEFAULT 0 COMMENT '状态 (0:启用, 1:禁用)',
    `del_flag`      char(1)    DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept`   bigint(20) COMMENT '创建部门',
    `create_by`     bigint(20) COMMENT '创建者',
    `create_time`   datetime COMMENT '创建时间',
    `update_by`     bigint(20) COMMENT '更新者',
    `update_time`   datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '区域站点表';

# 2026/02/26
CREATE TABLE `pet_system`.`sys_store_service`
(
    `store_id`   bigint NOT NULL COMMENT '门店ID',
    `service_id` bigint NOT NULL COMMENT '服务ID',
    PRIMARY KEY (`store_id`, `service_id`)
) ENGINE = innoDB COMMENT = '门店服务关系表';

CREATE TABLE `pet_system`.`sys_sms_config`
(
    `id`                bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `supplier`          varchar(64)        NOT NULL COMMENT '供应商',
    `access_key_id`     varchar(128)       NOT NULL COMMENT 'AccessKey',
    `access_key_secret` varchar(128)       NOT NULL COMMENT 'AccessKeySecret',
    `signature`         varchar(255)       NOT NULL COMMENT '短信签名',
    `sdk_app_id`        varchar(255)       NOT NULL COMMENT 'sdk-app-id',
    `template_id`       varchar(128)       NOT NULL COMMENT '模板ID',
    `status`            tinyint DEFAULT 0 COMMENT '状态',
    `create_dept`       bigint(20) COMMENT '创建部门',
    `create_by`         bigint(20) COMMENT '创建者',
    `create_time`       datetime COMMENT '创建时间',
    `update_by`         bigint(20) COMMENT '更新者',
    `update_time`       datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '短信配置表';

# 2026/02/28
CREATE TABLE `pet_system`.`sys_user_store`
(
    `user_id`  bigint NOT NULL COMMENT '用户ID',
    `store_id` bigint NOT NULL COMMENT '门店ID',
    PRIMARY KEY (`user_id`, `store_id`)
) ENGINE = innoDB COMMENT = '用户门店关系表';

# 2026/03/03
CREATE TABLE `pet_system`.`sys_order`
(
    `id`                          bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `code`                        varchar(255)       NOT NULL COMMENT '订单号',

    # 门店信息
    `store`                       bigint             NOT NULL COMMENT '所属门店ID',
    `store_site`                  varchar(128)       NOT NULL COMMENT '所属门店站点',

    # 下单人
    `order_placer`                bigint             NOT NULL COMMENT '下单人',

    # 客户以及宠物等信息
    `usr_customer`                bigint             NOT NULL COMMENT '宠物主',
    `usr_pet`                     bigint             NOT NULL COMMENT '宠物',

    # 其它信息
    `service`                     bigint             NOT NULL COMMENT '服务项目',
    `group_purchase_package_name` varchar(64) COMMENT '团购套餐',
    `remark`                      varchar(512) COMMENT '备注',
    `platform_id`                 tinyint            NOT NULL COMMENT '下单平台',
    `status`                      tinyint DEFAULT 0 COMMENT '状态',
    `tenant_id`                   varchar(20)        NOT NULL COMMENT '租户编号',
    `del_flag`                    char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept`                 bigint(20) COMMENT '创建部门',
    `create_by`                   bigint(20) COMMENT '创建者',
    `create_time`                 datetime COMMENT '创建时间',
    `update_by`                   bigint(20) COMMENT '更新者',
    `update_time`                 datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '订单表';

CREATE TABLE `pet_system`.`sys_sub_order`
(
    `id`                          bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `code`                        varchar(255)       NOT NULL COMMENT '订单号',
    `order_id`                    bigint             NOT NULL COMMENT '订单ID',

    -- 查询冗余
    # 门店信息
    `store`                       bigint             NOT NULL COMMENT '所属门店ID',
    `store_site`                  varchar(128)       NOT NULL COMMENT '所属门店站点',

    # 下单人
    `order_placer`                bigint             NOT NULL COMMENT '下单人',

    # 客户以及宠物等信息
    `usr_customer`                bigint             NOT NULL COMMENT '宠物主',
    `usr_pet`                     bigint             NOT NULL COMMENT '宠物',

    `service`                     bigint             NOT NULL COMMENT '服务项目',

    -- 冗余结束

    # 接送单信息
    `mode`                        tinyint COMMENT '接送模式(仅接送单有)',
    `type`                        tinyint COMMENT '0接/1送(仅接送单有)',

    # 关于联系
    `contact`                     varchar(255)       NOT NULL COMMENT '联系人',
    `contact_phone_number`        varchar(32)        NOT NULL COMMENT '联系电话',

    # 关于时间
    `service_time`                datetime           NOT NULL COMMENT '起始服务时间(仅服务单有)',
    `end_service_time`            datetime           NOT NULL COMMENT '结束服务时间',

    # 地址
    `from_code`                   varchar(128)       NOT NULL COMMENT '起点地址编号(仅接送单有)',
    `from_address`                varchar(255)       NOT NULL COMMENT '起点详细地址(仅接送单有)',
    `to_code`                     varchar(128)       NOT NULL COMMENT '终点地址编号',
    `to_address`                  varchar(255)       NOT NULL COMMENT '终点详细地址',

    `price`                       bigint COMMENT '价格(分)',

    `fulfiller`                   bigint COMMENT '履约者',

    `group_purchase_package_name` varchar(64) COMMENT '团购套餐',
    `remark`                      varchar(512) COMMENT '备注',
    `service_remark`              varchar(512) COMMENT '服务备注',
    `platform_id`                 tinyint            NOT NULL COMMENT '下单平台',
    `status`                      tinyint DEFAULT 0  NOT NULL COMMENT '状态',
    `tenant_id`                   varchar(20)        NOT NULL COMMENT '租户编号',
    `del_flag`                    char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept`                 bigint(20) COMMENT '创建部门',
    `create_by`                   bigint(20) COMMENT '创建者',
    `create_time`                 datetime COMMENT '创建时间',
    `update_by`                   bigint(20) COMMENT '更新者',
    `update_time`                 datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '子订单表';

CREATE TABLE `pet_system`.`sys_sub_order_log`
(
    `id`            bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `sub_order_id`  bigint             NOT NULL COMMENT '子订单ID',
    `actioner`      bigint             NOT NULL COMMENT '操作人',
    `actioner_type` tinyint            NOT NULL COMMENT '操作人类型',
    `log_type`      tinyint            NOT NULL COMMENT '日志类型',
    `action_type`   tinyint            NOT NULL COMMENT '操作类型',
    `title`         varchar(64)        NOT NULL COMMENT '标题',
    `content`       varchar(512)       NOT NULL COMMENT '内容',
    `photos`        varchar(512) COMMENT '上传图片',
    `tenant_id`     varchar(20)        NOT NULL COMMENT '租户编号',
    `del_flag`      char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept`   bigint(20) COMMENT '创建部门',
    `create_by`     bigint(20) COMMENT '创建者',
    `create_time`   datetime COMMENT '创建时间',
    `update_by`     bigint(20) COMMENT '更新者',
    `update_time`   datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '订单操作日志表';

CREATE TABLE `pet_system`.`flf_anamaly`
(
    `id`            bigint PRIMARY KEY NOT NULL COMMENT '序号',
    `fulfiller`     bigint             NOT NULL COMMENT '履约者',
    `order_id`      bigint             NOT NULL COMMENT '关联订单',
    `type`          char(1)            NOT NULL COMMENT '异常类型',
    `content`       text               NOT NULL COMMENT '上报内容',
    `photos`        varchar(512)       COMMENT '上报图片',
    `status`        tinyint            NOT NULL DEFAULT 0 COMMENT '审核状态',
    `tenant_id`     varchar(20)        NOT NULL COMMENT '租户编号',
    `del_flag`      char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
    `create_dept`   bigint(20) COMMENT '创建部门',
    `create_by`     bigint(20) COMMENT '创建者',
    `create_time`   datetime COMMENT '创建时间',
    `update_by`     bigint(20) COMMENT '更新者',
    `update_time`   datetime COMMENT '更新时间'
) ENGINE = innoDB COMMENT = '异常信息表';
