aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/DTO/DTOBaseItem.cs
blob: 1251f4ec401ddcd199e4f9b014405e4bd3ca7eec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Entities;

namespace MediaBrowser.Model.DTO
{
    /// <summary>
    /// This is strictly used as a data transfer object from the api layer.
    /// This holds information about a BaseItem in a format that is convenient for the client.
    /// </summary>
    public class DTOBaseItem : IHasProviderIds
    {
        public string Name { get; set; }
        public Guid Id { get; set; }
        public DateTime DateCreated { get; set; }

        public string SortName { get; set; }
        public DateTime? PremiereDate { get; set; }
        public string Path { get; set; }
        public string OfficialRating { get; set; }
        public string Overview { get; set; }
        public IEnumerable<string> Taglines { get; set; }

        public IEnumerable<string> Genres { get; set; }

        public string DisplayMediaType { get; set; }

        public float? UserRating { get; set; }
        public long? RunTimeTicks { get; set; }

        public string AspectRatio { get; set; }
        public int? ProductionYear { get; set; }

        public int? IndexNumber { get; set; }
        public int? ParentIndexNumber { get; set; }

        public string TrailerUrl { get; set; }

        public Dictionary<string, string> ProviderIds { get; set; }

        public bool HasBanner { get; set; }
        public bool HasArt { get; set; }
        public bool HasLogo { get; set; }
        public bool HasThumb { get; set; }
        public bool HasPrimaryImage { get; set; }

        public string Language { get; set; }
        
        public int BackdropCount { get; set; }

        public IEnumerable<DTOBaseItem> Children { get; set; }

        public bool IsFolder { get; set; }

        /// <summary>
        /// If the item is a Folder this will determine if it's the Root or not
        /// </summary>
        public bool? IsRoot { get; set; }

        /// <summary>
        /// If the item is a Folder this will determine if it's a VF or not
        /// </summary>
        public bool? IsVirtualFolder { get; set; }
        
        public Guid? ParentId { get; set; }

        public string Type { get; set; }

        public IEnumerable<BaseItemPerson> People { get; set; }
        public IEnumerable<BaseItemStudio> Studios { get; set; }

        /// <summary>
        /// If the item does not have a logo, this will hold the Id of the Parent that has one.
        /// </summary>
        public Guid? ParentLogoItemId { get; set; }

        /// <summary>
        /// If the item does not have any backdrops, this will hold the Id of the Parent that has one.
        /// </summary>
        public Guid? ParentBackdropItemId { get; set; }
        public int? ParentBackdropCount { get; set; }

        public IEnumerable<DTOBaseItem> LocalTrailers { get; set; }
        public int LocalTrailerCount { get; set; }

        /// <summary>
        /// Holds the virtual folder collection type
        /// </summary>
        public string VfType { get; set; }

        /// <summary>
        /// User data for this item based on the user it's being requested for
        /// </summary>
        public UserItemData UserData { get; set; }

        public ItemSpecialCounts SpecialCounts { get; set; }

        public AudioInfo AudioInfo { get; set; }
        public VideoInfo VideoInfo { get; set; }
      
        public bool IsType(Type type)
        {
            return IsType(type.Name);
        }

        public bool IsType(string type)
        {
            return Type.Equals(type, StringComparison.OrdinalIgnoreCase);
        }

        public bool IsNew { get; set; }
    }
}