#ifndef YEARREPOSITORY_H_ #define YEARREPOSITORY_H_ #include #include #include #include "database/BaseRepository.h" #include "model/Models.h" #include "type/YearFilter.h" namespace database { class YearRepository : public BaseRepository { public: YearRepository(const model::BinaryPath&); std::vector retrieveRecords(); std::pair retrieveRecordWithSongCount(model::Year&, type::YearFilter = type::YearFilter::id); model::Year retrieveRecord(model::Year&, type::YearFilter = type::YearFilter::id); bool doesYearExist(const model::Year&, type::YearFilter = type::YearFilter::id); void saveRecord(const model::Year&); void deleteYear(const model::Year&, type::YearFilter = type::YearFilter::id); private: std::vector parseRecords(MYSQL_STMT*); std::pair parseRecordWithSongCount(MYSQL_STMT*); std::shared_ptr valueBind(model::Year&); std::shared_ptr valueBindWithSongCount(model::Year&, int&); model::Year parseRecord(MYSQL_STMT*); }; } #endif