PJ/Assets/scripts/dotfs_scripts/MailModels.cs

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;
}