package com.ruoyi.hezhi.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.hezhi.domain.TbMemberAddress;
import com.ruoyi.hezhi.domain.dto.MemberAddressDTO;

import java.util.List;
import java.util.Map;

/**
 * 用户地址Service接口
 *
 * @author ruoyi
 * @date 2024-10-30
 */
public interface ITbMemberAddressService
{
    /**
     * 查询用户地址
     *
     * @param memberAddressId 用户地址主键
     * @return 用户地址
     */
    public TbMemberAddress selectTbMemberAddressByMemberAddressId(Long memberAddressId);

    /**
     * 查询用户地址列表
     *
     * @param tbMemberAddress 用户地址
     * @return 用户地址集合
     */
    public List<TbMemberAddress> selectTbMemberAddressList(TbMemberAddress tbMemberAddress);

    /**
     * 新增用户地址
     *
     * @param tbMemberAddress 用户地址
     * @return 结果
     */
    public int insertTbMemberAddress(TbMemberAddress tbMemberAddress);

    /**
     * 修改用户地址
     *
     * @param tbMemberAddress 用户地址
     * @return 结果
     */
    public int updateTbMemberAddress(TbMemberAddress tbMemberAddress);

    /**
     * 批量删除用户地址
     *
     * @param memberAddressIds 需要删除的用户地址主键集合
     * @return 结果
     */
    public int deleteTbMemberAddressByMemberAddressIds(Long[] memberAddressIds);

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

    /**
     * 地址管理列表
     *
     * @param params 参数
     * @return 地址管理列表
     */
    public List<Map<String, Object>> getMemberAddressList(Map<String, Object> params);

    /**
     * 地址管理详情
     *
     * @param params 参数
     * @return 地址管理详情
     */
    public Map<String, Object> getMemberAddressInfo(Map<String, Object> params);

    /**
     * 新增地址
     *
     * @param memberAddressDTO
     * @return ok
     */
    public AjaxResult userRetrievePassword(MemberAddressDTO memberAddressDTO);

    /**
     * 修改地址
     *
     * @param memberAddressDTO
     * @return ok
     */
    public AjaxResult updateMemberAddress(MemberAddressDTO memberAddressDTO);

    /**
     * 删除地址
     *
     * @param memberAddressDTO
     * @return ok
     */
    public AjaxResult deleteMemberAddress(MemberAddressDTO memberAddressDTO);
}
