| from typing import Dict, Optional |
|
|
| from .schemas import CompanySeedInput, SamplesResponse, VisitorSignalInput |
|
|
|
|
| VISITOR_SAMPLES = [ |
| VisitorSignalInput( |
| visitor_id="001", |
| ip_address="34.201.11.45", |
| pages_visited=["/pricing", "/ai-sales-agent", "/case-studies"], |
| time_on_site_seconds=222, |
| visits_this_week=3, |
| referral_source="linkedin", |
| device_type="desktop", |
| location_hint="Austin, TX", |
| visit_timestamps=["2026-03-11T09:10:00Z", "2026-03-13T18:20:00Z", "2026-03-14T07:42:00Z"], |
| ), |
| VisitorSignalInput( |
| visitor_id="002", |
| ip_address="18.220.41.18", |
| pages_visited=["/product/lead-enrichment", "/docs", "/integrations/salesforce"], |
| time_on_site_seconds=310, |
| visits_this_week=2, |
| referral_source="google", |
| device_type="laptop", |
| location_hint="Boston, MA", |
| visit_timestamps=["2026-03-12T14:10:00Z", "2026-03-14T04:35:00Z"], |
| ), |
| VisitorSignalInput( |
| visitor_id="003", |
| ip_address="13.89.23.11", |
| pages_visited=["/blog/account-intelligence", "/case-studies", "/pricing"], |
| time_on_site_seconds=164, |
| visits_this_week=1, |
| referral_source="newsletter", |
| device_type="mobile", |
| location_hint="Redmond, WA, US", |
| visit_timestamps=["2026-03-14T03:05:00Z"], |
| ), |
| ] |
|
|
| COMPANY_LIST_SAMPLES = [ |
| [ |
| CompanySeedInput(company_name="Apollo.io"), |
| CompanySeedInput(company_name="HubSpot"), |
| CompanySeedInput(company_name="Notion"), |
| CompanySeedInput(company_name="Rippling"), |
| CompanySeedInput(company_name="Clay"), |
| ], |
| [ |
| CompanySeedInput(company_name="BrightPath Lending"), |
| CompanySeedInput(company_name="Summit Realty Group"), |
| CompanySeedInput(company_name="Rocket Mortgage"), |
| CompanySeedInput(company_name="Redfin"), |
| CompanySeedInput(company_name="Compass Real Estate"), |
| ], |
| ] |
|
|
| SEEDED_IP_MAPPINGS: Dict[str, Dict[str, object]] = { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| } |
|
|
|
|
| def resolve_seeded_company(ip_address: str) -> Optional[Dict[str, object]]: |
| for prefix, payload in SEEDED_IP_MAPPINGS.items(): |
| if ip_address.startswith(prefix): |
| return payload |
| return None |
|
|
|
|
| def get_samples() -> SamplesResponse: |
| return SamplesResponse(visitor_signals=VISITOR_SAMPLES, company_lists=COMPANY_LIST_SAMPLES) |
|
|
|
|