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

def get_qrcode_stat(db: Session, qrcode_stat_id: int):
    return db.query(models.QrcodeStat).filter(models.QrcodeStat.Id == qrcode_stat_id).first()

def get_qrcode_stats(db: Session, skip: int = 0, limit: int = 100):
    return db.query(models.QrcodeStat).offset(skip).limit(limit).all()

def create_qrcode_stat(db: Session, qrcode_stat: schemas.QrcodeStatCreate):
    db_qrcode_stat = models.QrcodeStat(**qrcode_stat.dict())
    db.add(db_qrcode_stat)
    db.commit()
    db.refresh(db_qrcode_stat)
    return db_qrcode_stat

def update_qrcode_stat(db: Session, qrcode_stat_id: int, qrcode_stat: schemas.QrcodeStatCreate):
    db_qrcode_stat = db.query(models.QrcodeStat).filter(models.QrcodeStat.Id == qrcode_stat_id).first()
    if db_qrcode_stat:
        for key, value in qrcode_stat.dict().items():
            setattr(db_qrcode_stat, key, value)
        db.commit()
        db.refresh(db_qrcode_stat)
    return db_qrcode_stat

def delete_qrcode_stat(db: Session, qrcode_stat_id: int):
    db_qrcode_stat = db.query(models.QrcodeStat).filter(models.QrcodeStat.Id == qrcode_stat_id).first()
    if db_qrcode_stat:
        db.delete(db_qrcode_stat)
        db.commit()
    return db_qrcode_stat