Handling of paddle purchases and add-ons.

This commit is contained in:
Burak Kaan Köse
2026-03-19 01:50:14 +01:00
parent f306f6eb1c
commit b0ee5c9974
26 changed files with 779 additions and 513 deletions
@@ -0,0 +1,26 @@
#nullable enable
namespace Wino.Core.Domain.Models.Accounts;
public sealed class WinoAccountApiResult<T>
{
public bool IsSuccess { get; init; }
public string? ErrorCode { get; init; }
public string? ErrorMessage { get; init; }
public T? Result { get; init; }
public static WinoAccountApiResult<T> Success(T result)
=> new()
{
IsSuccess = true,
Result = result
};
public static WinoAccountApiResult<T> Failure(string? errorCode, string? errorMessage = null)
=> new()
{
IsSuccess = false,
ErrorCode = errorCode,
ErrorMessage = errorMessage
};
}
@@ -7,6 +7,7 @@ public sealed class WinoAccountOperationResult
{
public bool IsSuccess { get; init; }
public string? ErrorCode { get; init; }
public string? ErrorMessage { get; init; }
public WinoAccount? Account { get; init; }
public static WinoAccountOperationResult Success(WinoAccount account)
@@ -16,10 +17,11 @@ public sealed class WinoAccountOperationResult
Account = account
};
public static WinoAccountOperationResult Failure(string? errorCode)
public static WinoAccountOperationResult Failure(string? errorCode, string? errorMessage = null)
=> new()
{
IsSuccess = false,
ErrorCode = errorCode
ErrorCode = errorCode,
ErrorMessage = errorMessage
};
}
@@ -0,0 +1,12 @@
using System;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Accounts;
public sealed record WinoAddOnInfo(
WinoAddOnProductType ProductType,
bool IsPurchased,
int? UsageCount = null,
int? UsageLimit = null,
double UsagePercentage = 0,
DateTimeOffset? RenewalDateUtc = null);