#ifndef HBLASTRECORDDAO_H
#define HBLASTRECORDDAO_H
#include "HBlastRecord.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
#include <QList>
#include <QDebug>


struct PaginatedHBlastRecordResult {
    QList<QSharedPointer<HBlastRecord>> BlastRecords;
    int totalCount;
};

class HBlastRecordDao
{
public:
    HBlastRecordDao(QSqlDatabase db);
    // HBlastRecord getById(qint64 id);
    bool deleteHBlastRecord(const HBlastRecord &record);
    bool updateHBlastRecord(const HBlastRecord &record);
    bool addHBlastRecord(const HBlastRecord &record);
    PaginatedHBlastRecordResult getAllHRecords(int page, int pageSize);
private:
    QSqlDatabase database;
    // 将QSqlRecord转换为HBlastRecord对象
    QSharedPointer<HBlastRecord> recordToBlastRecord(const QSqlRecord &record);
};

#endif // HBLASTRECORDDAO_H
