package shop.alien.storeplatform.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.result.R;
import shop.alien.entity.store.LifeUserOrder;
import shop.alien.entity.store.vo.LifeUserOrderVo;

/**
 * 用户订单服务接口
 * 定义订单相关的业务操作接口，包括订单的创建、更新、删除、查询、退款等功能
 * 支持代金券和团购券两种类型的订单管理
 *
 * @author alien-cloud
 * @date 2025-11-18
 */
public interface LifeUserOrderPlatformService extends IService<LifeUserOrder> {

    /**
     * 查询用户订单列表
     * 支持多条件分页查询订单列表
     *
     * @param page 页码
     * @param size 每页数量
     * @param userId 用户ID
     * @param storeId 商户ID
     * @param couponType 订单类型
     * @param orderStatus 订单状态
     * @param name 店铺名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return IPage<LifeUserOrderVo> 分页订单列表
     * @author alien-cloud
     * @date 2025-11-18
     */
    IPage<LifeUserOrderVo> queryUserOrderList(Integer page, Integer size, String userId, String storeId, String couponType, String orderStatus, String name, String startTime, String endTime, String orderNo);

    /**
     * 查询用户订单详情
     * 根据订单ID查询订单的详细信息
     *
     * @param orderId 订单ID
     * @param longitude 经度，用于计算距离
     * @param latitude 纬度，用于计算距离
     * @return R<LifeUserOrderVo> 订单详情信息
     * @author alien-cloud
     * @date 2025-11-18
     */
    R<LifeUserOrderVo> queryUserOrderDetail(String orderId, String longitude, String latitude);

}

