create table body_seg_log
(
    id               bigint auto_increment
        primary key,
    ssid             varchar(64)  not null comment 'ssid',
    upload_image_url varchar(255) null comment '上传图片地址',
    seg_image_url    varchar(255) null comment '人像分割后图片地址',
    create_time      datetime     null comment '创建时间'
)
    comment '人像分割日志表';

create index idx_create_time
    on body_seg_log (create_time);

create index idx_ssid
    on body_seg_log (ssid);


create table coin_log
(
    id          bigint auto_increment
        primary key,
    ssid        varchar(64)   not null,
    amount      int           not null,
    func_type   varchar(255)  not null,
    status      int default 0 not null,
    create_time datetime      not null,
    update_time datetime      not null on update CURRENT_TIMESTAMP
)
    comment '金币日志表';

create index idx_func_type_time
    on coin_log (func_type, create_time);

create index idx_ssid
    on coin_log (ssid);


create table complaint
(
    id          bigint auto_increment
        primary key,
    ssid        varchar(64)   not null,
    device_id   varchar(64)   null,
    uid         bigint        null,
    type        int           null comment '类型 1 建议 2投诉',
    reason      varchar(255)  null,
    content     varchar(5000) null,
    phone       varchar(64)   null,
    images      varchar(1000) null,
    create_time datetime      null,
    update_time datetime      null,
    status      int default 0 null
)
    comment '意见建议表';


create table pet_body_info
(
    id             varchar(64)  not null comment '宠物身体id'
        primary key,
    name           varchar(32)  null comment '名称',
    image_url      varchar(255) null comment '身体图片地址',
    full_image_url varchar(255) null comment '整图地址',
    zip_url        varchar(255) null comment '资源地址',
    cnf            json         null comment '图片参数',
    price          int          null comment '价格',
    sort           int          null comment '排序',
    status         int          null comment '状态',
    create_time    datetime     null comment '创建时间',
    update_time    datetime     null on update CURRENT_TIMESTAMP comment '更新时间'
)
    comment '宠物身体信息表';


create table pet_chat_info
(
    id          bigint auto_increment
        primary key,
    ssid        varchar(64)   not null comment 'ssid',
    pet_id      varchar(64)   not null comment '宠物id',
    chat_id     varchar(64)   null comment '对话id，用于关联上下文',
    role        varchar(32)   null comment '角色 user：用户 assistant：AI',
    content     varchar(5000) null comment '聊天内容',
    status      int           null comment '状态',
    create_time datetime      null comment '创建时间'
)
    comment '宠物聊天记录表';

create index idx_create_time
    on pet_chat_info (create_time);

create index idx_pet_id
    on pet_chat_info (pet_id);

create index idx_ssid
    on pet_chat_info (ssid);


create table pet_chat_list
(
    id              bigint auto_increment
        primary key,
    ssid            varchar(64)   not null comment 'ssid',
    pet_id          varchar(64)   not null comment '宠物id',
    pet_type        int           not null comment '宠物类型 0：系统宠物 1：换脸宠物',
    last_chat_id    bigint        null comment '最后一条聊天记录id',
    new_message_num int default 0 null comment '新消息数量',
    status          int default 0 null comment '状态 0：空闲中 1：使用中',
    create_time     datetime      null comment '创建时间',
    update_time     datetime      null on update CURRENT_TIMESTAMP comment '更新时间'
)
    comment '宠物聊天列表';

create index idx_pet_id
    on pet_chat_list (pet_id);

create index idx_ssid
    on pet_chat_list (ssid);

create index idx_status_update_time
    on pet_chat_list (status, update_time);


create table pet_group
(
    id          varchar(64) not null comment '宠物分组id'
        primary key,
    ssid        varchar(64) null comment '创建者',
    name        varchar(32) null comment '分组名称',
    status      int         null comment '状态',
    create_time datetime    null comment '创建时间'
)
    comment '宠物分组表';


create table pet_info
(
    id          varchar(64)   not null comment '宠物id'
        primary key,
    name        varchar(32)   null comment '名称',
    thumb_url   varchar(255)  null comment '缩略图',
    image_url   varchar(255)  null comment '主图',
    zip_url     varchar(255)  null comment '资源',
    price       int           null comment '价格',
    author      varchar(32)   null comment '作者',
    tags        varchar(1000) null comment '标签',
    characters  varchar(1000) null comment '性格',
    prologue    varchar(500)  null comment '开场白',
    topics      varchar(1000) null comment '话题列表',
    status      int           null comment '状态',
    create_time datetime      null comment '创建时间',
    update_time datetime      null on update CURRENT_TIMESTAMP comment '更新时间'
)
    comment '宠物信息表';


create table pet_ref_group
(
    id          bigint auto_increment
        primary key,
    group_id    varchar(64)   null comment '分组id',
    pet_id      varchar(64)   null comment '宠物id',
    sort        int default 0 null comment '排序',
    create_time datetime      null comment '创建时间'
)
    comment '宠物分组关联表';

create index idx_group_id
    on pet_ref_group (group_id);


create table risk_check_log
(
    id               int auto_increment
        primary key,
    user_id          varchar(64) null,
    phone            varchar(32) null,
    source_type      varchar(16) null,
    content_type     varchar(16) null,
    content          mediumtext  null,
    response_code    varchar(16) null,
    response_message varchar(64) null,
    risk_level       varchar(32) null,
    risk_level_msg   varchar(64) null,
    create_time      datetime    null,
    ip               varchar(64) null,
    data             mediumtext  null
)
    comment '风险检测表';


create table upload_log
(
    id                bigint auto_increment
        primary key,
    ssid              varchar(64)   not null,
    cdn_host          varchar(255)  not null,
    file_key          varchar(1000) not null,
    original_filename varchar(255)  null,
    ip                varchar(255)  null,
    create_time       datetime      not null,
    update_time       datetime      not null,
    status            int           not null
)
    comment '上传日志表';

create index ssid_index
    on upload_log (ssid);


create table user_diy_info
(
    id          varchar(64)  not null
        primary key,
    ssid        varchar(64)  not null comment 'ssid',
    body_id     varchar(64)  null comment '换脸宠物身体id',
    name        varchar(32)  null comment '宠物名称',
    image_url   varchar(255) null comment '图片地址',
    zip_url     varchar(255) null comment '资源地址',
    tags        varchar(500) null comment '标签',
    characters  varchar(500) null comment '性格',
    status      int          null comment '状态 0：未使用 1：使用中',
    create_time datetime     null comment '创建时间',
    update_time datetime     null on update CURRENT_TIMESTAMP comment '更新时间'
)
    comment '用户换脸宠物信息表';

create index idx_create_time
    on user_diy_info (create_time);

create index idx_ssid
    on user_diy_info (ssid);


create table user_pet_info
(
    id          bigint auto_increment
        primary key,
    ssid        varchar(64) not null comment 'ssid',
    pet_id      varchar(64) not null comment '宠物id',
    status      int         null comment '状态 0：未使用 1：使用中',
    create_time datetime    null comment '创建时间',
    update_time datetime    null on update CURRENT_TIMESTAMP comment '更新时间'
)
    comment '用户宠物信息表';

create index idx_pet_id
    on user_pet_info (pet_id);

create index idx_ssid
    on user_pet_info (ssid);





