package com.xiaoniu.system.platformusers.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoniu.common.core.resdata.RowsData;
import com.xiaoniu.system.platformusers.user.domain.TbClientUser;
import com.xiaoniu.system.platformusers.user.dto.ClientUserListQueryDTO;
import com.xiaoniu.system.platformusers.user.dto.EditClientUserDTO;
import com.xiaoniu.system.platformusers.user.dto.LogoutAndBlockDTO;
import com.xiaoniu.system.platformusers.user.dto.UserOrderListQueryDTO;
import com.xiaoniu.system.platformusers.user.vo.ClientUserDetailsVO;
import com.xiaoniu.system.platformusers.user.vo.ClientUserListVO;
import com.xiaoniu.system.platformusers.user.vo.UserOrderInfoVO;
import com.xiaoniu.system.platformusers.user.vo.UserOrderListVO;

/**
 * <p>
 * 用户端用户信息表 服务类
 * </p>
 *
 * @author haoxuyang
 * @since 2024-10-14 11:55:30
 */
public interface ITbClientUserService extends IService<TbClientUser> {

    /**
     * 平台用户列表
     *
     * @param dto dto
     * @return RowsData<ClientUserListVO>
     */
    RowsData<ClientUserListVO> clientUserList(ClientUserListQueryDTO dto);

    /**
     * 修改平台用户
     *
     * @param dto dto
     */
    void editClientUser(EditClientUserDTO dto);

    /**
     * 平台用户详情
     *
     * @param id 用户id
     * @return ClientUserDetailsVO
     */
    ClientUserDetailsVO details(Long id);

    /**
     * 注销平台用户
     *
     * @param dto dto
     */
    void logoutAndBlock(LogoutAndBlockDTO dto);

    /**
     * 用户订单列表
     *
     * @param dto dto
     * @return UserOrderListVO
     */
    RowsData<UserOrderListVO> orderList(UserOrderListQueryDTO dto);

    /**
     * 获取订单详情
     *
     * @param orderId 订单id
     * @return UserOrderInfoVO
     */
    UserOrderInfoVO getOrderInfo(Long orderId);
}
