mirror of
https://github.com/openmax-server/server.git
synced 2026-05-12 16:55:47 +00:00
112 lines
3.2 KiB
SQL
112 lines
3.2 KiB
SQL
CREATE TABLE `users` (
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
`phone` VARCHAR(20) UNIQUE,
|
|
`telegram_id` VARCHAR(64) UNIQUE,
|
|
`firstname` VARCHAR(59) NOT NULL,
|
|
`lastname` VARCHAR(59),
|
|
`description` VARCHAR(400),
|
|
`avatar_id` VARCHAR(16),
|
|
`updatetime` VARCHAR(24),
|
|
`lastseen` VARCHAR(24),
|
|
`profileoptions` JSON NOT NULL,
|
|
`options` JSON NOT NULL,
|
|
`accountstatus` VARCHAR(16) NOT NULL,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
`username` VARCHAR(60) UNIQUE,
|
|
PRIMARY KEY (`id`)
|
|
);
|
|
|
|
CREATE TABLE `tokens` (
|
|
`phone` VARCHAR(20) NOT NULL,
|
|
`token_hash` VARCHAR(64) NOT NULL,
|
|
`device_type` VARCHAR(256) NOT NULL,
|
|
`device_name` VARCHAR(256) NOT NULL,
|
|
`location` VARCHAR(256) NOT NULL,
|
|
`time` VARCHAR(16) NOT NULL,
|
|
`push_token` VARCHAR(512) DEFAULT NULL,
|
|
PRIMARY KEY (`phone`, `token_hash`)
|
|
);
|
|
|
|
CREATE TABLE `auth_tokens` (
|
|
`phone` VARCHAR(20) NOT NULL,
|
|
`token_hash` VARCHAR(64) NOT NULL,
|
|
`code_hash` VARCHAR(64) NOT NULL,
|
|
`expires` VARCHAR(16) NOT NULL,
|
|
`state` VARCHAR(16),
|
|
PRIMARY KEY (`phone`, `token_hash`)
|
|
);
|
|
|
|
CREATE TABLE `user_data` (
|
|
`phone` VARCHAR(20) NOT NULL UNIQUE,
|
|
`user_config` JSON NOT NULL,
|
|
`chat_config` JSON NOT NULL,
|
|
PRIMARY KEY (`phone`)
|
|
);
|
|
|
|
CREATE TABLE `chats` (
|
|
`id` INT NOT NULL,
|
|
`owner` INT NOT NULL,
|
|
`type` VARCHAR(16) NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
);
|
|
|
|
CREATE TABLE `messages` (
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
`chat_id` INT NOT NULL,
|
|
`sender` INT NOT NULL,
|
|
`time` VARCHAR(32) NOT NULL,
|
|
`text` VARCHAR(4000) NOT NULL,
|
|
`attaches` JSON NOT NULL,
|
|
`cid` VARCHAR(32) NOT NULL,
|
|
`elements` JSON NOT NULL,
|
|
`type` VARCHAR(16) NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
);
|
|
|
|
CREATE TABLE `chat_participants` (
|
|
`chat_id` INT NOT NULL,
|
|
`user_id` INT NOT NULL,
|
|
`joined_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`chat_id`, `user_id`)
|
|
);
|
|
|
|
CREATE TABLE `contacts` (
|
|
`owner_id` INT NOT NULL,
|
|
`contact_id` INT NOT NULL,
|
|
`custom_firstname` VARCHAR(64),
|
|
`custom_lastname` VARCHAR(64),
|
|
`is_blocked` BOOLEAN NOT NULL DEFAULT FALSE,
|
|
PRIMARY KEY (`owner_id`, `contact_id`)
|
|
);
|
|
|
|
CREATE TABLE `banners` (
|
|
`id` VARCHAR(64) NOT NULL,
|
|
`title` VARCHAR(256) NOT NULL,
|
|
`description` VARCHAR(512) NOT NULL,
|
|
`url` VARCHAR(512) NOT NULL,
|
|
`type` INT NOT NULL DEFAULT 1,
|
|
`priority` INT NOT NULL DEFAULT 0,
|
|
`animoji_id` INT NOT NULL DEFAULT 0,
|
|
`repeat` INT NOT NULL DEFAULT 1,
|
|
`rerun` BIGINT NOT NULL DEFAULT 0,
|
|
`hide_close_button` BOOLEAN NOT NULL DEFAULT FALSE,
|
|
`hide_on_click` BOOLEAN NOT NULL DEFAULT FALSE,
|
|
`is_title_animated` BOOLEAN NOT NULL DEFAULT FALSE,
|
|
`enabled` BOOLEAN NOT NULL DEFAULT TRUE,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
);
|
|
|
|
CREATE TABLE `user_folders` (
|
|
`id` VARCHAR(64) NOT NULL,
|
|
`phone` VARCHAR(20) NOT NULL,
|
|
`title` VARCHAR(128) NOT NULL,
|
|
`filters` JSON NOT NULL DEFAULT ('[]'),
|
|
`include` JSON NOT NULL DEFAULT ('[]'),
|
|
`options` JSON NOT NULL DEFAULT ('[]'),
|
|
`source_id` INT NOT NULL DEFAULT 1,
|
|
`update_time` BIGINT NOT NULL DEFAULT 0,
|
|
`sort_order` INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`, `phone`)
|
|
);
|