package com.ylx.massage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylx.massage.domain.TechnicianMoment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 技师动态Mapper接口
 */
@Mapper
public interface TechnicianMomentMapper extends BaseMapper<TechnicianMoment> {

    /**
     * 查询推荐动态（全部动态，按日期倒序，同一天按浏览量倒序）
     */
    List<TechnicianMoment> selectRecommendedMoments(Page<TechnicianMoment> page);

    /**
     * 查询同城动态（按城市和发布时间倒序）
     */
    List<TechnicianMoment> selectSameCityMoments(Page<TechnicianMoment> page, @Param("cityCode") String cityCode);

    /**
     * 查询附近动态（10km内，按日期倒序，同一天按距离排序）
     */
    List<TechnicianMoment> selectNearbyMoments(Page<TechnicianMoment> page, @Param("longitude") BigDecimal longitude,@Param("latitude") BigDecimal latitude);

    /**
     * 增加浏览量
     */
    int incrementViewCount(@Param("momentId") Long momentId);

    /**
     * 根据动态ID查询动态简要详情（包含媒体URL列表）
     *
     * @param momentId 动态ID
     * @return 动态简要信息（包含媒体URL列表）
     */
    Map<String, Object> selectMomentSimpleDetail(@Param("momentId") Long momentId);
}
