"""业务流水写入时的 club_id 解析。"""
from jituan.constants import CLUB_ID_DEFAULT
from jituan.services.club_context import club_id_for_write
from jituan.services.club_user import get_user_club_id


def resolve_club_id_for_write(request=None, user=None, club_id=None):
    """
    写入订单/充值/购买记录时的 club_id。
    优先级：显式 club_id > request 头 > 用户归属 > xq。
    """
    if club_id:
        return club_id
    if request is not None:
        return club_id_for_write(request, user)
    if user is not None:
        return get_user_club_id(user)
    return CLUB_ID_DEFAULT
