#ifndef DATABASE_H #define DATABASE_H #include #include #include #include #include #include #include "model.h" #define BDD_FILE "kc.bdd" #define INIT_SCRIPT "init.sql" class Database { public: Database(); std::list GetUsers(); bool IsValidUser(wxString user, wxString password); User* LoadUser(wxString name); void LoadYear(User* user, int year); void UpdateOperation(struct operation op); wxString AddOperation(User* user, struct operation op); void DeleteOperation(struct operation op); void DeleteOperations(User* user, int month, int year); double GetAccountAmount(wxString id, int month, int year); void SetAccountAmount(int month, int year, wxString accountId, double amount); wxString AddAccount(User* user, struct Account ac); void UpdateAccount(struct Account ac); void DeleteAccount(struct Account ac); wxString AddCategory(User* user, struct category category); void UpdateCategory(struct category category); void DeleteCategory(User* user, struct category category); std::map > GetAllOperations(User* user); void GenerateMonth(User* user, int monthFrom, int yearFrom, int monthTo, int yearTo); void ChangePassword(User* user, wxString password); bool UserExists(wxString name); void ChangeName(User* user, wxString name); void NewUser(wxString name); void KillMe(User* user); private: wxSQLite3Database _db; void CreateDatabase(); wxString HashPassword(wxString password); }; #endif