# modules/forecast_data_processing.py
import numpy as np
from datetime import datetime, timedelta
def generate_trajectory(lambda_val, days_forward, step_days):
"""
Генерирует траекторию значений по дням.
:param lambda_val: Интенсивность событий (в день).
:param days_forward: Количество дней для прогноза.
:param step_days: Шаг отображения графика.
:return: tuple(list, list): Траектория для графика и полная история ежедневных значений.
"""
value_pool_positive = [1, 2, 3, 4, 5]
trajectory = []
current_value = 0
daily_values_history = []
start_date = datetime.now().date() # Определяем дату начала здесь
for day_offset in range(days_forward + 1):
daily_sum = 0
num_events_today = np.random.poisson(lam=lambda_val)
for _ in range(num_events_today):
event_value = np.random.choice(value_pool_positive)
daily_sum += event_value
current_value += daily_sum
daily_values_history.append(current_value)
# --- ДОБАВЛЕН ВЫВОД В КОНСОЛЬ ---
current_date = start_date + timedelta(days=day_offset)
print(f"{current_date}: Событий: {num_events_today:2d}. Итог дня: {daily_sum:6.2f}. Накоплено: {current_value:6.2f}")
# ---------------------------------
if day_offset % step_days == 0 or day_offset == days_forward:
trajectory.append(current_value)
return trajectory, daily_values_history