mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-31 12:14:46 -04:00
79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kyoo.Models
|
|
{
|
|
public class People : IMergable<People>
|
|
{
|
|
[JsonIgnore] public long ID { get; set; }
|
|
public string Slug { get; set; }
|
|
public string Name { get; set; }
|
|
public string Role;
|
|
public string Type;
|
|
[JsonIgnore] public string ImgPrimary { get; set; }
|
|
public string ExternalIDs { get; set; }
|
|
|
|
public virtual IEnumerable<PeopleLink> Roles { get; set; }
|
|
|
|
public People() {}
|
|
|
|
public People(string slug, string name, string imgPrimary, string externalIDs)
|
|
{
|
|
Slug = slug;
|
|
Name = name;
|
|
ImgPrimary = imgPrimary;
|
|
ExternalIDs = externalIDs;
|
|
}
|
|
|
|
public People(string slug, string name, string role, string type, string imgPrimary, string externalIDs)
|
|
{
|
|
Slug = slug;
|
|
Name = name;
|
|
Role = role;
|
|
Type = type;
|
|
ImgPrimary = imgPrimary;
|
|
ExternalIDs = externalIDs;
|
|
}
|
|
|
|
public People SetRoleType(string role, string type)
|
|
{
|
|
Role = role;
|
|
Type = type;
|
|
return this;
|
|
}
|
|
|
|
public PeopleLink ToLink(Show show)
|
|
{
|
|
return new PeopleLink
|
|
{
|
|
People = this,
|
|
PeopleID = ID,
|
|
Role = Role,
|
|
Type = Type,
|
|
Show = show,
|
|
ShowID = show.ID
|
|
};
|
|
}
|
|
|
|
public People Merge(People other)
|
|
{
|
|
if (other == null)
|
|
return this;
|
|
if (ID == -1)
|
|
ID = other.ID;
|
|
if (Slug == null)
|
|
Slug = other.Slug;
|
|
if (Name == null)
|
|
Name = other.Name;
|
|
if (Role == null)
|
|
Role = other.Role;
|
|
if (Type == null)
|
|
Type = other.Type;
|
|
if (ImgPrimary == null)
|
|
ImgPrimary = other.ImgPrimary;
|
|
ExternalIDs += '|' + other.ExternalIDs;
|
|
return this;
|
|
}
|
|
}
|
|
}
|