feat: add url shortner
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
CREATE TABLE IF NOT EXISTS shortened_urls (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
code VARCHAR(16) NOT NULL UNIQUE,
|
||||
long_url TEXT NOT NULL,
|
||||
|
||||
path TEXT NOT NULL,
|
||||
content_type VARCHAR(32) NOT NULL,
|
||||
book_code VARCHAR(16),
|
||||
division VARCHAR(16),
|
||||
chapter VARCHAR(64),
|
||||
verse VARCHAR(32),
|
||||
slug VARCHAR(255),
|
||||
|
||||
has_highlight BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
highlight_param TEXT,
|
||||
|
||||
creator_ip INET,
|
||||
creator_ua TEXT,
|
||||
creator_referer TEXT,
|
||||
creator_country CHAR(2),
|
||||
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
expires_at TIMESTAMPTZ,
|
||||
disabled BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
disabled_reason TEXT,
|
||||
disabled_at TIMESTAMPTZ,
|
||||
|
||||
click_count BIGINT NOT NULL DEFAULT 0,
|
||||
human_click_count BIGINT NOT NULL DEFAULT 0,
|
||||
first_clicked_at TIMESTAMPTZ,
|
||||
last_clicked_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_created_at_idx ON shortened_urls (created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_content_type_idx ON shortened_urls (content_type);
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_book_code_idx ON shortened_urls (book_code) WHERE book_code IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_creator_ip_idx ON shortened_urls (creator_ip) WHERE creator_ip IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_expires_at_idx ON shortened_urls (expires_at) WHERE expires_at IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS shortened_urls_click_count_idx ON shortened_urls (click_count DESC) WHERE NOT disabled;
|
||||
Reference in New Issue
Block a user