feat: implement Chatika account activation job for new club members

This commit is contained in:
masoodafar-web
2025-12-23 22:52:49 +03:30
parent 30144a07c8
commit 288b85a59b
10 changed files with 908 additions and 2 deletions
@@ -0,0 +1,64 @@
namespace CMSMicroservice.Application.Common.Interfaces;
/// <summary>
/// سرویس ارتباط با API چتیکا برای ساخت حساب کاربری
/// </summary>
public interface IChatikaApiService
{
/// <summary>
/// ایجاد حساب کاربری در چتیکا
/// </summary>
/// <param name="mobileNumber">شماره موبایل کاربر</param>
/// <param name="fullName">نام کامل کاربر</param>
/// <param name="cancellationToken">Cancellation token</param>
/// <returns>نتیجه ایجاد حساب</returns>
Task<ChatikaAccountResult> CreateAccountAsync(
string mobileNumber,
string fullName,
CancellationToken cancellationToken = default);
}
/// <summary>
/// نتیجه ایجاد حساب در چتیکا
/// </summary>
public class ChatikaAccountResult
{
/// <summary>
/// موفقیت عملیات
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// پیام خطا در صورت عدم موفقیت
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// شناسه کاربر در چتیکا
/// </summary>
public string? ChatikaUserId { get; set; }
/// <summary>
/// URL دسترسی به چتیکا
/// </summary>
public string? AccessUrl { get; set; }
/// <summary>
/// ایجاد نتیجه موفق
/// </summary>
public static ChatikaAccountResult Success(string? chatikaUserId = null, string? accessUrl = null) => new()
{
IsSuccess = true,
ChatikaUserId = chatikaUserId,
AccessUrl = accessUrl
};
/// <summary>
/// ایجاد نتیجه ناموفق
/// </summary>
public static ChatikaAccountResult Failure(string errorMessage) => new()
{
IsSuccess = false,
ErrorMessage = errorMessage
};
}