"""旁路写入守卫：已接管租户不得直接修改库存字段。"""
from fastapi import HTTPException

_STOCK_FIELDS = ("stock_qty", "reserved_qty", "variant_stock_qty", "cost_price")


def strip_stock_fields(data: dict, *, taken_over: bool, strict: bool = False) -> dict:
    if not taken_over:
        return data
    hit = [k for k in _STOCK_FIELDS if k in data]
    if hit and strict:
        raise HTTPException(
            status_code=409,
            detail=f"进销存已接管库存，字段 {', '.join(hit)} 不可直接修改，请使用库存纠正单",
        )
    return {k: v for k, v in data.items() if k not in _STOCK_FIELDS}
