from sqlalchemy.orm import Session
import hashlib
from .. import models, schemas

def get_user(db: Session, user_id: int):
    return db.query(models.users.User).filter(models.users.User.id == user_id).first()

def get_user_by_email(db: Session, email: str):
    return db.query(models.users.User).filter(models.users.User.email == email).first()

def get_users(db: Session, skip: int = 0, limit: int = 100):
    total = db.query(models.users.User).count()
    items = db.query(models.users.User).offset(skip).limit(limit).all()
    return {"total": total, "items": items}

def create_user(db: Session, user: schemas.users.UserCreate):
    md5 = hashlib.md5()
    md5.update(user.password.encode('utf-8'))
    passwordMD5 = md5.hexdigest()
    db_user = models.users.User(email=user.email, password=passwordMD5)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user

def delete_user(db:Session, user_id: int):
    count = db.query(models.users.User).filter(models.users.User.id == user_id).delete()
    db.commit()
    return count

def modify_user(db:Session, user_id: int, user: schemas.users.User):
    count = db.query(models.users.User).filter(models.users.User.id == user_id).update(user)
    db.commit()
    return count