"""客户评级数据访问(每客户一行)。 本层只 flush 不 commit —— 事务边界由 services 层控制。 """ from sqlalchemy import select from sqlalchemy.orm import Session from app.models import CustomerRating # ==================== 读取 ==================== def get_by_customer_id(session: Session, customer_id: int) -> CustomerRating | None: """查某客户的当前评级(uk_customer_ratings_customer_id 保证至多一行)。""" stmt = select(CustomerRating).where(CustomerRating.customer_id == customer_id) return session.execute(stmt).scalar_one_or_none() # ==================== 写入 ==================== def create(session: Session, rating: CustomerRating) -> CustomerRating: """新增评级行。只 flush 以取得自增 id。""" session.add(rating) session.flush() return rating def delete(session: Session, rating: CustomerRating) -> None: """删除评级行(客户物理删除前的联动清理,调用方先校验业务引用)。""" session.delete(rating) session.flush()