using BetterGenshinImpact.Core.Script.Project;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace BetterGenshinImpact.Core.Script.Group;
public class ScriptGroupProject : ObservableObject
{
public int Order { get; set; }
public string Id { get; set; }
public string Name { get; set; }
public string Status { get; set; }
[JsonIgnore]
public string StatusDesc { get; set; }
///
/// 执行周期
/// 不在 ScheduleDescriptions 中则会被视为自定义Cron表达式
///
public string Schedule { get; set; }
[JsonIgnore]
public string ScheduleDesc { get; set; }
[JsonIgnore]
public ScriptProject Project { get; set; }
public ScriptGroupProject(int order, ScriptProject project)
{
Order = order;
Id = project.Manifest.Id;
Name = project.Manifest.Name;
Status = "Enabled";
StatusDesc = ScriptGroupProjectExtensions.StatusDescriptions[Status];
Schedule = "Daily";
ScheduleDesc = ScriptGroupProjectExtensions.ScheduleDescriptions.GetValueOrDefault(Schedule, "自定义周期");
Project = project;
}
}
public static class ScriptGroupProjectExtensions
{
public static readonly Dictionary StatusDescriptions = new()
{
{ "Enabled", "启用" },
{ "Disabled", "禁用" }
};
public static readonly Dictionary ScheduleDescriptions = new()
{
{ "Daily", "每日" },
{ "EveryTwoDays", "间隔两天" },
{ "Monday", "每周一" },
{ "Tuesday", "每周二" },
{ "Wednesday", "每周三" },
{ "Thursday", "每周四" },
{ "Friday", "每周五" },
{ "Saturday", "每周六" },
{ "Sunday", "每周日" }
};
}