using RMuseum.Models.Accounting;
using RMuseum.Models.Accounting.ViewModels;
using RSecurityBackend.Models.Generic;
using System;
using System.Threading.Tasks;
namespace RMuseum.Services
{
///
/// donation service
///
public interface IDonationService
{
///
/// new donation
///
///
///
///
Task> AddDonation(Guid editingUserId, GanjoorDonationViewModel donation);
///
/// delete donation
///
///
///
///
Task> DeleteDonation(Guid editingUserId, int id);
///
/// update donation
///
///
///
///
///
Task> UpdateDonation(Guid editingUserId, int id, UpdateDateDescriptionViewModel updateModel);
///
/// new expense
///
///
///
///
Task> AddExpense(Guid editingUserId, GanjoorExpense expense);
///
/// update expense
///
///
///
///
///
Task> UpdateExpense(Guid editingUserId, int id, UpdateDateDescriptionViewModel updateModel);
///
/// delete expense
///
///
///
///
Task> DeleteExpense(Guid editingUserId, int id);
///
/// parse html of https://ganjoor.net/donate/ and fill the records
///
///
Task> InitializeRecords();
///
/// regenerate donations page
///
///
///
///
Task> RegenerateDonationsPage(Guid editingUserId, string note);
///
/// returns all donations
///
///
Task> GetDonations();
///
/// get donation by id
///
///
///
Task> GetDonation(int id);
///
/// returns all expenses
///
///
Task> GetExpenses();
///
/// get expense by id
///
///
///
Task> GetExpense(int id);
///
/// Show Donating Information (temporary switch off/on)
///
bool ShowAccountInfo { get; }
}
}