"""Player user model for managing user codes and names.""" from datetime import datetime from app.extensions import db class PlayerUser(db.Model): """Player user model for managing user codes and names globally. Attributes: id: Primary key user_code: User code received from player (unique) user_name: Display name for the user created_at: Record creation timestamp updated_at: Record update timestamp """ __tablename__ = 'player_user' id = db.Column(db.Integer, primary_key=True) user_code = db.Column(db.String(255), nullable=False, unique=True, index=True) user_name = db.Column(db.String(255), nullable=True) created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) def __repr__(self) -> str: """String representation of PlayerUser.""" return f' {self.user_name or "Unnamed"}>' def to_dict(self) -> dict: """Convert to dictionary for API responses.""" return { 'id': self.id, 'user_code': self.user_code, 'user_name': self.user_name, 'created_at': self.created_at.isoformat() if self.created_at else None, 'updated_at': self.updated_at.isoformat() if self.updated_at else None, }