Initial open source release
This commit is contained in:
commit
74992e893f
377 changed files with 118084 additions and 0 deletions
73
deploy/migrations/0002_phase1_business.up.sql
Normal file
73
deploy/migrations/0002_phase1_business.up.sql
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
-- 0002_phase1_business: first-stage business persistence for startup RPCs.
|
||||
--
|
||||
-- 表结构按 telesrv domain/store 边界建模,不引入旧工程依赖。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS update_states (
|
||||
auth_key_id BIGINT PRIMARY KEY REFERENCES auth_keys(auth_key_id) ON DELETE CASCADE,
|
||||
pts INT NOT NULL DEFAULT 0,
|
||||
qts INT NOT NULL DEFAULT 0,
|
||||
date INT NOT NULL DEFAULT 0,
|
||||
seq INT NOT NULL DEFAULT 0,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS contacts (
|
||||
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
contact_user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
mutual BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY (user_id, contact_user_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS contacts_contact_user_id_idx ON contacts (contact_user_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS dialogs (
|
||||
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
peer_type VARCHAR(16) NOT NULL,
|
||||
peer_id BIGINT NOT NULL,
|
||||
top_message_id INT NOT NULL DEFAULT 0,
|
||||
read_inbox_max_id INT NOT NULL DEFAULT 0,
|
||||
read_outbox_max_id INT NOT NULL DEFAULT 0,
|
||||
unread_count INT NOT NULL DEFAULT 0,
|
||||
unread_mentions_count INT NOT NULL DEFAULT 0,
|
||||
unread_reactions_count INT NOT NULL DEFAULT 0,
|
||||
pinned BOOLEAN NOT NULL DEFAULT false,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY (user_id, peer_type, peer_id),
|
||||
CONSTRAINT dialogs_peer_type_check CHECK (peer_type IN ('user'))
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS dialogs_user_updated_idx ON dialogs (user_id, updated_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS dialogs_user_pinned_idx ON dialogs (user_id, pinned) WHERE pinned;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lang_packs (
|
||||
lang_pack VARCHAR(32) NOT NULL,
|
||||
lang_code VARCHAR(64) NOT NULL,
|
||||
version INT NOT NULL,
|
||||
strings_count INT NOT NULL DEFAULT 0,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY (lang_pack, lang_code)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lang_pack_strings (
|
||||
lang_pack VARCHAR(32) NOT NULL,
|
||||
lang_code VARCHAR(64) NOT NULL,
|
||||
key VARCHAR(128) NOT NULL,
|
||||
version INT NOT NULL,
|
||||
pluralized BOOLEAN NOT NULL DEFAULT false,
|
||||
value TEXT NOT NULL DEFAULT '',
|
||||
zero_value TEXT NOT NULL DEFAULT '',
|
||||
one_value TEXT NOT NULL DEFAULT '',
|
||||
two_value TEXT NOT NULL DEFAULT '',
|
||||
few_value TEXT NOT NULL DEFAULT '',
|
||||
many_value TEXT NOT NULL DEFAULT '',
|
||||
other_value TEXT NOT NULL DEFAULT '',
|
||||
deleted BOOLEAN NOT NULL DEFAULT false,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY (lang_pack, lang_code, key),
|
||||
FOREIGN KEY (lang_pack, lang_code) REFERENCES lang_packs(lang_pack, lang_code) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS lang_pack_strings_pack_version_idx
|
||||
ON lang_pack_strings (lang_pack, lang_code, version);
|
||||
Loading…
Add table
Add a link
Reference in a new issue