Fix bugs issues

This commit is contained in:
Urtzi Alfaro
2025-07-18 13:39:40 +02:00
parent a38e5e7c22
commit 57ac772c6c
4 changed files with 59 additions and 22 deletions

View File

@@ -1,16 +1,19 @@
# ================================================================
# services/auth/app/models/users.py - FIXED VERSION
# ================================================================
"""
User models for authentication service
User models for authentication service - FIXED
"""
from sqlalchemy import Column, String, Boolean, DateTime, Text
from sqlalchemy.dialects.postgresql import UUID
from datetime import datetime
from datetime import datetime, timezone
import uuid
from shared.database.base import Base
class User(Base):
"""User model"""
"""User model - FIXED timezone handling"""
__tablename__ = "users"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
@@ -22,9 +25,10 @@ class User(Base):
tenant_id = Column(UUID(as_uuid=True), nullable=True)
role = Column(String(50), default="user") # user, admin, super_admin
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
last_login = Column(DateTime)
# FIXED: Use timezone-aware datetime for all datetime fields
created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
updated_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))
last_login = Column(DateTime(timezone=True)) # FIXED: Now timezone-aware
# Profile fields
phone = Column(String(20))
@@ -53,22 +57,23 @@ class User(Base):
class UserSession(Base):
"""User session model"""
"""User session model - FIXED timezone handling"""
__tablename__ = "user_sessions"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
user_id = Column(UUID(as_uuid=True), nullable=False, index=True)
refresh_token_hash = Column(String(255), nullable=False)
is_active = Column(Boolean, default=True)
expires_at = Column(DateTime, nullable=False)
expires_at = Column(DateTime(timezone=True), nullable=False) # FIXED: timezone-aware
# Session metadata
ip_address = Column(String(45))
user_agent = Column(Text)
device_info = Column(Text)
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
# FIXED: Use timezone-aware datetime
created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
updated_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))
def __repr__(self):
return f"<UserSession(id={self.id}, user_id={self.user_id})>"