2025-07-14 12:58:08 +00:00
-- DELETE FROM quiz_privilege_usage;
-- DELETE FROM privileges;
-- DELETE FROM answer;
-- DELETE FROM question;
-- DELETE FROM quiz;
-- DELETE FROM account;
INSERT INTO account ( id , user_id , created_at , deleted ) VALUES
( ' 550e8400-e29b-41d4-a716-446655440001 ' , ' test_user_123 ' , CURRENT_TIMESTAMP , false ) ,
( ' 550e8400-e29b-41d4-a716-446655440002 ' , ' existing_user_456 ' , CURRENT_TIMESTAMP , false ) ,
( ' 550e8400-e29b-41d4-a716-446655440003 ' , ' user_for_delete_789 ' , CURRENT_TIMESTAMP , false ) ,
( ' 550e8400-e29b-41d4-a716-446655440004 ' , ' deleted_user_999 ' , CURRENT_TIMESTAMP , true ) ,
( ' 550e8400-e29b-41d4-a716-446655440005 ' , ' no_privileges_user ' , CURRENT_TIMESTAMP , false ) ,
( ' 550e8400-e29b-41d4-a716-446655440006 ' , ' multi_privileges_user ' , CURRENT_TIMESTAMP , false ) ;
INSERT INTO privileges ( privilegeID , account_id , privilege_name , amount ) VALUES
( ' quizCnt ' , ' 550e8400-e29b-41d4-a716-446655440001 ' , ' Количество Заявок ' , 10 ) ,
( ' quizUnlimTime ' , ' 550e8400-e29b-41d4-a716-446655440002 ' , ' Безлимит Опросов ' , 30 ) ,
( ' squizHideBadge ' , ' 550e8400-e29b-41d4-a716-446655440002 ' , ' Скрытие шильдика в опроснике ' , 15 ) ,
( ' quizManual ' , ' 550e8400-e29b-41d4-a716-446655440003 ' , ' Заказать quiz ' , 2 ) ,
( ' quizGigaChat ' , ' 550e8400-e29b-41d4-a716-446655440003 ' , ' Услуга от GigaChat ' , 5 ) ,
2025-07-28 11:00:10 +00:00
( ' quizCnt ' , ' 550e8400-e29b-41d4-a716-446655440006 ' , ' Количество Заявок ' , 115000 ) ,
( ' quizUnlimTime ' , ' 550e8400-e29b-41d4-a716-446655440006 ' , ' Безлимит Опросов ' , 115000 ) ,
( ' squizHideBadge ' , ' 550e8400-e29b-41d4-a716-446655440006 ' , ' Скрытие шильдика в опроснике ' , 115000 ) ,
( ' quizManual ' , ' 550e8400-e29b-41d4-a716-446655440006 ' , ' Заказать quiz ' , 115000 ) ,
( ' quizGigaChat ' , ' 550e8400-e29b-41d4-a716-446655440006 ' , ' Услуга от GigaChat ' , 115000 ) ;
2025-07-14 12:58:08 +00:00
INSERT INTO quiz ( qid , accountid , name , description , status , created_at , updated_at ) VALUES
( gen_random_uuid ( ) , ' test_user_123 ' , ' Тестовый квиз 1 ' , ' Описание тестового квиза 1 ' , ' start ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' test_user_123 ' , ' Тестовый квиз 2 ' , ' Описание тестового квиза 2 ' , ' draft ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' existing_user_456 ' , ' Существующий квиз 1 ' , ' Описание существующего квиза 1 ' , ' start ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' existing_user_456 ' , ' Существующий квиз 2 ' , ' Описание существующего квиза 2 ' , ' template ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' user_for_delete_789 ' , ' Квиз для удаления 1 ' , ' Описание квиза для удаления 1 ' , ' start ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' user_for_delete_789 ' , ' Квиз для удаления 2 ' , ' Описание квиза для удаления 2 ' , ' draft ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' multi_privileges_user ' , ' Мультипривилегированный квиз 1 ' , ' Описание мультипривилегированного квиза 1 ' , ' start ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ,
( gen_random_uuid ( ) , ' multi_privileges_user ' , ' Мультипривилегированный квиз 2 ' , ' Описание мультипривилегированного квиза 2 ' , ' template ' , CURRENT_TIMESTAMP , CURRENT_TIMESTAMP ) ;
DO $ $
DECLARE
quiz1_id BIGINT ;
quiz2_id BIGINT ;
quiz3_id BIGINT ;
quiz4_id BIGINT ;
quiz5_id BIGINT ;
quiz6_id BIGINT ;
quiz7_id BIGINT ;
quiz8_id BIGINT ;
BEGIN
SELECT id INTO quiz1_id FROM quiz WHERE name = ' Тестовый квиз 1 ' LIMIT 1 ;
SELECT id INTO quiz2_id FROM quiz WHERE name = ' Тестовый квиз 2 ' LIMIT 1 ;
SELECT id INTO quiz3_id FROM quiz WHERE name = ' Существующий квиз 1 ' LIMIT 1 ;
SELECT id INTO quiz4_id FROM quiz WHERE name = ' Существующий квиз 2 ' LIMIT 1 ;
SELECT id INTO quiz5_id FROM quiz WHERE name = ' Квиз для удаления 1 ' LIMIT 1 ;
SELECT id INTO quiz6_id FROM quiz WHERE name = ' Квиз для удаления 2 ' LIMIT 1 ;
SELECT id INTO quiz7_id FROM quiz WHERE name = ' Мультипривилегированный квиз 1 ' LIMIT 1 ;
SELECT id INTO quiz8_id FROM quiz WHERE name = ' Мультипривилегированный квиз 2 ' LIMIT 1 ;
INSERT INTO question ( quiz_id , title , description , questiontype , required , deleted , page , content , version ) VALUES
( quiz1_id , ' Первый вопрос тестового квиза ' , ' Описание первого вопроса ' , ' variant ' , true , false , 1 , ' {"options": ["Вариант 1", "Вариант 2", "Вариант 3"]} ' , 1 ) ,
( quiz1_id , ' Второй вопрос тестового квиза ' , ' Описание второго вопроса ' , ' text ' , false , false , 1 , ' {"placeholder": "Введите ответ"} ' , 1 ) ,
( quiz2_id , ' Вопрос черновика ' , ' Описание вопроса черновика ' , ' select ' , true , false , 1 , ' {"options": ["Выбор 1", "Выбор 2"]} ' , 1 ) ,
( quiz3_id , ' Вопрос существующего квиза ' , ' Описание вопроса существующего квиза ' , ' rating ' , false , false , 1 , ' {"max_rating": 5} ' , 1 ) ,
( quiz4_id , ' Вопрос шаблона ' , ' Описание вопроса шаблона ' , ' emoji ' , true , false , 1 , ' {"emojis": ["😀", "😢", "😡"]} ' , 1 ) ,
( quiz5_id , ' Вопрос для удаления 1 ' , ' Описание вопроса для удаления 1 ' , ' variant ' , true , false , 1 , ' {"options": ["Удалить 1", "Удалить 2"]} ' , 1 ) ,
( quiz5_id , ' Вопрос для удаления 2 ' , ' Описание вопроса для удаления 2 ' , ' text ' , false , false , 1 , ' {"placeholder": "Введите текст для удаления"} ' , 1 ) ,
( quiz6_id , ' Вопрос черновика для удаления ' , ' Описание вопроса черновика для удаления ' , ' select ' , true , false , 1 , ' {"options": ["Удалить выбор 1", "Удалить выбор 2"]} ' , 1 ) ,
( quiz7_id , ' Вопрос мультипривилегированного квиза 1 ' , ' Описание вопроса мультипривилегированного квиза 1 ' , ' images ' , true , false , 1 , ' {"images": ["image1.jpg", "image2.jpg"]} ' , 1 ) ,
( quiz8_id , ' Вопрос мультипривилегированного квиза 2 ' , ' Описание вопроса мультипривилегированного квиза 2 ' , ' varimg ' , false , false , 1 , ' {"options": ["Вариант с картинкой 1", "Вариант с картинкой 2"], "images": ["img1.jpg", "img2.jpg"]} ' , 1 ) ;
INSERT INTO answer ( content , quiz_id , question_id , fingerprint , session , version ) VALUES
( ' Ответ на первый вопрос ' , quiz1_id , ( SELECT id FROM question WHERE title = ' Первый вопрос тестового квиза ' LIMIT 1 ) , ' fp_test_1 ' , ' session_1 ' , 1 ) ,
( ' Ответ на второй вопрос ' , quiz1_id , ( SELECT id FROM question WHERE title = ' Второй вопрос тестового квиза ' LIMIT 1 ) , ' fp_test_2 ' , ' session_1 ' , 1 ) ,
( ' Ответ на вопрос существующего квиза ' , quiz3_id , ( SELECT id FROM question WHERE title = ' Вопрос существующего квиза ' LIMIT 1 ) , ' fp_existing_1 ' , ' session_2 ' , 1 ) ,
( ' Ответ на вопрос шаблона ' , quiz4_id , ( SELECT id FROM question WHERE title = ' Вопрос шаблона ' LIMIT 1 ) , ' fp_template_1 ' , ' session_3 ' , 1 ) ,
( ' Ответ на вопрос для удаления 1 ' , quiz5_id , ( SELECT id FROM question WHERE title = ' Вопрос для удаления 1 ' LIMIT 1 ) , ' fp_delete_1 ' , ' session_4 ' , 1 ) ,
( ' Ответ на вопрос для удаления 2 ' , quiz5_id , ( SELECT id FROM question WHERE title = ' Вопрос для удаления 2 ' LIMIT 1 ) , ' fp_delete_2 ' , ' session_4 ' , 1 ) ,
( ' Ответ на вопрос мультипривилегированного квиза 1 ' , quiz7_id , ( SELECT id FROM question WHERE title = ' Вопрос мультипривилегированного квиза 1 ' LIMIT 1 ) , ' fp_multipriv_1 ' , ' session_5 ' , 1 ) ,
( ' Ответ на вопрос мультипривилегированного квиза 2 ' , quiz8_id , ( SELECT id FROM question WHERE title = ' Вопрос мультипривилегированного квиза 2 ' LIMIT 1 ) , ' fp_multipriv_2 ' , ' session_6 ' , 1 ) ;
INSERT INTO quiz_privilege_usage ( quiz_id , privilege_id , used_count ) VALUES
( quiz1_id , ' quizCnt ' , 2 ) ,
( quiz3_id , ' quizUnlimTime ' , 1 ) ,
( quiz4_id , ' squizHideBadge ' , 1 ) ,
( quiz5_id , ' quizManual ' , 2 ) ,
( quiz7_id , ' quizGigaChat ' , 1 ) ,
( quiz8_id , ' quizCnt ' , 1 ) ;
END $ $ ;
UPDATE quiz SET
questions_count = ( SELECT COUNT ( * ) FROM question WHERE quiz_id = quiz . id AND deleted = false ) ,
answers_count = ( SELECT COUNT ( * ) FROM answer WHERE quiz_id = quiz . id )
WHERE id IN ( SELECT DISTINCT quiz_id FROM question ) ;