21 lines
678 B
Python
21 lines
678 B
Python
from datetime import datetime, timezone
|
|
from app.extensions import db
|
|
|
|
|
|
class PageView(db.Model):
|
|
__tablename__ = "page_views"
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
path = db.Column(db.String(512), nullable=False)
|
|
property_id = db.Column(db.String(36), nullable=True, index=True)
|
|
accessed_at = db.Column(
|
|
db.DateTime(timezone=True),
|
|
nullable=False,
|
|
default=lambda: datetime.now(timezone.utc),
|
|
index=True,
|
|
)
|
|
ip_hash = db.Column(db.String(64), nullable=True)
|
|
user_agent = db.Column(db.String(512), nullable=True)
|
|
|
|
def __repr__(self) -> str:
|
|
return f"<PageView {self.path} at {self.accessed_at}>"
|