2025-02-24 22:04:48 +05:00

133 lines
3.1 KiB
Go

package sql
var CreateTableQuery = `
CREATE TABLE IF NOT EXISTS widgets (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
template_id INTEGER NOT NULL,
background_url TEXT DEFAULT '',
image_url TEXT DEFAULT '',
audio_url TEXT DEFAULT '',
duration INTEGER NOT NULL,
min_amount INTEGER NOT NUll,
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS donats (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
widget_id INTEGER NOT NULL,
order_id TEXT NOT NULL,
target_id INTEGER NOT NULL,
text TEXT NOT NULL,
amount INTEGER NOT NULL,
donat_user TEXT NOT NULL,
paid BOOLEAN DEFAULT FALSE,
view BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS targets (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
text TEXT NOT NULL,
amount INTEGER NOT NULL,
collected INTEGER DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS donate_pages (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
description TEXT DEFAULT '',
text_after_donat TEXT DEFAULT '',
page_background TEXT DEFAULT '',
avatar TEXT DEFAULT '',
background_img TEXT DEFAULT '',
)
CREATE TABLE IF NOT EXISTS moderation (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
enable BOOLEAN DEFAULT FALSE,
duration INTEGER
)
CREATE TABLE IF NOT EXISTS filters (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
enable_links BOOLEAN DEFAULT FALSE,
)
CREATE TABLE IF NOT EXISTS filters_words (
id SERIAL PRIMARY KEY,
donat_filter_id INTEGER NOT NULL REFERENCES filters(id),
word TEXT DEFAULT NOT NULL,
)
CREATE TABLE IF NOT EXISTS voice_settings (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
enable BOOLEAN DEFAULT FALSE,
voice_speed INTEGER NOT NULL,
scenery TEXT DEFAULT 'after_donat',
voice_sound_percent INTEGER NOT NULL,
min_price INTEGER NOT NULL,
)
CREATE TABLE IF NOT EXISTS languages (
id SERIAL PRIMARY KEY,
iso_code TEXT DEFAULT '',
ru_name TEXT DEFAULT '',
en_name TEXT DEFAULT '',
)
CREATE TABLE IF NOT EXISTS voices_languages (
id SERIAL PRIMARY KEY,
voice_setting_id INTEGER NOT NULL REFERENCES voice_settings(id),
language_id INTEGER NOT NULL REFERENCES voice_languages(id),
)
CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
CREATE TRIGGER update_updated_at_trigger
BEFORE UPDATE ON widgets
FOR EACH ROW
EXECUTE PROCEDURE update_updated_at();
CREATE TRIGGER update_updated_at_trigger
BEFORE UPDATE ON donats
FOR EACH ROW
EXECUTE PROCEDURE update_updated_at();
CREATE TRIGGER update_updated_at_trigger
BEFORE UPDATE ON targets
FOR EACH ROW
EXECUTE PROCEDURE update_updated_at();
`
var DropTableQuery = `
DROP TABLE IF EXISTS widgets;
DROP TABLE IF EXISTS donats;
DROP TABLE IF EXISTS targets;
`