44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
import duckdb
|
|
import pandas as pd
|
|
from datetime import datetime, timedelta
|
|
import random
|
|
|
|
def generate_data():
|
|
riders = ["Rider Alpha", "Rider Beta", "Rider Gamma", "Rider Delta"]
|
|
tenants = ["Tenant A", "Tenant B", "Tenant C"]
|
|
statuses = ["completed", "pending", "cancelled"]
|
|
|
|
data = []
|
|
for i in range(50):
|
|
rider = random.choice(riders)
|
|
tenant = random.choice(tenants)
|
|
order_amt = round(random.uniform(20.0, 100.0), 2)
|
|
delivery_amt = round(order_amt * 0.1, 2)
|
|
delivery_charges = round(random.uniform(2.0, 5.0), 2)
|
|
status = random.choice(statuses)
|
|
|
|
pickup = datetime.now() - timedelta(minutes=random.randint(10, 1000))
|
|
# ridertime in minutes
|
|
rider_time = random.randint(15, 45)
|
|
delivery = pickup + timedelta(minutes=rider_time)
|
|
|
|
data.append({
|
|
"ridername": rider,
|
|
"tenantname": tenant,
|
|
"orderamount": order_amt,
|
|
"deliveryamt": delivery_amt,
|
|
"deliverycharges": delivery_charges,
|
|
"orderstatus": status,
|
|
"pickuptime": pickup.isoformat(),
|
|
"deliverytime": delivery.isoformat(),
|
|
"ridertime": rider_time # explicitly adding this column for the user's example
|
|
})
|
|
|
|
df = pd.DataFrame(data)
|
|
conn = duckdb.connect()
|
|
conn.execute("COPY df TO 'c:/bitbucket/backup/analytics/ai-service/data/deliveries.parquet' (FORMAT PARQUET)")
|
|
print("Generated c:/bitbucket/backup/analytics/ai-service/data/deliveries.parquet")
|
|
|
|
if __name__ == "__main__":
|
|
generate_data()
|