2025-07-19 04:02:09 -05:00
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
|
|
|
|
|
|
namespace FreeTubeSync.Model;
|
|
|
|
|
|
|
|
|
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
|
|
|
public class Profile
|
|
|
|
|
{
|
|
|
|
|
[Key]
|
|
|
|
|
public string _id { get; set; } = string.Empty;
|
|
|
|
|
public string name { get; set; } = string.Empty;
|
|
|
|
|
public string bgColor { get; set; } = string.Empty;
|
|
|
|
|
public string textColor { get; set; } = string.Empty;
|
|
|
|
|
public List<Subscription> subscriptions { get; set; } = [];
|
|
|
|
|
|
|
|
|
|
public void Update(Profile other)
|
|
|
|
|
{
|
|
|
|
|
if (other.name != name) name = other.name;
|
|
|
|
|
if (other.bgColor != bgColor) bgColor = other.bgColor;
|
|
|
|
|
if (other.textColor != textColor) textColor = other.textColor;
|
2025-07-21 17:08:17 -05:00
|
|
|
var remove = new List<Subscription>();
|
|
|
|
|
foreach (var sub in subscriptions)
|
|
|
|
|
{
|
|
|
|
|
if (other.subscriptions.Any(x => x.id == sub.id)) continue;
|
|
|
|
|
remove.Add(sub);
|
|
|
|
|
}
|
|
|
|
|
subscriptions.RemoveAll(x => remove.Contains(x));
|
|
|
|
|
remove.Clear();
|
|
|
|
|
foreach (var sub in other.subscriptions)
|
|
|
|
|
{
|
|
|
|
|
if (subscriptions.Any(x => x.id == sub.id)) continue;
|
|
|
|
|
remove.Add(sub);
|
|
|
|
|
}
|
|
|
|
|
subscriptions.AddRange(remove);
|
2025-07-19 04:02:09 -05:00
|
|
|
}
|
|
|
|
|
}
|