#ifndef DBSERVICESET_H
#define DBSERVICESET_H
#include "ClassSet.h"

class DBServiceSet
{
public:
    explicit DBServiceSet(QObject *parent = nullptr);
    //////////////////////common-start////////////////////
    int getNextId(QString tableName);
    //////////////////////common-start////////////////////

    //////////////////////节点权重值持久化-start////////////////////

    //////////////////////common-start////////////////////

    ////////////////////方案持久化-start////////////////////
    bool AddSchemeInfoList(const QList<SchemaEval *> &schemaEvalList);
    bool DeleteSchemeByEngineerId(int engineerId);
    bool QuerySchemeInfoByEngineerId(QList<SchemaEval *> *schemeList, int engineerId);

    //////////////////////common-start////////////////////

    //////////////////////技术重要度持久化-start////////////////////

    //添加信息
    bool AddTechnicalImportInfo(const TechnicalImport &technicalImport);
    bool AddTechnicalImportInfoList(const QList<TechnicalImport *> &technicalImportList);

    /*批量修改节点值*/
    bool UpdateTechnicalImportInfoList(const QList<TechnicalImport *> technicalImportList);

    bool QueryTechnicalImportInfoByEngineerId(QList<TechnicalImport *> *technicalImportList, int expertId,
                                              int engineerId);

    bool QueryTechnicalImportInfoByEngineerId(int expertId, int engineerId);

    //////////////////////common-start////////////////////

    //////////////////////节点矩阵信息表-start////////////////////

    //////////////////////节点矩阵信息表-end/////////////////////

    //////////////////////评估方案表-start////////////////////
    //添加信息
    bool AddPlanInfo(const PlanInfo &planInfo);
    /*修改评估方案信息*/
    bool UpdatePlanInfo(const PlanInfo &planInfo);
    /*根据评估方案id查询评估方案信息*/
    bool QueryPlanInfoById(PlanInfo *planInfo, int planId);
    /*根据列名称和列值模糊查询评估方案信息,列名称为实体类中的属性名称*/
    bool QueryPlanListByColumnAndColumnValue(QList<PlanInfo *> *planInfoList, QString columnName, QString columnValue);
    bool QueryPlanList(QList<PlanInfo *> *planInfoList);
    /*根据评估方案编号删除评估方案信息*/
    bool DeletePlanById(int planId);
    //////////////////////评估方案表-end////////////////////

    //////////////////////评估方案指标体系关系表-start////////////////////
    //添加信息
    // bool AddIndexSetPlanInfo(const IndexSetPlanInfo &planInfo);
    bool AddIndexSetPlanInfoList(const QList<IndexSetPlanInfo *> planInfoList);
    /*修改信息*/
    bool UpdateIndexSetPlanInfo(const IndexSetPlanInfo &planInfo);
    bool UpdateIndexSetPlanInfoList(const QList<IndexSetPlanInfo *> planInfoList);
    /*根据id查询信息*/
    bool QueryIndexSetPlanInfo(IndexSetPlanInfo *planInfo, int Id);
    /*根据列名称和列值模糊查询信息,列名称为实体类中的属性名称*/
    bool QueryIndexSetPlanListByColumnAndColumnValue(QList<IndexSetPlanInfo *> *planInfoList, QString columnName,
                                                     QString columnValue);
    /*根据编号删除关联信息*/
    bool DeleteIndexSetPlanById(int Id);
    bool DeleteIndexSetPlanByPlanId(int planId);
    bool DeleteIndexSetPlanByIndexSetId(int indexSetId);
    //////////////////////评估方案指标体系关系表-end////////////////////
};

#endif  // DBSERVICESET_H