tg-bot-golang

Форк
0
Форк от ella/tg-bot-golang
/
20221013232044_insert_test_userdata.sql 
86 строк · 6.3 Кб
1
-- +goose Up
2
-- +goose StatementBegin
3
DO
4
$$
5
    DECLARE
6
        testUserId integer;
7
        recs       RECORD;
8
    BEGIN
9
        -- Вставка тестового пользователя.
10
        INSERT INTO users
11
        (tg_id, name, currency, limits)
12
        VALUES (1234567890, 'ellavs', 'RUB', 50000)
13
        ON CONFLICT (tg_id) DO NOTHING;
14

15
        SELECT id FROM users WHERE tg_id = 1234567890 INTO testUserId;
16

17
        -- Вставка тестовых категорий пользователя.
18
        INSERT INTO usercategories (user_id, name)
19
        VALUES (testUserId, 'Бензин'),
20
               (testUserId, 'Продукты'),
21
               (testUserId, 'Здоровье'),
22
               (testUserId, 'Обувь'),
23
               (testUserId, 'Интернет')
24
        ON CONFLICT (user_id, lower(name)) DO NOTHING;
25

26
        -- Вставка тестовых расходов пользователя.
27
        FOR recs IN
28
            SELECT id, name
29
            FROM usercategories
30
            WHERE user_id = testUserId
31
            LOOP
32
                CASE recs.name
33
                    WHEN 'Бензин' THEN INSERT INTO usermoneytransactions (user_id, category_id, period, sum)
34
                                       VALUES (testUserId, recs.id, CURRENT_TIMESTAMP, 50000),
35
                                              (testUserId, recs.id, CURRENT_TIMESTAMP - interval '20 hour', 150000),
36
                                              (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 days', 55000),
37
                                              (testUserId, recs.id, CURRENT_TIMESTAMP - interval '10 days', 45000),
38
                                              (testUserId, recs.id, CURRENT_TIMESTAMP - interval '1 month 1 days', 135000),
39
                                              -- Тестовая запись с периодом, выходящим за пределы последнего года
40
                                              (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 years', 60000)
41
                                       ON CONFLICT DO NOTHING;
42
                    WHEN 'Продукты' THEN INSERT INTO usermoneytransactions (user_id, category_id, period, sum)
43
                                         VALUES (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 hour', 253555),
44
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '32 hour', 85600),
45
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '1 days', 74500),
46
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '32 days', 95230),
47
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '36 days', 345000),
48
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '3 month', 156000),
49
                                                -- Тестовая запись с периодом, выходящим за пределы последнего года
50
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 years', 85000)
51
                                         ON CONFLICT DO NOTHING;
52
                    WHEN 'Здоровье' THEN INSERT INTO usermoneytransactions (user_id, category_id, period, sum)
53
                                         VALUES (testUserId, recs.id, CURRENT_TIMESTAMP - interval '1 days', 1562000),
54
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '33 days', 860000),
55
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '37 days', 530000),
56
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 month', 2300000),
57
                                                -- Тестовая запись с периодом, выходящим за пределы последнего года
58
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 years', 1500000)
59
                                         ON CONFLICT DO NOTHING;
60
                    WHEN 'Обувь' THEN INSERT INTO usermoneytransactions (user_id, category_id, period, sum)
61
                                      VALUES (testUserId, recs.id, CURRENT_TIMESTAMP - interval '3 days', 890000),
62
                                             (testUserId, recs.id, CURRENT_TIMESTAMP - interval '38 days', 260000),
63
                                             (testUserId, recs.id, CURRENT_TIMESTAMP - interval '5 month', 1300000),
64
                                             -- Тестовая запись с периодом, выходящим за пределы последнего года
65
                                             (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 years', 120000)
66
                                      ON CONFLICT DO NOTHING;
67
                    WHEN 'Интернет' THEN INSERT INTO usermoneytransactions (user_id, category_id, period, sum)
68
                                         VALUES (testUserId, recs.id, CURRENT_TIMESTAMP - interval '20 days', 96000),
69
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 month', 96000),
70
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '3 month', 96000),
71
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '4 month', 95000),
72
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '5 month', 95000),
73
                                                -- Тестовая запись с периодом, выходящим за пределы последнего года
74
                                                (testUserId, recs.id, CURRENT_TIMESTAMP - interval '2 years', 90000)
75
                                         ON CONFLICT DO NOTHING;
76
                    END CASE;
77
            END LOOP;
78
    END
79
$$;
80
-- +goose StatementEnd
81

82
-- +goose Down
83
-- +goose StatementBegin
84
-- Удаление остальных данных произойдет каскадно.
85
DELETE FROM users WHERE tg_id = 1234567890
86
-- +goose StatementEnd

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.