Voucher-Bot / constants.py
Raj718's picture
Initial commit: NYC Voucher Housing Navigator
dbaeeae
from enum import Enum
class StageEvent(Enum):
"""
Stage completion events for the VoucherBot agent workflow.
Used to trigger UI updates and state changes at major checkpoints.
"""
SEARCH_COMPLETE = "search_listings_done"
VIOLATIONS_COMPLETE = "violations_check_done"
FILTERING_COMPLETE = "filtering_done"
BBL_LOOKUP_COMPLETE = "bbl_lookup_done"
FAVORITES_UPDATED = "favorites_updated"
class RiskLevel(Enum):
"""
Risk level indicators for building safety assessments.
Used for consistent risk display across the system.
"""
SAFE = "✅"
MODERATE = "⚠️"
HIGH_RISK = "🚨"
UNKNOWN = "❓"
class VoucherType(Enum):
"""
Supported housing voucher types for filtering and search.
"""
SECTION_8 = "Section 8"
CITYFHEPS = "CityFHEPS"
HASA = "HASA"
HPD = "HPD"
DSS = "DSS"
FHEPS = "FHEPS"
class Borough(Enum):
"""
NYC Borough identifiers for consistent borough handling.
"""
MANHATTAN = "manhattan"
BROOKLYN = "brooklyn"
QUEENS = "queens"
BRONX = "bronx"
STATEN_ISLAND = "staten_island"
# UI Constants
DEFAULT_MAX_RENT = 4000
DEFAULT_MIN_BEDROOMS = 1
DEFAULT_MAX_BEDROOMS = 4
# API Constants
CRAIGSLIST_BASE_URL = "https://newyork.craigslist.org"
NYC_OPEN_DATA_VIOLATIONS_URL = "https://data.cityofnewyork.us/resource/wvxf-dwi5.json"
NYC_GEOCLIENT_BASE_URL = "https://api.cityofnewyork.us/geoclient/v1"
# Performance Constants
DEFAULT_CACHE_TTL_SECONDS = 300 # 5 minutes
MAX_RETRY_ATTEMPTS = 3
DEFAULT_REQUEST_TIMEOUT = 30
# Violation Risk Thresholds
VIOLATION_RISK_THRESHOLDS = {
"safe": 0, # 0 violations = safe
"moderate": 20, # 1-20 violations = moderate risk
"high": float('inf') # 20+ violations = high risk
}