package com.fuint.common.service;

import com.fuint.common.param.LookWorkPage;
import com.fuint.framework.exception.BusinessCheckException;
import com.fuint.framework.pagination.PaginationResponse;
import com.fuint.repository.model.MtLookWork;

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

/**
 * 看看功能业务接口
 *
 * Created by Codex
 */
public interface LookService {

    PaginationResponse<Map<String, Object>> queryWorkListForAdmin(LookWorkPage page) throws BusinessCheckException;

    PaginationResponse<Map<String, Object>> queryWorkListForClient(Integer merchantId,
                                                                   Integer storeId,
                                                                   Integer userId,
                                                                   Integer page,
                                                                   Integer pageSize,
                                                                   boolean onlyMine) throws BusinessCheckException;

    Map<String, Object> getWorkDetail(Integer workId, Integer userId) throws BusinessCheckException;

    Map<String, Object> getWorkDetailForAdmin(Integer workId) throws BusinessCheckException;

    MtLookWork saveWork(Integer merchantId,
                        Integer storeId,
                        Integer userId,
                        String title,
                        String description,
                        List<String> images,
                        String operator) throws BusinessCheckException;

    void removeWork(Integer workId, Integer userId, String operator) throws BusinessCheckException;

    PaginationResponse<Map<String, Object>> queryCommentList(Integer workId,
                                                             Integer page,
                                                             Integer pageSize,
                                                             Integer userId) throws BusinessCheckException;

    Map<String, Object> saveComment(Integer workId,
                                    Integer userId,
                                    String content,
                                    List<String> images,
                                    String operator) throws BusinessCheckException;

    Map<String, Object> toggleWorkLike(Integer workId,
                                       Integer userId,
                                       Integer merchantId,
                                       Integer storeId) throws BusinessCheckException;

    Map<String, Object> toggleCommentLike(Integer commentId,
                                          Integer userId,
                                          Integer merchantId,
                                          Integer storeId) throws BusinessCheckException;

    void updateWorkStatus(Integer workId, String status, String operator, Integer merchantId) throws BusinessCheckException;
}
