Nihar Shah
Initial commit: OpenEnv Business CRM Query Environment with memory system and multi-agent architecture
8f7a08e
Raw History Blame Contribute Delete
11.8 kB
"""
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(),
}