feat: 租户账单公告通知接口
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using TakeoutSaaS.Domain.Tenants.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Serialization;
|
||||
|
||||
namespace TakeoutSaaS.Application.App.Tenants.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 租户公告 DTO。
|
||||
/// </summary>
|
||||
public sealed class TenantAnnouncementDto
|
||||
{
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long Id { get; init; }
|
||||
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long TenantId { get; init; }
|
||||
|
||||
public string Title { get; init; } = string.Empty;
|
||||
|
||||
public string Content { get; init; } = string.Empty;
|
||||
|
||||
public TenantAnnouncementType AnnouncementType { get; init; }
|
||||
|
||||
public int Priority { get; init; }
|
||||
|
||||
public DateTime EffectiveFrom { get; init; }
|
||||
|
||||
public DateTime? EffectiveTo { get; init; }
|
||||
|
||||
public bool IsActive { get; init; }
|
||||
|
||||
public bool IsRead { get; init; }
|
||||
|
||||
public DateTime? ReadAt { get; init; }
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using TakeoutSaaS.Domain.Tenants.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Serialization;
|
||||
|
||||
namespace TakeoutSaaS.Application.App.Tenants.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 租户账单 DTO。
|
||||
/// </summary>
|
||||
public sealed class TenantBillingDto
|
||||
{
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long Id { get; init; }
|
||||
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long TenantId { get; init; }
|
||||
|
||||
public string StatementNo { get; init; } = string.Empty;
|
||||
|
||||
public DateTime PeriodStart { get; init; }
|
||||
|
||||
public DateTime PeriodEnd { get; init; }
|
||||
|
||||
public decimal AmountDue { get; init; }
|
||||
|
||||
public decimal AmountPaid { get; init; }
|
||||
|
||||
public TenantBillingStatus Status { get; init; }
|
||||
|
||||
public DateTime DueDate { get; init; }
|
||||
|
||||
public string? LineItemsJson { get; init; }
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using TakeoutSaaS.Domain.Tenants.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Serialization;
|
||||
|
||||
namespace TakeoutSaaS.Application.App.Tenants.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 租户通知 DTO。
|
||||
/// </summary>
|
||||
public sealed class TenantNotificationDto
|
||||
{
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long Id { get; init; }
|
||||
|
||||
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
|
||||
public long TenantId { get; init; }
|
||||
|
||||
public string Title { get; init; } = string.Empty;
|
||||
|
||||
public string Message { get; init; } = string.Empty;
|
||||
|
||||
public TenantNotificationChannel Channel { get; init; }
|
||||
|
||||
public TenantNotificationSeverity Severity { get; init; }
|
||||
|
||||
public DateTime SentAt { get; init; }
|
||||
|
||||
public DateTime? ReadAt { get; init; }
|
||||
|
||||
public string? MetadataJson { get; init; }
|
||||
}
|
||||
Reference in New Issue
Block a user