from flask_login import UserMixin
from app.db import get_db_controller

class User(UserMixin):
    def __init__(self, id, username, email, password_hash, is_admin):
        self.id = id
        self.username = username
        self.email = email
        self.password_hash = password_hash
        self.is_admin = bool(is_admin)

    @staticmethod
    def get(user_id):
        db = get_db_controller()
        row = db.get_user_by_id(user_id)
        if not row:
            return None
        return User(
            id=row['id'],
            username=row['username'],
            email=row['email'],
            password_hash=row['password_hash'],
            is_admin=row['is_admin']
        )
