package com.youlai.boot.mini.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.youlai.boot.mini.model.dto.DeleteUserPostDTO; import com.youlai.boot.mini.model.dto.DeleteUserPostMediaDTO; import com.youlai.boot.mini.model.dto.EditVisibilityDTO; import com.youlai.boot.mini.model.entity.MiniUserPost; import com.youlai.boot.mini.model.form.UserPostForm; import com.youlai.boot.mini.model.form.UserPostCollectForm; import com.youlai.boot.mini.model.form.UserPostLikeForm; import com.youlai.boot.mini.model.query.OwnUserPostQuery; import com.youlai.boot.mini.model.query.UserPostWaterfallQuery; import com.youlai.boot.mini.model.vo.UserPostDetailsVO; import com.youlai.boot.mini.model.vo.UserPostVO; import com.youlai.boot.mini.model.vo.WaterfallResult; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; public interface UserPostService extends IService { List saveFile(List images, List videos); String saveUserPost(UserPostForm formData); void updateUserPost(String postUuid, UserPostForm formData); void deleteMediaSource(DeleteUserPostMediaDTO dto); void saveMediaSource(String postUuid, List images, List videos); void updateVisibility(String postUuid, EditVisibilityDTO dto); void delete(DeleteUserPostDTO dto); IPage getSelfCreatedPage(OwnUserPostQuery queryParams); UserPostDetailsVO getDetails(String postUuid); IPage getOthersCreatedPage(String authorUuid, OwnUserPostQuery queryParams); Map toggleUserPostLike(UserPostLikeForm form, Long userId); Map toggleUserPostCollect(UserPostCollectForm form, Long userId); WaterfallResult getWaterfall(UserPostWaterfallQuery query, Long userId); void resetCurrentUserBloom(Long userId); void increaseUserPostViewCount(String postUuid); }