Metadata.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. #pragma warning disable CS1591
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.ComponentModel.DataAnnotations.Schema;
  6. namespace Jellyfin.Data.Entities
  7. {
  8. public abstract partial class Metadata
  9. {
  10. partial void Init();
  11. /// <summary>
  12. /// Default constructor. Protected due to being abstract.
  13. /// </summary>
  14. protected Metadata()
  15. {
  16. PersonRoles = new HashSet<PersonRole>();
  17. Genres = new HashSet<Genre>();
  18. Artwork = new HashSet<Artwork>();
  19. Ratings = new HashSet<Rating>();
  20. Sources = new HashSet<MetadataProviderId>();
  21. Init();
  22. }
  23. /// <summary>
  24. /// Public constructor with required data.
  25. /// </summary>
  26. /// <param name="title">The title or name of the object.</param>
  27. /// <param name="language">ISO-639-3 3-character language codes.</param>
  28. /// <param name="dateadded">The date the object was added.</param>
  29. /// <param name="datemodified">The date the object was last modified.</param>
  30. protected Metadata(string title, string language, DateTime dateadded, DateTime datemodified)
  31. {
  32. if (string.IsNullOrEmpty(title))
  33. {
  34. throw new ArgumentNullException(nameof(title));
  35. }
  36. this.Title = title;
  37. if (string.IsNullOrEmpty(language))
  38. {
  39. throw new ArgumentNullException(nameof(language));
  40. }
  41. this.Language = language;
  42. this.PersonRoles = new HashSet<PersonRole>();
  43. this.Genres = new HashSet<Genre>();
  44. this.Artwork = new HashSet<Artwork>();
  45. this.Ratings = new HashSet<Rating>();
  46. this.Sources = new HashSet<MetadataProviderId>();
  47. Init();
  48. }
  49. /*************************************************************************
  50. * Properties
  51. *************************************************************************/
  52. /// <summary>
  53. /// Backing field for Id.
  54. /// </summary>
  55. internal int _Id;
  56. /// <summary>
  57. /// When provided in a partial class, allows value of Id to be changed before setting.
  58. /// </summary>
  59. partial void SetId(int oldValue, ref int newValue);
  60. /// <summary>
  61. /// When provided in a partial class, allows value of Id to be changed before returning.
  62. /// </summary>
  63. partial void GetId(ref int result);
  64. /// <summary>
  65. /// Identity, Indexed, Required.
  66. /// </summary>
  67. [Key]
  68. [Required]
  69. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  70. public int Id
  71. {
  72. get
  73. {
  74. int value = _Id;
  75. GetId(ref value);
  76. return _Id = value;
  77. }
  78. protected set
  79. {
  80. int oldValue = _Id;
  81. SetId(oldValue, ref value);
  82. if (oldValue != value)
  83. {
  84. _Id = value;
  85. }
  86. }
  87. }
  88. /// <summary>
  89. /// Backing field for Title.
  90. /// </summary>
  91. protected string _Title;
  92. /// <summary>
  93. /// When provided in a partial class, allows value of Title to be changed before setting.
  94. /// </summary>
  95. partial void SetTitle(string oldValue, ref string newValue);
  96. /// <summary>
  97. /// When provided in a partial class, allows value of Title to be changed before returning.
  98. /// </summary>
  99. partial void GetTitle(ref string result);
  100. /// <summary>
  101. /// Required, Max length = 1024
  102. /// The title or name of the object.
  103. /// </summary>
  104. [Required]
  105. [MaxLength(1024)]
  106. [StringLength(1024)]
  107. public string Title
  108. {
  109. get
  110. {
  111. string value = _Title;
  112. GetTitle(ref value);
  113. return _Title = value;
  114. }
  115. set
  116. {
  117. string oldValue = _Title;
  118. SetTitle(oldValue, ref value);
  119. if (oldValue != value)
  120. {
  121. _Title = value;
  122. }
  123. }
  124. }
  125. /// <summary>
  126. /// Backing field for OriginalTitle.
  127. /// </summary>
  128. protected string _OriginalTitle;
  129. /// <summary>
  130. /// When provided in a partial class, allows value of OriginalTitle to be changed before setting.
  131. /// </summary>
  132. partial void SetOriginalTitle(string oldValue, ref string newValue);
  133. /// <summary>
  134. /// When provided in a partial class, allows value of OriginalTitle to be changed before returning.
  135. /// </summary>
  136. partial void GetOriginalTitle(ref string result);
  137. /// <summary>
  138. /// Max length = 1024
  139. /// </summary>
  140. [MaxLength(1024)]
  141. [StringLength(1024)]
  142. public string OriginalTitle
  143. {
  144. get
  145. {
  146. string value = _OriginalTitle;
  147. GetOriginalTitle(ref value);
  148. return _OriginalTitle = value;
  149. }
  150. set
  151. {
  152. string oldValue = _OriginalTitle;
  153. SetOriginalTitle(oldValue, ref value);
  154. if (oldValue != value)
  155. {
  156. _OriginalTitle = value;
  157. }
  158. }
  159. }
  160. /// <summary>
  161. /// Backing field for SortTitle.
  162. /// </summary>
  163. protected string _SortTitle;
  164. /// <summary>
  165. /// When provided in a partial class, allows value of SortTitle to be changed before setting.
  166. /// </summary>
  167. partial void SetSortTitle(string oldValue, ref string newValue);
  168. /// <summary>
  169. /// When provided in a partial class, allows value of SortTitle to be changed before returning.
  170. /// </summary>
  171. partial void GetSortTitle(ref string result);
  172. /// <summary>
  173. /// Max length = 1024
  174. /// </summary>
  175. [MaxLength(1024)]
  176. [StringLength(1024)]
  177. public string SortTitle
  178. {
  179. get
  180. {
  181. string value = _SortTitle;
  182. GetSortTitle(ref value);
  183. return _SortTitle = value;
  184. }
  185. set
  186. {
  187. string oldValue = _SortTitle;
  188. SetSortTitle(oldValue, ref value);
  189. if (oldValue != value)
  190. {
  191. _SortTitle = value;
  192. }
  193. }
  194. }
  195. /// <summary>
  196. /// Backing field for Language.
  197. /// </summary>
  198. protected string _Language;
  199. /// <summary>
  200. /// When provided in a partial class, allows value of Language to be changed before setting.
  201. /// </summary>
  202. partial void SetLanguage(string oldValue, ref string newValue);
  203. /// <summary>
  204. /// When provided in a partial class, allows value of Language to be changed before returning.
  205. /// </summary>
  206. partial void GetLanguage(ref string result);
  207. /// <summary>
  208. /// Required, Min length = 3, Max length = 3
  209. /// ISO-639-3 3-character language codes.
  210. /// </summary>
  211. [Required]
  212. [MinLength(3)]
  213. [MaxLength(3)]
  214. [StringLength(3)]
  215. public string Language
  216. {
  217. get
  218. {
  219. string value = _Language;
  220. GetLanguage(ref value);
  221. return _Language = value;
  222. }
  223. set
  224. {
  225. string oldValue = _Language;
  226. SetLanguage(oldValue, ref value);
  227. if (oldValue != value)
  228. {
  229. _Language = value;
  230. }
  231. }
  232. }
  233. /// <summary>
  234. /// Backing field for ReleaseDate.
  235. /// </summary>
  236. protected DateTimeOffset? _ReleaseDate;
  237. /// <summary>
  238. /// When provided in a partial class, allows value of ReleaseDate to be changed before setting.
  239. /// </summary>
  240. partial void SetReleaseDate(DateTimeOffset? oldValue, ref DateTimeOffset? newValue);
  241. /// <summary>
  242. /// When provided in a partial class, allows value of ReleaseDate to be changed before returning.
  243. /// </summary>
  244. partial void GetReleaseDate(ref DateTimeOffset? result);
  245. public DateTimeOffset? ReleaseDate
  246. {
  247. get
  248. {
  249. DateTimeOffset? value = _ReleaseDate;
  250. GetReleaseDate(ref value);
  251. return _ReleaseDate = value;
  252. }
  253. set
  254. {
  255. DateTimeOffset? oldValue = _ReleaseDate;
  256. SetReleaseDate(oldValue, ref value);
  257. if (oldValue != value)
  258. {
  259. _ReleaseDate = value;
  260. }
  261. }
  262. }
  263. /// <summary>
  264. /// Backing field for DateAdded.
  265. /// </summary>
  266. protected DateTime _DateAdded;
  267. /// <summary>
  268. /// When provided in a partial class, allows value of DateAdded to be changed before setting.
  269. /// </summary>
  270. partial void SetDateAdded(DateTime oldValue, ref DateTime newValue);
  271. /// <summary>
  272. /// When provided in a partial class, allows value of DateAdded to be changed before returning.
  273. /// </summary>
  274. partial void GetDateAdded(ref DateTime result);
  275. /// <summary>
  276. /// Required.
  277. /// </summary>
  278. [Required]
  279. public DateTime DateAdded
  280. {
  281. get
  282. {
  283. DateTime value = _DateAdded;
  284. GetDateAdded(ref value);
  285. return _DateAdded = value;
  286. }
  287. internal set
  288. {
  289. DateTime oldValue = _DateAdded;
  290. SetDateAdded(oldValue, ref value);
  291. if (oldValue != value)
  292. {
  293. _DateAdded = value;
  294. }
  295. }
  296. }
  297. /// <summary>
  298. /// Backing field for DateModified.
  299. /// </summary>
  300. protected DateTime _DateModified;
  301. /// <summary>
  302. /// When provided in a partial class, allows value of DateModified to be changed before setting.
  303. /// </summary>
  304. partial void SetDateModified(DateTime oldValue, ref DateTime newValue);
  305. /// <summary>
  306. /// When provided in a partial class, allows value of DateModified to be changed before returning.
  307. /// </summary>
  308. partial void GetDateModified(ref DateTime result);
  309. /// <summary>
  310. /// Required.
  311. /// </summary>
  312. [Required]
  313. public DateTime DateModified
  314. {
  315. get
  316. {
  317. DateTime value = _DateModified;
  318. GetDateModified(ref value);
  319. return _DateModified = value;
  320. }
  321. internal set
  322. {
  323. DateTime oldValue = _DateModified;
  324. SetDateModified(oldValue, ref value);
  325. if (oldValue != value)
  326. {
  327. _DateModified = value;
  328. }
  329. }
  330. }
  331. /// <summary>
  332. /// Required, ConcurrenyToken.
  333. /// </summary>
  334. [ConcurrencyCheck]
  335. [Required]
  336. public uint RowVersion { get; set; }
  337. public void OnSavingChanges()
  338. {
  339. RowVersion++;
  340. }
  341. /*************************************************************************
  342. * Navigation properties
  343. *************************************************************************/
  344. [ForeignKey("PersonRole_PersonRoles_Id")]
  345. public virtual ICollection<PersonRole> PersonRoles { get; protected set; }
  346. [ForeignKey("PersonRole_PersonRoles_Id")]
  347. public virtual ICollection<Genre> Genres { get; protected set; }
  348. [ForeignKey("PersonRole_PersonRoles_Id")]
  349. public virtual ICollection<Artwork> Artwork { get; protected set; }
  350. [ForeignKey("PersonRole_PersonRoles_Id")]
  351. public virtual ICollection<Rating> Ratings { get; protected set; }
  352. [ForeignKey("PersonRole_PersonRoles_Id")]
  353. public virtual ICollection<MetadataProviderId> Sources { get; protected set; }
  354. }
  355. }