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

namespace TakeoutSaaS.Domain.Coupons.Entities;

/// <summary>
/// 新客有礼门店配置。
/// </summary>
public sealed class NewCustomerGiftSetting : MultiTenantEntityBase
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public long StoreId { get; set; }

    /// <summary>
    /// 是否开启新客礼包。
    /// </summary>
    public bool GiftEnabled { get; set; }

    /// <summary>
    /// 礼包类型。
    /// </summary>
    public NewCustomerGiftType GiftType { get; set; } = NewCustomerGiftType.Coupon;

    /// <summary>
    /// 首单直减金额。
    /// </summary>
    public decimal? DirectReduceAmount { get; set; }

    /// <summary>
    /// 首单直减门槛金额。
    /// </summary>
    public decimal? DirectMinimumSpend { get; set; }

    /// <summary>
    /// 是否开启老带新分享。
    /// </summary>
    public bool InviteEnabled { get; set; }

    /// <summary>
    /// 分享渠道（JSON）。
    /// </summary>
    public string ShareChannelsJson { get; set; } = "[]";
}
