forked from ComputerTech/aprhodite
Fix #11: Replace deprecated datetime.utcnow with timezone-aware UTC
- Import timezone from datetime - Add _utcnow() helper using datetime.now(timezone.utc) - Replace all default=datetime.utcnow column defaults - Fixes deprecation warnings on Python 3.12+
This commit is contained in:
parent
9570283ad8
commit
01c6c4a1b0
16
models.py
16
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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue