package com.xingxi.business.UserAddress.service;

import com.xingxi.business.UserAddress.domain.UserAddress;

import java.util.List;

/**
 * 用户地址Service接口
 *
 * @author xingxi
 * @date 2025-03-06
 */
public interface IUserAddressService {
    /**
     * 查询用户地址
     *
     * @param userAddressId 用户地址主键
     * @return 用户地址
     */
    UserAddress selectUserAddressByUserAddressId(Long userAddressId);

    /**
     * 查询用户地址列表
     *
     * @param userAddress 用户地址
     * @return 用户地址集合
     */
    List<UserAddress> selectUserAddressList(UserAddress userAddress);

    /**
     * 新增用户地址
     *
     * @param userAddress 用户地址
     * @return 结果
     */
    int insertUserAddress(UserAddress userAddress);

    /**
     * 新增用户地址
     *
     * @param userAddressList 用户地址
     * @return 结果
     */
    int batchInsertUserAddress(List<UserAddress> userAddressList);

    /**
     * 修改用户地址
     *
     * @param userAddress 用户地址
     * @return 结果
     */
    int updateUserAddress(UserAddress userAddress);

    /**
     * 批量删除用户地址
     *
     * @param userAddressIds 需要删除的用户地址主键集合
     * @return 结果
     */
    int deleteUserAddressByUserAddressIds(String userAddressIds);

    /**
     * 删除用户地址信息
     *
     * @param userAddressId 用户地址主键
     * @return 结果
     */
    int deleteUserAddressByUserAddressId(Long userAddressId);

    /**
     * 逻辑删除用户地址
     *
     * @param userAddressId 用户地址主键
     * @return 结果
     */
    int logicDeleteUserAddressByUserAddressId(Long userAddressId);

    /**
     * 逻辑批量删除用户地址
     *
     * @param userAddressIds 需要删除的数据主键集合
     * @return 结果
     */
    int logicDeleteUserAddressByUserAddressIds(String[] userAddressIds);

    /**
     * 逻辑批量删除用户地址
     *
     * @param userAddress 用户地址
     * @return 结果
     */
    int logicDeleteUserAddressByCondition(UserAddress userAddress);
}
