from typing import List, Optional from sqlalchemy.orm import Session from app.models.customer import Customer from app.schemas.customer import CustomerCreate, CustomerUpdate class CustomerService: def get(self, db: Session, customer_id: int) -> Optional[Customer]: return db.query(Customer).filter(Customer.id == customer_id).first() def get_multi_by_user(self, db: Session, user_id: int, skip: int = 0, limit: int = 100) -> List[Customer]: return db.query(Customer).filter(Customer.user_id == user_id).offset(skip).limit(limit).all() def create(self, db: Session, obj_in: CustomerCreate, user_id: int) -> Customer: db_obj = Customer(**obj_in.dict(), user_id=user_id) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj def update(self, db: Session, db_obj: Customer, obj_in: CustomerUpdate) -> Customer: update_data = obj_in.dict(exclude_unset=True) for field, value in update_data.items(): setattr(db_obj, field, value) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj def remove(self, db: Session, customer_id: int) -> Customer: obj = db.query(Customer).get(customer_id) db.delete(obj) db.commit() return obj customer_service = CustomerService()