package com.example.sjkbf.service;

import com.example.sjkbf.entity.ProjectPer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.sjkbf.entity.projectconfig.Project;
import com.example.sjkbf.entity.projectconfig.ProjectConfig;

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

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author bozhiqiang
 * @since 2025-04-15
 */
public interface ProjectPerService extends IService<ProjectPer> {

    /**
     * 根据项目名字获得项目信息
     * @param projectName
     * @return
     */
    Project getByName(String projectName);

    /**
     * 获得公开的插件项目信息
     * @return
     */
    Map<String, Map<String, Object>>  getProjectInfoList();

    /**
     * 获得全部的插件项目信息
     * @return
     */
    Map<String, Map<String, Object>>  getProjectInfoListAll();

    List<String>  getBaseScriptStr( String ve);

    /**
     * 获得base加密后的脚本
     * @param key
     * @return
     */
    List<String>  getBaseScriptStrEncrypt(int[] key,String ve);
    List<String>  getCSBaseScriptStrEncrypt(int[] key,String ve);

    List<String>  getProjectScriptStr(String projectName,String ve);

    /**
     * 获得项目加密后的脚本
     * @param projectName
     * @param key
     * @return
     */
    List<String>  getProjectScriptStrEncrypt(String projectName,int[] key,String ve);
    List<byte[]>  getProjectScriptStrEncrypt2(String projectName,int[] key,String ve);


    /**
     * 获得项目购买所需积分
     * @param projectName
     * @return
     */
    int getProjectPrice(String projectName);

    List<byte[]> getBaseScriptStrEncrypt2(int[] key,String ve);

    /**
     * 获得自定义脚本
     * @param ip
     * @param key
     * @return
     */
    List<String> getzdy(String ip, int[] key,String ve);

    /**
     * 获得没加密的自定义脚本
     * @param ip
     * @param ve
     * @return
     */
    List<String> getzdy2(String ip,String ve);
}
