from sqlalchemy.orm import Session
from app.models.client import Client


def get_client(db: Session, client_id: int):
    return db.query(Client).filter(Client.id == client_id).first()


def get_client_by_cedula(db: Session, cedula: str):
    if not cedula:
        return None
    return db.query(Client).filter(Client.cedula == cedula.strip()).first()


def get_clients(db: Session, skip: int = 0, limit: int = 100):
    return db.query(Client).offset(skip).limit(limit).all()


def create_client(db: Session, *, client_data: dict):
    client = Client(**client_data)
    db.add(client)
    db.commit()
    db.refresh(client)
    return client


def update_client(db: Session, client: Client, updates: dict):
    for k, v in updates.items():
        setattr(client, k, v)
    db.add(client)
    db.commit()
    db.refresh(client)
    return client


def delete_client(db: Session, client: Client):
    db.delete(client)
    db.commit()
    return True
