diff --git a/models.py b/models.py index c151487..8fd7070 100644 --- a/models.py +++ b/models.py @@ -7,10 +7,14 @@ users – Registered accounts messages – Encrypted PM history (user↔user and user↔AI) """ -from datetime import datetime +from datetime import datetime, timezone from database import db +def _utcnow(): + return datetime.now(timezone.utc) + + class User(db.Model): __tablename__ = "users" @@ -21,7 +25,7 @@ class User(db.Model): has_ai_access = db.Column(db.Boolean, default=False, nullable=False) ai_messages_used = db.Column(db.Integer, default=0, nullable=False) is_verified = db.Column(db.Boolean, default=False, nullable=False) - created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) + created_at = db.Column(db.DateTime, default=_utcnow, nullable=False) sent_messages = db.relationship( "Message", foreign_keys="Message.sender_id", @@ -52,7 +56,7 @@ class UserIgnore(db.Model): id = db.Column(db.Integer, primary_key=True) ignorer_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False) ignored_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False) - created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) + created_at = db.Column(db.DateTime, default=_utcnow, nullable=False) __table_args__ = ( db.Index("ix_ignore_pair", "ignorer_id", "ignored_id", unique=True), @@ -70,7 +74,7 @@ class Message(db.Model): encrypted_content = db.Column(db.Text, nullable=False) # AES-GCM nonce / IV – base64 encoded (12 bytes → 16 chars) nonce = db.Column(db.String(64), nullable=False) - timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) + timestamp = db.Column(db.DateTime, default=_utcnow, nullable=False) __table_args__ = ( # Composite indices for the two common query patterns @@ -90,7 +94,7 @@ class Ban(db.Model): username = db.Column(db.String(20), nullable=False, index=True) ip = db.Column(db.String(45), nullable=True, index=True) reason = db.Column(db.String(255), nullable=True) - created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) + created_at = db.Column(db.DateTime, default=_utcnow, nullable=False) class Mute(db.Model): @@ -99,4 +103,4 @@ class Mute(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False, index=True) - created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) + created_at = db.Column(db.DateTime, default=_utcnow, nullable=False)