1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

64 lines
1.7 KiB
Go
Raw Normal View History

2018-11-24 11:58:08 -08:00
package storage
//noinspection SpellCheckingInspection
const pgsql = `
2017-10-26 14:36:52 -07:00
BEGIN;
2017-11-03 15:41:26 -07:00
-- Pledges
2017-10-26 14:36:52 -07:00
CREATE TABLE IF NOT EXISTS pledges (
pledge_id BIGSERIAL PRIMARY KEY,
2017-11-02 17:13:01 -07:00
patron_id BIGINT NOT NULL UNIQUE,
2017-10-26 14:36:52 -07:00
created_at TIMESTAMPTZ NOT NULL,
declined_since TIMESTAMPTZ NULL,
amount_cents INT NOT NULL,
total_historical_amount_cents INT,
outstanding_payment_amount_cents INT,
is_paused BOOLEAN
);
2017-11-03 16:10:12 -07:00
CREATE INDEX IF NOT EXISTS patron_id_idx ON pledges(patron_id);
2017-10-26 14:36:52 -07:00
2017-11-03 15:41:26 -07:00
-- Feeds
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'provider') THEN
2017-11-03 16:14:03 -07:00
CREATE TYPE provider AS ENUM ('youtube', 'vimeo');
2017-11-03 15:41:26 -07:00
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'link_type') THEN
2017-11-03 16:14:03 -07:00
CREATE TYPE link_type AS ENUM ('channel', 'playlist', 'user', 'group');
2017-11-03 15:41:26 -07:00
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'quality') THEN
2017-11-03 16:14:03 -07:00
CREATE TYPE quality AS ENUM ('low', 'high');
2017-11-03 15:41:26 -07:00
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'format') THEN
2017-11-03 16:14:03 -07:00
CREATE TYPE format AS ENUM ('video', 'audio');
2017-11-03 15:41:26 -07:00
END IF;
END
$$;
CREATE TABLE IF NOT EXISTS feeds (
feed_id BIGSERIAL PRIMARY KEY,
hash_id VARCHAR(12) NOT NULL UNIQUE,
user_id VARCHAR(32) NULL,
2017-11-03 20:19:32 -07:00
item_id VARCHAR(64) NOT NULL CHECK (item_id <> ''),
2017-11-03 15:41:26 -07:00
provider provider NOT NULL,
2017-11-03 19:16:15 -07:00
link_type link_type NOT NULL,
2017-11-03 15:41:26 -07:00
page_size INT NOT NULL DEFAULT 50,
format format NOT NULL DEFAULT 'video',
quality quality NOT NULL DEFAULT 'high',
feature_level INT NOT NULL DEFAULT 0,
2017-11-03 19:16:15 -07:00
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
2017-11-03 15:41:26 -07:00
last_access TIMESTAMPTZ NOT NULL DEFAULT now()
);
2017-11-03 16:10:12 -07:00
CREATE INDEX IF NOT EXISTS feeds_hash_id_idx ON feeds(hash_id);
CREATE INDEX IF NOT EXISTS feeds_user_id_idx ON feeds(user_id);
2017-11-03 15:41:26 -07:00
2018-11-24 11:58:08 -08:00
COMMIT;
END;
`