DO $$
DECLARE
    user_count INT := 5; -- Количество пользователей
    measurements_per_user INT := 100; -- Количество измерений на пользователя
    user_id INT;
    batch_id INT;
BEGIN
    -- Добавление пользователей
    FOR i IN 1..user_count LOOP
        INSERT INTO users (name, rank_id) VALUES ('User' || i, i);
        user_id := currval(pg_get_serial_sequence('users', 'id'));

        -- Добавление пакетов измерений для каждого пользователя
        FOR j IN 1..(measurements_per_user / 10) LOOP
            INSERT INTO measurement_batch (start_period, user_id, pos_x, pos_y)
            VALUES (NOW() - (j || ' days')::interval, user_id, random() * 100, random() * 100);
            batch_id := currval(pg_get_serial_sequence('measurement_batch', 'id'));

            -- Добавление измерений в пакет
            FOR k IN 1..10 LOOP
                INSERT INTO measurement_params (measurement_type_id, measurement_batch_id, height, temperature, pressure, wind_speed, wind_direction, bullet_speed)
                VALUES (
                    1, -- Тип измерения
                    batch_id,
                    random() * 1000, -- Высота
                    (random() * 116 - 58)::NUMERIC, -- Температура (-58..58)
                    (random() * 400 + 500)::NUMERIC, -- Давление (500..900)
                    random() * 20, -- Скорость ветра
                    (random() * 60)::INT, -- Направление ветра (0..59)
                    random() * 1000 -- Скорость пули
                );
            END LOOP;
        END LOOP;
    END LOOP;
END $$;
