Spaces:
Sleeping
Sleeping
File size: 11,834 Bytes
8f7a08e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | """
Deterministic synthetic dataset for CRM environment.
"""
from typing import List, Dict, Any
from .models import Customer, Order, SupportTicket
def get_customers() -> List[Customer]:
"""Return hardcoded customer dataset."""
return [
Customer(customer_id="C001", name="Alice Johnson", email="alice@example.com", tier="Gold", phone="555-0001", created_at="2024-01-15"),
Customer(customer_id="C002", name="Bob Smith", email="bob@example.com", tier="Silver", phone="555-0002", created_at="2024-01-20"),
Customer(customer_id="C003", name="Carol White", email="carol@example.com", tier="Bronze", phone="555-0003", created_at="2024-02-01"),
Customer(customer_id="C004", name="David Brown", email="david@example.com", tier="Gold", phone="555-0004", created_at="2024-02-05"),
Customer(customer_id="C005", name="Eve Davis", email="eve@example.com", tier="Silver", phone="555-0005", created_at="2024-02-10"),
Customer(customer_id="C006", name="Frank Miller", email="frank@example.com", tier="Gold", phone="555-0006", created_at="2024-02-15"),
Customer(customer_id="C007", name="Grace Lee", email="grace@example.com", tier="Bronze", phone="555-0007", created_at="2024-02-20"),
Customer(customer_id="C008", name="Henry Wilson", email="henry@example.com", tier="Silver", phone="555-0008", created_at="2024-03-01"),
Customer(customer_id="C009", name="Ivy Martinez", email="ivy@example.com", tier="Gold", phone="555-0009", created_at="2024-03-05"),
Customer(customer_id="C010", name="Jack Taylor", email="jack@example.com", tier="Bronze", phone="555-0010", created_at="2024-03-10"),
Customer(customer_id="C011", name="Karen Anderson", email="karen@example.com", tier="Gold", phone="555-0011", created_at="2024-03-15"),
Customer(customer_id="C012", name="Leo Thomas", email="leo@example.com", tier="Silver", phone="555-0012", created_at="2024-03-20"),
Customer(customer_id="C013", name="Mona Jackson", email="mona@example.com", tier="Bronze", phone="555-0013", created_at="2024-03-25"),
Customer(customer_id="C014", name="Nathan Harris", email="nathan@example.com", tier="Gold", phone="555-0014", created_at="2024-04-01"),
Customer(customer_id="C015", name="Olivia Martin", email="olivia@example.com", tier="Silver", phone="555-0015", created_at="2024-04-05"),
Customer(customer_id="C016", name="Paul Garcia", email="paul@example.com", tier="Gold", phone="555-0016", created_at="2024-04-10"),
Customer(customer_id="C017", name="Quinn Rodriguez", email="quinn@example.com", tier="Bronze", phone="555-0017", created_at="2024-04-15"),
Customer(customer_id="C018", name="Rachel Lewis", email="rachel@example.com", tier="Silver", phone="555-0018", created_at="2024-04-20"),
Customer(customer_id="C019", name="Sam Walker", email="sam@example.com", tier="Gold", phone="555-0019", created_at="2024-04-25"),
Customer(customer_id="C020", name="Tina Hall", email="tina@example.com", tier="Bronze", phone="555-0020", created_at="2024-05-01"),
]
def get_orders() -> List[Order]:
"""Return hardcoded order dataset."""
return [
Order(order_id="O001", customer_id="C001", product="Laptop", amount=1200.0, status="Completed", created_at="2024-01-16"),
Order(order_id="O002", customer_id="C002", product="Mouse", amount=25.0, status="Completed", created_at="2024-01-21"),
Order(order_id="O003", customer_id="C003", product="Keyboard", amount=80.0, status="Pending", created_at="2024-02-02"),
Order(order_id="O004", customer_id="C001", product="Monitor", amount=350.0, status="Completed", created_at="2024-02-06"),
Order(order_id="O005", customer_id="C004", product="Laptop", amount=1300.0, status="Completed", created_at="2024-02-07"),
Order(order_id="O006", customer_id="C005", product="Keyboard", amount=85.0, status="Completed", created_at="2024-02-11"),
Order(order_id="O007", customer_id="C006", product="Laptop", amount=1250.0, status="Completed", created_at="2024-02-16"),
Order(order_id="O008", customer_id="C007", product="Mouse", amount=30.0, status="Cancelled", created_at="2024-02-21"),
Order(order_id="O009", customer_id="C001", product="Keyboard", amount=90.0, status="Completed", created_at="2024-03-02"),
Order(order_id="O010", customer_id="C008", product="Monitor", amount=300.0, status="Completed", created_at="2024-03-02"),
Order(order_id="O011", customer_id="C009", product="Laptop", amount=1400.0, status="Completed", created_at="2024-03-06"),
Order(order_id="O012", customer_id="C010", product="Mouse", amount=20.0, status="Pending", created_at="2024-03-11"),
Order(order_id="O013", customer_id="C004", product="Monitor", amount=400.0, status="Completed", created_at="2024-03-16"),
Order(order_id="O014", customer_id="C011", product="Keyboard", amount=95.0, status="Completed", created_at="2024-03-21"),
Order(order_id="O015", customer_id="C012", product="Laptop", amount=1100.0, status="Completed", created_at="2024-03-26"),
Order(order_id="O016", customer_id="C006", product="Monitor", amount=350.0, status="Completed", created_at="2024-04-02"),
Order(order_id="O017", customer_id="C013", product="Mouse", amount=25.0, status="Completed", created_at="2024-04-06"),
Order(order_id="O018", customer_id="C014", product="Laptop", amount=1150.0, status="Pending", created_at="2024-04-11"),
Order(order_id="O019", customer_id="C009", product="Keyboard", amount=100.0, status="Completed", created_at="2024-04-16"),
Order(order_id="O020", customer_id="C015", product="Monitor", amount=320.0, status="Completed", created_at="2024-04-21"),
Order(order_id="O021", customer_id="C016", product="Laptop", amount=1200.0, status="Completed", created_at="2024-04-26"),
Order(order_id="O022", customer_id="C017", product="Mouse", amount=22.0, status="Completed", created_at="2024-05-02"),
Order(order_id="O023", customer_id="C001", product="Monitor", amount=280.0, status="Completed", created_at="2024-05-03"),
Order(order_id="O024", customer_id="C018", product="Keyboard", amount=88.0, status="Pending", created_at="2024-05-07"),
Order(order_id="O025", customer_id="C019", product="Laptop", amount=1350.0, status="Completed", created_at="2024-05-12"),
Order(order_id="O026", customer_id="C011", product="Monitor", amount=400.0, status="Completed", created_at="2024-05-13"),
Order(order_id="O027", customer_id="C004", product="Keyboard", amount=92.0, status="Completed", created_at="2024-05-18"),
Order(order_id="O028", customer_id="C020", product="Mouse", amount=28.0, status="Completed", created_at="2024-05-22"),
Order(order_id="O029", customer_id="C006", product="Laptop", amount=1200.0, status="Completed", created_at="2024-05-27"),
Order(order_id="O030", customer_id="C009", product="Monitor", amount=350.0, status="Completed", created_at="2024-06-01"),
]
def get_support_tickets() -> List[SupportTicket]:
"""Return hardcoded support ticket dataset."""
return [
SupportTicket(ticket_id="T001", customer_id="C001", subject="Laptop overheating", priority="High", status="Open", created_at="2024-03-01"),
SupportTicket(ticket_id="T002", customer_id="C002", subject="Mouse not working", priority="Low", status="Closed", created_at="2024-02-15"),
SupportTicket(ticket_id="T003", customer_id="C003", subject="Keyboard keys stuck", priority="Medium", status="Open", created_at="2024-03-10"),
SupportTicket(ticket_id="T004", customer_id="C004", subject="Monitor flickering", priority="High", status="Open", created_at="2024-03-15"),
SupportTicket(ticket_id="T005", customer_id="C005", subject="Delivery delay", priority="Medium", status="Closed", created_at="2024-02-20"),
SupportTicket(ticket_id="T006", customer_id="C006", subject="Laptop noise issue", priority="High", status="Open", created_at="2024-03-20"),
SupportTicket(ticket_id="T007", customer_id="C007", subject="Refund request", priority="Medium", status="Closed", created_at="2024-03-01"),
SupportTicket(ticket_id="T008", customer_id="C008", subject="Mouse sensitivity", priority="Low", status="Closed", created_at="2024-03-05"),
SupportTicket(ticket_id="T009", customer_id="C009", subject="Keyboard lag", priority="High", status="Open", created_at="2024-03-22"),
SupportTicket(ticket_id="T010", customer_id="C010", subject="Monitor dead pixels", priority="Medium", status="Open", created_at="2024-03-25"),
SupportTicket(ticket_id="T011", customer_id="C011", subject="Account issue", priority="High", status="Open", created_at="2024-03-28"),
SupportTicket(ticket_id="T012", customer_id="C012", subject="Product compatibility", priority="Low", status="Closed", created_at="2024-03-10"),
SupportTicket(ticket_id="T013", customer_id="C013", subject="Shipping problem", priority="Medium", status="Closed", created_at="2024-03-18"),
SupportTicket(ticket_id="T014", customer_id="C014", subject="Laptop screen crack", priority="High", status="Open", created_at="2024-04-01"),
SupportTicket(ticket_id="T015", customer_id="C015", subject="Battery drain", priority="Low", status="Closed", created_at="2024-03-20"),
SupportTicket(ticket_id="T016", customer_id="C016", subject="Monitor color issue", priority="High", status="Open", created_at="2024-04-05"),
SupportTicket(ticket_id="T017", customer_id="C017", subject="Peripheral not detected", priority="Medium", status="Open", created_at="2024-04-08"),
SupportTicket(ticket_id="T018", customer_id="C018", subject="Warranty claim", priority="Low", status="Closed", created_at="2024-03-28"),
SupportTicket(ticket_id="T019", customer_id="C019", subject="Performance issue", priority="High", status="Open", created_at="2024-04-10"),
SupportTicket(ticket_id="T020", customer_id="C020", subject="Setup assistance", priority="Medium", status="Closed", created_at="2024-04-02"),
SupportTicket(ticket_id="T021", customer_id="C001", subject="Software issue", priority="Medium", status="Closed", created_at="2024-04-12"),
SupportTicket(ticket_id="T022", customer_id="C004", subject="Connectivity problem", priority="High", status="Open", created_at="2024-04-15"),
SupportTicket(ticket_id="T023", customer_id="C006", subject="Port issue", priority="High", status="Open", created_at="2024-04-18"),
SupportTicket(ticket_id="T024", customer_id="C009", subject="Update problem", priority="Medium", status="Closed", created_at="2024-04-20"),
SupportTicket(ticket_id="T025", customer_id="C011", subject="Security concern", priority="High", status="Open", created_at="2024-04-22"),
SupportTicket(ticket_id="T026", customer_id="C014", subject="Data loss", priority="High", status="Open", created_at="2024-04-25"),
SupportTicket(ticket_id="T027", customer_id="C016", subject="Display issue", priority="Medium", status="Closed", created_at="2024-04-28"),
SupportTicket(ticket_id="T028", customer_id="C019", subject="Power issue", priority="High", status="Open", created_at="2024-05-01"),
SupportTicket(ticket_id="T029", customer_id="C004", subject="Interface problem", priority="Medium", status="Open", created_at="2024-05-03"),
SupportTicket(ticket_id="T030", customer_id="C001", subject="Speed issue", priority="Low", status="Closed", created_at="2024-05-05"),
]
def create_database() -> Dict[str, Any]:
"""Create in-memory database with all data."""
return {
"customers": get_customers(),
"orders": get_orders(),
"support_tickets": get_support_tickets(),
}
|