feat: AR-House initial commit

This commit is contained in:
2026-07-03 12:24:58 -04:00
commit 047c05287a
216 changed files with 127552 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
"""Migration script for deals.db schema changes (Phase 3B1 fixes).
Wipes the deals table and recreates with new schema:
- address: nullable (vacant lots have only parcel_id)
- listing_price: nullable (foreclosure pre-auction bids hidden)
- NEW columns: parcel_id, final_judgment_amount
Phase 3 is still in dev, no production data lost.
"""
from __future__ import annotations
import io, sys
from pathlib import Path
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(ROOT))
def main() -> int:
from deals_db import _get_conn, init_db, _DB_PATH
conn = _get_conn()
# Show current state
pre_count = conn.execute("SELECT COUNT(*) AS n FROM deals").fetchone()[0]
pre_runs = conn.execute("SELECT COUNT(*) AS n FROM scraper_runs").fetchone()[0]
pre_fcr = conn.execute("SELECT COUNT(*) AS n FROM firecrawl_usage").fetchone()[0]
print(f"Pre-migration state:")
print(f" deals: {pre_count}")
print(f" scraper_runs: {pre_runs}")
print(f" firecrawl_usage: {pre_fcr}")
# Wipe + recreate deals table only (keep history of runs + firecrawl usage)
conn.execute("DROP TABLE IF EXISTS deals")
print()
print("Dropped deals table.")
init_db()
print("Recreated schema with new columns (address nullable, listing_price nullable, +parcel_id, +final_judgment_amount).")
# Verify
cols = [r["name"] for r in conn.execute("PRAGMA table_info(deals)").fetchall()]
expected_new = ["parcel_id", "final_judgment_amount"]
for c in expected_new:
if c in cols:
print(f" ✅ column '{c}' present")
else:
print(f" ❌ column '{c}' MISSING")
return 1
print()
print(f"deals.db migrated OK at {_DB_PATH}")
return 0
if __name__ == "__main__":
sys.exit(main())