Files
Agente-Marketing/casa-hunter/app/models.py
T

70 lines
2.6 KiB
Python

from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
db = SQLAlchemy()
class Property(db.Model):
__tablename__ = 'properties'
id = db.Column(db.Integer, primary_key=True)
source = db.Column(db.String(50))
address = db.Column(db.String(200))
city = db.Column(db.String(100))
county = db.Column(db.String(100))
state = db.Column(db.String(10), default='FL')
zipcode = db.Column(db.String(10))
price = db.Column(db.Float)
beds = db.Column(db.Integer)
baths = db.Column(db.Float)
sqft = db.Column(db.Integer)
property_type = db.Column(db.String(50))
status = db.Column(db.String(50))
url = db.Column(db.Text)
image_url = db.Column(db.Text)
score = db.Column(db.Integer, default=0)
ai_analysis = db.Column(db.Text)
is_favorite = db.Column(db.Boolean, default=False)
notes = db.Column(db.Text)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
class Lender(db.Model):
__tablename__ = 'lenders'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
loan_type = db.Column(db.String(100))
specialties = db.Column(db.Text)
min_down_pct = db.Column(db.Float)
accepts_new_resident = db.Column(db.Boolean, default=True)
accepts_self_employed = db.Column(db.Boolean, default=True)
requires_2yr_history = db.Column(db.Boolean, default=False)
phone = db.Column(db.String(30))
email = db.Column(db.String(100))
website = db.Column(db.String(200))
contact_script = db.Column(db.Text)
match_score = db.Column(db.Integer, default=0)
notes = db.Column(db.Text)
class SearchCity(db.Model):
__tablename__ = 'search_cities'
id = db.Column(db.Integer, primary_key=True)
city = db.Column(db.String(100), unique=True)
search_type = db.Column(db.String(20), default='city') # city, county, zip
active = db.Column(db.Boolean, default=True)
added_at = db.Column(db.DateTime, default=datetime.utcnow)
class SearchConfig(db.Model):
__tablename__ = 'search_config'
id = db.Column(db.Integer, primary_key=True)
key = db.Column(db.String(50), unique=True)
value = db.Column(db.String(200))
class ScrapeLog(db.Model):
__tablename__ = 'scrape_logs'
id = db.Column(db.Integer, primary_key=True)
ran_at = db.Column(db.DateTime, default=datetime.utcnow)
source = db.Column(db.String(50))
found = db.Column(db.Integer, default=0)
new = db.Column(db.Integer, default=0)
status = db.Column(db.String(20))
message = db.Column(db.Text)