File size: 3,269 Bytes
47b4127 | 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 | 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)
|