core/tests/test_data.sql

94 lines
9.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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),
('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);
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);