package com.ai.da.service;

import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.mapper.primary.entity.Account;
import com.ai.da.mapper.primary.entity.Portfolio;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface PortfolioService extends IService<Portfolio> {
    Long publish(MultipartFile canvas, String data);

    PortfolioVO update(PortfolioDTO portfolioDTO);

    PageBaseResponse<PortfolioVO> page(QueryPortfolioPageDTO query);

    PortfolioVO detail(PortfolioDTO portfolioDTO);

    ProjectChooseVO choose(PortfolioDTO portfolioDTO);

    Boolean designWorksRegister(DesignWorksRegisterDTO designWorksRegisterDTO);

    Boolean like(Long id);

    Boolean comment(CommentDTO commentDTO);

    PageBaseResponse<CommentVO> commentPage(CommentPageDTO commentPageDTO);

    Boolean unlike(Long id);

    Long getLikeCount(Long id);

    Boolean viewsIncrease(Long id);

    Long viewsGet(Long id);

    Boolean commentDelete(CommentDTO commentDTO);

    Boolean delete(Long id);

    Portfolio getByIdAll(Long originalPortfolioId);

    void follow(Long followeeId);

    void cancelFollow(Long followeeId);

    Long getPortfolioCount(Long accountId);

//    List<PortfolioVO> queryPortfolioByTag(String tagName, Long tagId);

    void setPortfolioToPublic(Long portfolioId);
}
