Initial commit

This commit is contained in:
Blake Ridgway 2025-07-05 15:29:33 -05:00
commit 315e731234
27 changed files with 3403 additions and 0 deletions

39
models.py Normal file
View file

@ -0,0 +1,39 @@
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import json
db = SQLAlchemy()
class PageView(db.Model):
__tablename__ = 'page_views'
id = db.Column(db.Integer, primary_key=True)
ip_address = db.Column(db.String(45), index=True)
user_agent = db.Column(db.Text)
path = db.Column(db.String(255), index=True)
method = db.Column(db.String(10))
referrer = db.Column(db.String(500))
timestamp = db.Column(db.DateTime, default=datetime.utcnow, index=True)
response_time = db.Column(db.Float)
status_code = db.Column(db.Integer, index=True)
country = db.Column(db.String(2), index=True)
city = db.Column(db.String(100))
session_id = db.Column(db.String(255), index=True)
class UniqueVisitor(db.Model):
__tablename__ = 'unique_visitors'
id = db.Column(db.Integer, primary_key=True)
ip_address = db.Column(db.String(45), index=True)
user_agent_hash = db.Column(db.String(64), index=True)
first_visit = db.Column(db.DateTime, default=datetime.utcnow)
last_visit = db.Column(db.DateTime, default=datetime.utcnow, index=True)
visit_count = db.Column(db.Integer, default=1)
country = db.Column(db.String(2))
city = db.Column(db.String(100))
__table_args__ = (
db.Index('idx_visitor_lookup', 'ip_address', 'user_agent_hash'),
)