package sql import ( "donat-widget/internal/model" "fmt" ) var CreateWidget = ` INSERT INTO widgets (streamer_id, template_id, background, image, audio, duration, min_amount, name) VALUES (@streamer_id, @template_id, @background, @image, @audio, @duration, @min_amount, @name) RETURNING id; ` var GetWidgetByStreamerID = ` SELECT * FROM widgets WHERE streamer_id = (@streamer_id); ` var GetWidgetByID = ` SELECT * FROM widgets WHERE id = (@id); ` func UpdateMediaUrl(mediaType model.MediaType) string { query := fmt.Sprintf(` UPDATE widgets SET %s = (@%s) WHERE id = (@id) `, mediaType, mediaType) return query } var GetAllWidget = ` SELECT * FROM widgets WHERE streamer_id = (@streamer_id); ` func GetMediaUrl(mediaType model.MediaType) string { query := fmt.Sprintf(` SELECT %s FROM widgets WHERE id = (@id) `, mediaType) return query } var CreateDonat = ` INSERT INTO donats (streamer_id, widget_id, text, amount, donat_user, order_id, target_id) VALUES (@streamer_id, @widget_id, @text, @amount, @donat_user, @order_id, @target_id) RETURNING id; ` var MarkDonatView = ` UPDATE donats SET view = (@view) WHERE id = (@id); ` var MarkDonatPaid = ` UPDATE donats SET paid = (@paid) WHERE order_id = (@order_id); ` var GetDonatByStreamerID = ` SELECT * FROM donats WHERE streamer_id = (@streamer_id) AND paid = (@paid) AND view = (@view); ` var GetDonatByOrderID = ` SELECT * FROM donats WHERE order_id = (@order_id); ` var CreateTarget = ` INSERT INTO targets (streamer_id, text, amount) VALUES (@streamer_id, @text, @amount) RETURNING id; ` var GetAllTarget = ` SELECT * FROM targets WHERE streamer_id = (@streamer_id); ` var AddAmountToTarget = ` UPDATE targets SET collected = collected + (@amount) WHERE id = (@target_id); ` var GetDonationPage = ` SELECT * FROM donate_pages WHERE streamer_id = (@streamer_id); ` var GetDonationPageByLogin = ` SELECT * FROM donate_pages WHERE streamer_login = (@streamer_login); ` var GetWidget = ` SELECT w.id, w.streamer_id, w.template_id, bg.file_name AS background_file_name, bg.extension AS background_extension, bg.type AS background_type, img.file_name AS image_file_name, img.extension AS image_extension, img.type AS image_type, audio.file_name AS audio_file_name, audio.extension AS audio_extension, audio.type AS audio_type, w.duration, w.min_amount, w.created_at, w.updated_at FROM widgets w LEFT JOIN files bg ON w.background = bg.id LEFT JOIN files img ON w.image = img.id LEFT JOIN files audio ON w.audio = audio.id ` var AddNewFile = ` INSERT INTO files (streamer_id, file_name, file_type, extension) VALUES (@streamer_id, @file_name, @file_type, @extension) RETURNING id; ;` var GetFileExists = `SELECT id FROM files WHERE ( streamer_id = @streamer_id AND file_name = @file_name AND file_type = @file_type AND extension = @extension ;`