def create_and_populate_events()

in genai-for-marketing/installation_scripts/aux_data/data_gen.py [0:0]


def create_and_populate_events(num_customers: int = 50000) -> Dict:
    from aux_data.events_aux_data import event_type

    events_per_customer = list(map(int, np.absolute(np.floor(rng.normal(1, 1, size=(num_customers)) * 100))))
    num_events = sum(events_per_customer)
    
    events_type = rng.choice(event_type, size=(num_events))
    
    baseline_datetime = datetime(2023, 4, 1)
    events_date_delta = rng.integers(20, 200, size=(num_events))
    
    events_data = []
    idx = 0

    for i in range(num_customers):
        for _ in range(events_per_customer[i]):
            event = {}
            event['customer_id'] = i
            event['event_id'] = idx
            event['event_date'] = baseline_datetime - timedelta(days=int(events_date_delta[idx]))
            event['event_date'] = event['event_date'].strftime('%Y-%m-%d')
            event['event_type'] = events_type[idx]['event_type']
            idx += 1
            events_data.append(event)
    return events_data