in genai-for-marketing/infra/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