package com.ruoyi.generator.service;

import java.util.List;
import java.util.Map;
import com.ruoyi.generator.domain.SourceProject;
import com.ruoyi.generator.domain.SourcePurchase;
import com.ruoyi.generator.domain.source.SourceProjectResponse;
import com.ruoyi.generator.domain.source.SourcePurchaseResponse;

public interface ISourceProjectService
{
    public SourceProject selectSourceProjectByProjectId(Long projectId);

    public List<SourceProject> selectSourceProjectList(SourceProject sourceProject);

    public int insertSourceProject(SourceProject sourceProject);

    public int updateSourceProject(SourceProject sourceProject);

    public int deleteSourceProjectByProjectIds(Long[] projectIds);

    public int changeSourceProjectStatus(SourceProject sourceProject);

    public List<SourceProjectResponse> listPublicProjects(Long userId, SourceProject query);

    public SourceProjectResponse getPublicProject(Long userId, String slug, boolean increaseView);

    public SourcePurchase purchase(Long userId, Long projectId);

    public List<SourcePurchaseResponse> listPurchases(Long userId);

    public Map<String, Object> getDownloadInfo(Long userId, Long projectId);
}
