89 lines
No EOL
1.8 KiB
C#
89 lines
No EOL
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
using System.Globalization;
|
|
|
|
[Serializable]
|
|
public class MailEntry
|
|
{
|
|
public string id;
|
|
public string type;
|
|
public int priority;
|
|
public MailLogic logic;
|
|
public MailVisuals visuals;
|
|
public MailContent content;
|
|
public string rewards_table_id;
|
|
public List<MailAction> actions;
|
|
|
|
}
|
|
|
|
[Serializable]
|
|
public class MailLogic
|
|
{
|
|
public string date_start;
|
|
public string date_end;
|
|
public bool is_deletable;
|
|
|
|
private const string DATE_FORMAT = "yyyy.MM.dd HH:mm:ss";
|
|
|
|
[JsonIgnore]
|
|
public DateTime? EndDate
|
|
{
|
|
get
|
|
{
|
|
if (date_end == "-1" || string.IsNullOrEmpty(date_end))
|
|
return null;
|
|
|
|
if (DateTime.TryParseExact(date_end, DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
|
|
return parsedDate;
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public DateTime? StartDate
|
|
{
|
|
get
|
|
{
|
|
if (date_start == "-1" || string.IsNullOrEmpty(date_start))
|
|
return null;
|
|
|
|
if (DateTime.TryParseExact(date_start, DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
|
|
return parsedDate;
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
public class MailVisuals
|
|
{
|
|
public string prefab;
|
|
public string icon_id;
|
|
public string sender_name;
|
|
}
|
|
|
|
[Serializable]
|
|
public class MailContent
|
|
{
|
|
public string title;
|
|
public string body;
|
|
}
|
|
|
|
[Serializable]
|
|
public class MailAction
|
|
{
|
|
public string type;
|
|
public string label;
|
|
}
|
|
|
|
[Serializable]
|
|
public class RewardItem
|
|
{
|
|
public string type;
|
|
public string id;
|
|
public int amount;
|
|
public string name;
|
|
} |