using TakeoutSaaS.Domain.Engagement.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Engagement.Entities;

/// <summary>
/// 签到活动配置。
/// </summary>
public sealed class CheckInCampaign : MultiTenantEntityBase
{
    /// <summary>
    /// 活动名称。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 活动描述。
    /// </summary>
    public string? Description { get; set; }

    /// <summary>
    /// 开始日期。
    /// </summary>
    public DateTime StartDate { get; set; }

    /// <summary>
    /// 结束日期。
    /// </summary>
    public DateTime EndDate { get; set; }

    /// <summary>
    /// 支持补签次数。
    /// </summary>
    public int AllowMakeupCount { get; set; }

    /// <summary>
    /// 连签奖励 JSON。
    /// </summary>
    public string RewardsJson { get; set; } = string.Empty;

    /// <summary>
    /// 状态。
    /// </summary>
    public CheckInCampaignStatus Status { get; set; } = CheckInCampaignStatus.Draft;
}
