package com.vetti.hotake.mapper;

import com.vetti.hotake.domain.HotakeSocialUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户社交账号绑定Mapper接口
 *
 * @author vetti
 */
public interface HotakeSocialUserMapper {

    /**
     * 根据provider和providerUserId查询社交用户
     */
    HotakeSocialUser selectByProviderAndProviderUserId(@Param("provider") String provider,
                                                        @Param("providerUserId") String providerUserId);

    /**
     * 根据用户ID和provider查询社交绑定
     */
    HotakeSocialUser selectByUserIdAndProvider(@Param("userId") Long userId, @Param("provider") String provider);

    /**
     * 根据用户ID查询所有社交绑定
     */
    List<HotakeSocialUser> selectByUserId(@Param("userId") Long userId);

    /**
     * 新增社交用户绑定
     */
    int insert(HotakeSocialUser socialUser);

    /**
     * 更新社交用户绑定
     */
    int update(HotakeSocialUser socialUser);

    /**
     * 删除社交用户绑定（逻辑删除）
     */
    int deleteById(@Param("id") Long id);
}
