package com.bonus.canteen.core.user.mapper;

import java.util.List;
import com.bonus.canteen.core.user.domain.UserAddr;
import org.apache.ibatis.annotations.Param;

/**
 * 地址信息Mapper接口
 * 
 * @author xsheng
 * @date 2025-04-14
 */
public interface UserAddrMapper {
    /**
     * 查询地址信息
     * 
     * @param id 地址信息主键
     * @return 地址信息
     */
    public UserAddr selectUserAddrById(Long id);

    /**
     * 查询地址信息列表
     * 
     * @param userAddr 地址信息
     * @return 地址信息集合
     */
    public List<UserAddr> selectUserAddrList(UserAddr userAddr);

    /**
     * 新增地址信息
     * 
     * @param userAddr 地址信息
     * @return 结果
     */
    public int insertUserAddr(UserAddr userAddr);

    /**
     * 修改地址信息
     * 
     * @param userAddr 地址信息
     * @return 结果
     */
    public int updateUserAddr(UserAddr userAddr);


    int updateUserAddrAsNotDefault(@Param("userId") Long userId, @Param("ifDefault") Integer ifDefault);


    int updateUserAddrAsDefault(@Param("userId") Long userId, @Param("id") Long id, @Param("ifDefault") Integer ifDefault);

    /**
     * 删除地址信息
     * 
     * @param id 地址信息主键
     * @return 结果
     */
    public int deleteUserAddrById(@Param("id") Long id);

    /**
     * 批量删除地址信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserAddrByIds(Long[] ids);
}
