using Newtonsoft.Json;
using OF_DL.Models.Dtos.Subscriptions;

namespace OF_DL.Models.Dtos.Common;

public class SubscribedByDataDto
{
    [JsonProperty("price")] public string? Price { get; set; }

    [JsonProperty("newPrice")] public string? NewPrice { get; set; }

    [JsonProperty("regularPrice")] public string? RegularPrice { get; set; }

    [JsonProperty("subscribePrice")] public string? SubscribePrice { get; set; }

    [JsonProperty("discountPercent")] public int? DiscountPercent { get; set; }

    [JsonProperty("discountPeriod")] public int? DiscountPeriod { get; set; }

    [JsonProperty("subscribeAt")] public DateTime? SubscribeAt { get; set; }

    [JsonProperty("expiredAt")] public DateTime? ExpiredAt { get; set; }

    [JsonProperty("renewedAt")] public DateTime? RenewedAt { get; set; }

    [JsonProperty("discountFinishedAt")] public object? DiscountFinishedAt { get; set; } = new();

    [JsonProperty("discountStartedAt")] public object? DiscountStartedAt { get; set; } = new();

    [JsonProperty("status")] public string Status { get; set; } = "";

    [JsonProperty("isMuted")] public bool? IsMuted { get; set; }

    [JsonProperty("unsubscribeReason")] public string UnsubscribeReason { get; set; } = "";

    [JsonProperty("duration")] public string Duration { get; set; } = "";

    [JsonProperty("showPostsInFeed")] public bool? ShowPostsInFeed { get; set; }

    [JsonProperty("subscribes")] public List<SubscribeDto> Subscribes { get; set; } = [];

    [JsonProperty("hasActivePaidSubscriptions")]
    public bool? HasActivePaidSubscriptions { get; set; }
}
