92 lines
2.7 KiB
SQL
92 lines
2.7 KiB
SQL
CREATE TABLE IF NOT EXISTS chats (
|
|
id VARCHAR PRIMARY KEY ON CONFLICT REPLACE,
|
|
name VARCHAR NOT NULL,
|
|
color VARCHAR NOT NULL DEFAULT '#a187d5',
|
|
type INT NOT NULL,
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
timestamp INT NOT NULL,
|
|
deleted_at_clock_value INT NOT NULL DEFAULT 0,
|
|
public_key BLOB,
|
|
unviewed_message_count INT NOT NULL DEFAULT 0,
|
|
last_clock_value INT NOT NULL DEFAULT 0,
|
|
last_message BLOB,
|
|
members BLOB,
|
|
membership_updates BLOB
|
|
);
|
|
|
|
CREATE TABLE contacts (
|
|
id TEXT PRIMARY KEY ON CONFLICT REPLACE,
|
|
address TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
ens_verified BOOLEAN DEFAULT FALSE,
|
|
ens_verified_at INT NOT NULL DEFAULT 0,
|
|
alias TEXT NOT NULL,
|
|
identicon TEXT NOT NULL,
|
|
photo TEXT NOT NULL,
|
|
last_updated INT NOT NULL DEFAULT 0,
|
|
system_tags BLOB,
|
|
device_info BLOB,
|
|
tribute_to_talk TEXT NOT NULL
|
|
);
|
|
|
|
-- It's important that this table has rowid as we rely on it
|
|
-- when implementing infinite-scroll.
|
|
CREATE TABLE IF NOT EXISTS user_messages (
|
|
id VARCHAR PRIMARY KEY ON CONFLICT REPLACE,
|
|
whisper_timestamp INTEGER NOT NULL,
|
|
source TEXT NOT NULL,
|
|
destination BLOB,
|
|
text VARCHAR NOT NULL,
|
|
content_type INT NOT NULL,
|
|
username VARCHAR,
|
|
timestamp INT NOT NULL,
|
|
chat_id VARCHAR NOT NULL,
|
|
local_chat_id VARCHAR NOT NULL,
|
|
hide BOOLEAN DEFAULT FALSE,
|
|
response_to VARCHAR,
|
|
message_type INT,
|
|
clock_value INT NOT NULL,
|
|
seen BOOLEAN NOT NULL DEFAULT FALSE,
|
|
outgoing_status VARCHAR,
|
|
parsed_text BLOB,
|
|
raw_payload BLOB,
|
|
sticker_pack INT,
|
|
sticker_hash VARCHAR,
|
|
command_id VARCHAR,
|
|
command_value VARCHAR,
|
|
command_address VARCHAR,
|
|
command_from VARCHAR,
|
|
command_contract VARCHAR,
|
|
command_transaction_hash VARCHAR,
|
|
command_signature BLOB,
|
|
command_state INT
|
|
);
|
|
|
|
CREATE INDEX idx_source ON user_messages(source);
|
|
CREATE INDEX idx_search_by_chat_id ON user_messages(
|
|
substr('0000000000000000000000000000000000000000000000000000000000000000' || clock_value, -64, 64) || id, chat_id, hide
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS raw_messages (
|
|
id VARCHAR PRIMARY KEY ON CONFLICT REPLACE,
|
|
local_chat_id VARCHAR NOT NULL,
|
|
last_sent INT NOT NULL,
|
|
send_count INT NOT NULL,
|
|
sent BOOLEAN DEFAULT FALSE,
|
|
resend_automatically BOOLEAN DEFAULT FALSE,
|
|
message_type INT,
|
|
recipients BLOB,
|
|
payload BLOB);
|
|
|
|
CREATE TABLE IF NOT EXISTS messenger_transactions_to_validate (
|
|
message_id VARCHAR,
|
|
command_id VARCHAR NOT NULL,
|
|
transaction_hash VARCHAR PRIMARY KEY,
|
|
retry_count INT,
|
|
first_seen INT,
|
|
signature BLOB NOT NULL,
|
|
to_validate BOOLEAN DEFAULT TRUE,
|
|
public_key BLOB);
|
|
|
|
CREATE INDEX idx_messenger_transaction_to_validate ON messenger_transactions_to_validate(to_validate);
|