add fix for init sql

This commit is contained in:
harold 2025-03-30 18:03:12 +05:00
parent 4b3fc8da50
commit dad94ed679

View File

@ -1,52 +1,32 @@
-- Enable required extensions
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-- Create tables
CREATE TABLE IF NOT EXISTS files ( CREATE TABLE IF NOT EXISTS files (
id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(), id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
file_type VARCHAR(15) NOT NULL, file_type VARCHAR(30) NOT NULL,
file_name VARCHAR(50) NOT NULL, file_name VARCHAR(50) NOT NULL,
extension VARCHAR(10) NOT NULL, extension VARCHAR(10) NOT NULL,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
entity VARCHAR(50) NOT NULL DEFAULT 'widget', entity VARCHAR(50) NOT NULL DEFAULT 'widget',
size FLOAT NOT NULL DEFAULT 10, created_at TIMESTAMP DEFAULT NOW(),
created_at TIMESTAMP DEFAULT now() size FLOAT NOT NULL DEFAULT 0
); );
CREATE TABLE IF NOT EXISTS widgets ( CREATE TABLE IF NOT EXISTS widgets (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
template_id INTEGER, template_id INTEGER,
group_id INTEGER NOT NULL DEFAULT 1, group_id INTEGER NOT NULL DEFAULT 1,
is_active BOOLEAN NOT NULL DEFAULT true, is_active BOOLEAN NOT NULL DEFAULT TRUE,
name VARCHAR(50) NOT NULL, name VARCHAR(50) NOT NULL,
image UUID NOT NULL REFERENCES files(id) ON DELETE CASCADE, image UUID REFERENCES files(id) ON DELETE CASCADE,
audio UUID NOT NULL REFERENCES files(id) ON DELETE CASCADE, audio UUID REFERENCES files(id) ON DELETE CASCADE,
duration INTEGER NOT NULL, duration INTEGER NOT NULL,
min_amount INTEGER NOT NULL, min_amount INTEGER NOT NULL,
max_amount INTEGER NOT NULL, max_amount INTEGER NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_at TIMESTAMP NOT NULL DEFAULT now(), updated_at TIMESTAMP NOT NULL DEFAULT NOW()
updated_at TIMESTAMP NOT NULL DEFAULT now()
); );
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,
status VARCHAR(50) NOT NULL DEFAULT 'pending',
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS targets ( CREATE TABLE IF NOT EXISTS targets (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
@ -57,13 +37,34 @@ CREATE TABLE IF NOT EXISTS targets (
updated_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 REFERENCES widgets(id) NOT NULL,
order_id UUID NOT NULL,
target_id INTEGER REFERENCES targets(id),
paid_time TIMESTAMP,
status VARCHAR(50) NOT NULL DEFAULT 'pending',
text TEXT NOT NULL,
amount INTEGER NOT NULL,
donat_user TEXT NOT NULL,
accepted_time TIMESTAMP,
rejected_time TIMESTAMP,
show_name BOOLEAN NOT NULL DEFAULT TRUE,
show_text BOOLEAN NOT NULL DEFAULT TRUE,
play_content BOOLEAN NOT NULL DEFAULT TRUE,
showed_time TIMESTAMP,
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS donate_pages ( CREATE TABLE IF NOT EXISTS donate_pages (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
streamer_login TEXT NOT NULL, streamer_login VARCHAR(255) NOT NULL,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
description TEXT DEFAULT '', description TEXT DEFAULT '',
text_after_donat TEXT DEFAULT '', text_after_donat TEXT DEFAULT '',
avatar UUID REFERENCES files(id) ON DELETE CASCADE, avatar UUID REFERENCES files(id) ON DELETE CASCADE,
background_img UUID REFERENCES files(id) ON DELETE CASCADE, background_img UUID REFERENCES files(id) ON DELETE CASCADE,
head_img UUID REFERENCES files(id) ON DELETE CASCADE head_img UUID REFERENCES files(id) ON DELETE CASCADE
); );
@ -72,7 +73,7 @@ CREATE TABLE IF NOT EXISTS moderation (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
enable BOOLEAN DEFAULT FALSE, enable BOOLEAN DEFAULT FALSE,
duration INTEGER duration INTEGER NOT NULL DEFAULT 40
); );
CREATE TABLE IF NOT EXISTS filters ( CREATE TABLE IF NOT EXISTS filters (
@ -91,11 +92,11 @@ CREATE TABLE IF NOT EXISTS voice_settings (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL, streamer_id INTEGER NOT NULL,
enable BOOLEAN DEFAULT FALSE, enable BOOLEAN DEFAULT FALSE,
voice_speed INTEGER NOT NULL, voice_speed VARCHAR(20) NOT NULL DEFAULT 'medium',
scenery TEXT DEFAULT 'after_donat', scenery TEXT DEFAULT 'after_donat',
voice_sound_percent INTEGER NOT NULL, voice_sound_percent INTEGER NOT NULL,
min_price INTEGER NOT NULL min_price INTEGER NOT NULL
); );
CREATE TABLE IF NOT EXISTS languages ( CREATE TABLE IF NOT EXISTS languages (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
@ -110,7 +111,11 @@ CREATE TABLE IF NOT EXISTS voices_languages (
language_id INTEGER NOT NULL REFERENCES languages(id) language_id INTEGER NOT NULL REFERENCES languages(id)
); );
-- Create function for updating timestamps CREATE TABLE IF NOT EXISTS streamers_widgets_pages (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
streamer_id INTEGER NOT NULL
);
CREATE OR REPLACE FUNCTION update_updated_at() CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$ RETURNS TRIGGER AS $$
BEGIN BEGIN
@ -119,21 +124,20 @@ RETURN NEW;
END; END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
-- Create triggers CREATE TRIGGER widgets_updated_at_trigger
CREATE TRIGGER update_updated_at_widgets
BEFORE UPDATE ON widgets BEFORE UPDATE ON widgets
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION update_updated_at(); EXECUTE PROCEDURE update_updated_at();
CREATE TRIGGER update_updated_at_donats CREATE TRIGGER donats_updated_at_trigger
BEFORE UPDATE ON donats BEFORE UPDATE ON donats
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION update_updated_at(); EXECUTE PROCEDURE update_updated_at();
CREATE TRIGGER update_updated_at_targets CREATE TRIGGER targets_updated_at_trigger
BEFORE UPDATE ON targets BEFORE UPDATE ON targets
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION update_updated_at(); EXECUTE PROCEDURE update_updated_at();
-- Вставка default_avatar.png -- Вставка default_avatar.png