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]] = { # "34.201.": { # "company_name": "Apollo.io", # "domain": "apollo.io", # "confidence": 0.93, # "reason": "Seeded hackathon visitor mapping for high-intent SaaS traffic.", # }, # "18.220.": { # "company_name": "HubSpot", # "domain": "hubspot.com", # "confidence": 0.9, # "reason": "Seeded hackathon visitor mapping for marketing software traffic.", # }, # "52.44.": { # "company_name": "Rippling", # "domain": "rippling.com", # "confidence": 0.88, # "reason": "Seeded hackathon visitor mapping for modern ops software traffic.", # }, # "13.89.": { # "company_name": "Microsoft Corporation", # "domain": "microsoft.com", # "confidence": 0.88, # "reason": "Seeded hackathon visitor mapping for modern ops software traffic.", # }, } 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)