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 tables
CREATE TABLE IF NOT EXISTS files (
id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
file_type VARCHAR(15) NOT NULL,
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
file_type VARCHAR(30) NOT NULL,
file_name VARCHAR(50) NOT NULL,
extension VARCHAR(10) NOT NULL,
streamer_id INTEGER NOT NULL,
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 (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
template_id INTEGER,
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,
image UUID NOT NULL REFERENCES files(id) ON DELETE CASCADE,
audio UUID NOT NULL REFERENCES files(id) ON DELETE CASCADE,
image UUID REFERENCES files(id) ON DELETE CASCADE,
audio UUID REFERENCES files(id) ON DELETE CASCADE,
duration INTEGER NOT NULL,
min_amount INTEGER NOT NULL,
max_amount INTEGER NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT now(),
updated_at TIMESTAMP NOT NULL DEFAULT now()
created_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 (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
@ -57,13 +37,34 @@ CREATE TABLE IF NOT EXISTS targets (
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 (
id SERIAL PRIMARY KEY,
streamer_login TEXT NOT NULL,
streamer_id INTEGER NOT NULL,
description TEXT DEFAULT '',
text_after_donat TEXT DEFAULT '',
avatar UUID REFERENCES files(id) ON DELETE CASCADE,
streamer_login VARCHAR(255) NOT NULL,
streamer_id INTEGER NOT NULL,
description TEXT DEFAULT '',
text_after_donat TEXT DEFAULT '',
avatar 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
);
@ -72,7 +73,7 @@ CREATE TABLE IF NOT EXISTS moderation (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
enable BOOLEAN DEFAULT FALSE,
duration INTEGER
duration INTEGER NOT NULL DEFAULT 40
);
CREATE TABLE IF NOT EXISTS filters (
@ -91,11 +92,11 @@ 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
);
voice_speed VARCHAR(20) NOT NULL DEFAULT 'medium',
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,
@ -110,7 +111,11 @@ CREATE TABLE IF NOT EXISTS voices_languages (
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()
RETURNS TRIGGER AS $$
BEGIN
@ -119,21 +124,20 @@ RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- Create triggers
CREATE TRIGGER update_updated_at_widgets
CREATE TRIGGER widgets_updated_at_trigger
BEFORE UPDATE ON widgets
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
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
FOR EACH ROW
EXECUTE FUNCTION update_updated_at();
EXECUTE PROCEDURE update_updated_at();
-- Вставка default_avatar.png