From 40e441cb34872b6b7ef0987d8f3058eac29fd7e7 Mon Sep 17 00:00:00 2001 From: nquidox Date: Wed, 11 Mar 2026 20:33:50 +0300 Subject: [PATCH] label models --- internal/merch/model.go | 18 ++++++++++++++++++ merch.sql | 30 +++++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/internal/merch/model.go b/internal/merch/model.go index 85321fa..da53ac1 100644 --- a/internal/merch/model.go +++ b/internal/merch/model.go @@ -50,3 +50,21 @@ type taskData struct { OriginName string Url string } + +type Label struct { + Id int64 + CreatedAt time.Time + UpdatedAt sql.NullTime + DeletedAt sql.NullTime + UserId int64 + Uuid string + Name string + Color string + BgColor string +} + +type CardLabel struct { + LabelUuid string + UserUuid string + MerchUuid string +} diff --git a/merch.sql b/merch.sql index 64cc1e4..75e41eb 100644 --- a/merch.sql +++ b/merch.sql @@ -13,7 +13,7 @@ CREATE TABLE merch ( deleted_at TIMESTAMP WITH TIME ZONE NULL, merch_uuid VARCHAR(36) NOT NULL UNIQUE, user_id BIGINT NOT NULL, - name VARCHAR(255) NULL, + name TEXT NULL, CONSTRAINT fk_merch_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); @@ -24,7 +24,7 @@ CREATE TABLE merch_origins ( id BIGSERIAL PRIMARY KEY, created_at TIMESTAMP WITH TIME ZONE NOT NULL, deleted_at TIMESTAMP WITH TIME ZONE NULL, - name VARCHAR(255) NULL + name TEXT NULL ); CREATE TABLE merch_prices ( @@ -56,4 +56,28 @@ CREATE TABLE merch_extra_data ( ); -CREATE UNIQUE INDEX idx_merch_extra_data_merch_origin_id ON merch_extra_data (merch_id, origin_id); \ No newline at end of file +CREATE UNIQUE INDEX idx_merch_extra_data_merch_origin_id ON merch_extra_data (merch_id, origin_id); + +CREATE TABLE labels ( + id BIGSERIAL PRIMARY KEY, + created_at TIMESTAMP WITH TIME ZONE NOT NULL, + updated_at TIMESTAMP WITH TIME ZONE NULL, + deleted_at TIMESTAMP WITH TIME ZONE NULL, + user_id BIGINT NOT NULL, + uuid VARCHAR(36) NOT NULL UNIQUE, + name TEXT NULL, + color VARCHAR(50), + bg_color VARCHAR(50), + + CONSTRAINT fk_labels_users_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE +); + +CREATE TABLE card_labels ( + user_id BIGINT NOT NULL, + label_id BIGINT NOT NULL, + merch_id BIGINT NOT NULL, + + CONSTRAINT fk_card_labels_users_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, + CONSTRAINT fk_card_labels_labels_label_id FOREIGN KEY (label_id) REFERENCES labels(id) ON DELETE CASCADE, + CONSTRAINT fk_card_labels_merch_merch_id FOREIGN KEY (merch_id) REFERENCES merch(id) ON DELETE CASCADE +);