Files
Core_Be/Interfaces/IPlatformBillingRepository.cs
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

67 lines
2.9 KiB
C#

using Fitness_core_BE.Models;
namespace Fitness_core_BE.Interfaces
{
public interface IPlatformBillingRepository
{
Task<List<ClientPackage>> GetPricingPlansAsync(CancellationToken ct = default);
Task<ClientPackage?> GetPackageByIdAsync(Guid packageId, CancellationToken ct = default);
Task AddPackageAsync(ClientPackage package, CancellationToken ct = default);
Task<List<ClientPackage>> GetOtherDefaultPackagesAsync(
Guid exceptPackageId,
CancellationToken ct = default);
Task<ClientPackage?> GetDefaultPackageAsync(CancellationToken ct = default);
Task<ClientPackage?> GetActivePackageForClientAsync(
Guid clientId,
CancellationToken ct = default);
Task<Client?> GetClientByIdAsync(Guid clientId, CancellationToken ct = default);
Task<List<ClientSubscription>> GetActiveClientSubscriptionsAsync(
Guid clientId,
CancellationToken ct = default);
Task<ClientSubscription?> GetActiveClientSubscriptionAsync(
Guid clientId,
CancellationToken ct = default);
Task AddClientSubscriptionAsync(
ClientSubscription subscription,
CancellationToken ct = default);
Task<List<ClientDeviceBilling>> GetActiveDeviceBillingsAsync(
Guid clientId,
CancellationToken ct = default);
Task<ClientDeviceBilling?> GetLatestActiveDeviceBillingAsync(
Guid clientId,
CancellationToken ct = default);
Task AddDeviceBillingAsync(
ClientDeviceBilling billing,
CancellationToken ct = default);
Task<bool> HasActiveDeviceAsync(Guid clientId, CancellationToken ct = default);
Task<List<Guid>> GetMonthlyBillingCandidatesAsync(
DateTime startOfMonth,
CancellationToken ct = default);
Task<List<ClientInvoice>> GetInvoicesByStatusAsync(
string status,
bool newestFirst,
CancellationToken ct = default);
Task<ClientInvoice?> GetInvoiceWithClientAsync(
Guid invoiceId,
bool includeBusinesses,
CancellationToken ct = default);
Task<ClientCard?> GetClientCardAsync(Guid clientId, CancellationToken ct = default);
Task<List<ClientCard>> GetClientCardsAsync(Guid clientId, CancellationToken ct = default);
Task<ClientCard?> GetClientCardByTokenAsync(Guid clientId, string cardToken, CancellationToken ct = default);
Task AddInvoiceAsync(
ClientInvoice invoice,
IReadOnlyCollection<ClientInvoiceItem> items,
CancellationToken ct = default);
Task<DevicePricingConfig?> GetDevicePricingConfigAsync(
CancellationToken ct = default);
Task AddDevicePricingConfigAsync(
DevicePricingConfig config,
CancellationToken ct = default);
}
}