//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
#nullable disable
#pragma warning disable CA1002, CA2227, CS1591
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Providers
{
public class MetadataResult
{
// Images aren't always used so the allocation is a waste a lot of the time
private List _images;
private List<(string Url, ImageType Type)> _remoteImages;
private List _people;
public MetadataResult()
{
ResultLanguage = "en";
}
public List Images
{
get => _images ??= [];
set => _images = value;
}
public List<(string Url, ImageType Type)> RemoteImages
{
get => _remoteImages ??= [];
set => _remoteImages = value;
}
public IReadOnlyList People
{
get => _people;
set => _people = value?.ToList();
}
public bool HasMetadata { get; set; }
public T Item { get; set; }
public string ResultLanguage { get; set; }
public string Provider { get; set; }
public bool QueriedById { get; set; }
public void AddPerson(PersonInfo p)
{
People ??= new List();
PeopleHelper.AddPerson(_people, p);
}
///
/// Not only does this clear, but initializes the list so that services can differentiate between a null list and zero people.
///
public void ResetPeople()
{
if (People is null)
{
People = new List();
}
else
{
_people.Clear();
}
}
}
}