CREATE TABLE `serbia_users`(
   `user_id` BIGINT PRIMARY KEY NOT NULL COMMENT '主键Id',
   `login_name` VARCHAR(64) DEFAULT NULL COMMENT '用户登录名称',
   `password` VARCHAR(64) NOT NULL COMMENT '密码',
   `show_name` VARCHAR(32)  DEFAULT NULL COMMENT '昵称',
   `head_image_url` VARCHAR(512) DEFAULT NULL COMMENT '用户头像的Url',
   `user_status` INT NOT NULL COMMENT '状态(0: 正常 1: 锁定)',
   `email` VARCHAR(512)  DEFAULT NULL COMMENT '用户邮箱',
   `mobile` VARCHAR(64) NOT NULL COMMENT '用户手机',
   `sex` CHAR(1)  DEFAULT NULL COMMENT '性别(1:男 2:女 3:其它)',
   `birthday` DATE  DEFAULT NULL COMMENT '生日',
   `deleted_flag` INT NOT NULL COMMENT '删除标记(1: 正常 -1: 已删除)',
   `country_code` VARCHAR(10) DEFAULT NULL COMMENT '手机号所属国家code',
   `address` VARCHAR(255)  DEFAULT NULL COMMENT '住址',
   `job` VARCHAR(255) DEFAULT NULL COMMENT '职业',
   `personal_sign` VARCHAR(255) DEFAULT NULL COMMENT '个性签名',
   `create_user_id` BIGINT NOT NULL COMMENT '创建者Id',
   `create_time` DATETIME NOT NULL COMMENT '创建时间',
   `update_user_id` BIGINT NOT NULL COMMENT '更新者Id',
   `update_time` DATETIME NOT NULL COMMENT '最后更新时间',
   UNIQUE INDEX `uk_login_name`(`login_name` ASC) ,
   INDEX `idx_status`(`user_status` ASC)
)COMMENT='用户表';


CREATE TABLE `serbia_country_code`  (
    `id` bigint NOT NULL COMMENT '主键',
    `english_name` varchar(255)  DEFAULT NULL COMMENT '英文名称',
    `country` varchar(255)  DEFAULT NULL COMMENT '国家/地区',
    `country_code` varchar(20)  DEFAULT NULL COMMENT '国家代码',
    `area_code` varchar(10)  DEFAULT NULL COMMENT '区号',
    `pin_yin` varchar(100)  DEFAULT NULL COMMENT '拼音',
    `first_code` varchar(10)  DEFAULT NULL COMMENT '拼音首字母',
    `data_state` tinyint NULL DEFAULT NULL COMMENT '数据状态',
    `create_user_id` bigint NULL DEFAULT NULL COMMENT '创建用户',
    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
    `update_user_id` bigint NULL DEFAULT NULL COMMENT '更新用户',
    `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '国家地区代码表' ROW_FORMAT = Dynamic;



CREATE TABLE `serbia_messages`(
    message_id BIGINT PRIMARY KEY COMMENT '主键id',
    sender_id BIGINT NOT NULL COMMENT '发送人id',
    receiver_id BIGINT NOT NULL COMMENT '接收者id',
    group_id BIGINT DEFAULT NULL COMMENT '群组id',
    messsage_type INT NOT NULL COMMENT '消息类型 1文字 2图片 3文件',
    message_content TEXT NOT NULL COMMENT '消息内容',
    create_time DATETIME NOT NULL COMMENT '创建时间',
    update_user_id BIGINT NOT NULL COMMENT '更新用户',
    update_time DATETIME NOT NULL COMMENT '更新时间',
    data_state TINYINT(1) NOT NULL COMMENT '删除标记 1正常 -1删除',
    INDEX `idx_sender_receiver`(`sender_id`, `receiver_id`) ,
    INDEX `idx_group_id`(`group_id`)
)COMMENT='消息表';

CREATE TABLE `serbia_groups`(
    group_id BIGINT PRIMARY KEY COMMENT '主键id',
    group_owner_id BIGINT NOT NULL COMMENT '群主id',
    group_name VARCHAR(64) NOT NULL COMMENT '群聊名称',
    group_avatar VARCHAR(512) DEFAULT NULL COMMENT '群聊头像',
    is_private INT DEFAULT 0 COMMENT '是否公开 0私密 1公开',
    create_user_id BIGINT NOT NULL COMMENT '创建人',
    create_time DATETIME NOT NULL COMMENT '创建时间',
    update_user_id BIGINT NOT NULL COMMENT '更新用户',
    update_time DATETIME NOT NULL COMMENT '更新时间',
    data_state TINYINT(1) NOT NULL COMMENT '删除标记 1正常 -1删除',
    INDEX `idx_group_owner`(`group_owner_id`)
)COMMENT='群组表';

CREATE TABLE `serbia_group_members`(
   id BIGINT  PRIMARY KEY COMMENT '主键id',
   group_id BIGINT NOT NULL COMMENT '群聊id',
   user_id BIGINT NOT NULL COMMENT '用户id',
   group_role INT NOT NULL COMMENT '成员角色 1群主 2群成员',
   create_user_id BIGINT NOT NULL COMMENT '创建人',
   create_time DATETIME NOT NULL COMMENT '创建时间',
   update_user_id BIGINT NOT NULL COMMENT '更新用户',
   update_time DATETIME NOT NULL COMMENT '更新时间',
   data_state TINYINT(1) NOT NULL COMMENT '删除标记 1正常 -1删除',
   INDEX `idx_group_member`(`group_id`, `user_id`)
)COMMENT='群组成员表';