feat: implement Kavenegar SMS service and refactor system configurations to use static constants
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 1m38s

This commit is contained in:
masoodafar-web
2025-12-26 09:04:27 +03:30
parent 9d2b5ad2d4
commit 02e2f8111f
51 changed files with 4064 additions and 1388 deletions
@@ -1,42 +0,0 @@
namespace CMSMicroservice.Domain.Entities.Configuration;
/// <summary>
/// تنظیمات پویای سیستم - قابل تغییر بدون Deployment
/// </summary>
public class SystemConfiguration : BaseAuditableEntity
{
/// <summary>
/// محدوده تنظیمات (System, Network, Club, Commission)
/// </summary>
public ConfigurationScope Scope { get; set; }
/// <summary>
/// کلید تنظیم (مثلاً "MaxWeeklyBalancesPerUser")
/// </summary>
public string Key { get; set; }
/// <summary>
/// مقدار به‌صورت رشته (تفسیر در Application Layer)
/// </summary>
public string Value { get; set; }
/// <summary>
/// نوع داده برای Validation و UI (Int/Decimal/Bool/String/Json)
/// </summary>
public string? DataType { get; set; }
/// <summary>
/// توضیحات برای ادمین
/// </summary>
public string? Description { get; set; }
/// <summary>
/// فعال یا غیرفعال
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// SystemConfigurationHistory Collection Navigation Reference
/// </summary>
public virtual ICollection<SystemConfigurationHistory>? SystemConfigurationHistories { get; set; }
}
@@ -1,47 +0,0 @@
namespace CMSMicroservice.Domain.Entities.History;
/// <summary>
/// تاریخچه تغییرات تنظیمات سیستم (برای Audit)
/// </summary>
public class SystemConfigurationHistory : BaseAuditableEntity
{
/// <summary>
/// شناسه تنظیم
/// </summary>
public long ConfigurationId { get; set; }
/// <summary>
/// SystemConfiguration Navigation Property
/// </summary>
public virtual SystemConfiguration? Configuration { get; set; }
/// <summary>
/// محدوده تنظیمات
/// </summary>
public ConfigurationScope Scope { get; set; }
/// <summary>
/// کلید تنظیم
/// </summary>
public string Key { get; set; }
/// <summary>
/// مقدار قبل از تغییر
/// </summary>
public string OldValue { get; set; }
/// <summary>
/// مقدار بعد از تغییر
/// </summary>
public string NewValue { get; set; }
/// <summary>
/// دلیل تغییر (اختیاری)
/// </summary>
public string? Reason { get; set; }
/// <summary>
/// چه کسی انجام داده (UserId یا "System")
/// </summary>
public string? PerformedBy { get; set; }
}