package com.jeesharp.business.modules.marketing.memberTenant.service;

import com.jeesharp.business.modules.marketing.memberTenant.entity.MemberTenant;
import com.jeesharp.business.modules.marketing.memberTenant.vo.MemberTenantQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

import java.util.List;

/**
 * 会员-店铺租户关系领域服务。
 *
 * @author jeesharp
 * @since 2026-06-25
 */
public interface MemberTenantService extends BaseInterface<MemberTenant, MemberTenantQueryVO> {

    /**
     * 新增会员-店铺绑定关系。
     */
    MemberTenant createMemberTenant(MemberTenant memberTenant);

    /**
     * 更新会员-店铺绑定关系。
     */
    void updateMemberTenant(MemberTenant memberTenant);

    /**
     * 按会员与店铺租户查询关系（含已解绑）。
     */
    MemberTenant getByMemberAndTenant(String memberId, String tenantId);

    /**
     * 查询会员已绑定店铺列表。
     */
    List<MemberTenant> listBoundByMemberId(String memberId);

    /**
     * 查询会员具备核销权限的已绑定店铺列表。
     */
    List<MemberTenant> listClerkTenantsByMemberId(String memberId);

    /**
     * 设置会员在店铺内的角色。
     */
    void assignMemberRole(String id, String memberRole);
}
