Jellyfin.cs 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140
  1. //------------------------------------------------------------------------------
  2. // <auto-generated>
  3. // This code was generated from a template.
  4. //
  5. // Manual changes to this file may cause unexpected behavior in your application.
  6. // Manual changes to this file will be overwritten if the code is regenerated.
  7. //
  8. // Produced by Entity Framework Visual Editor
  9. // https://github.com/msawczyn/EFDesigner
  10. // </auto-generated>
  11. //------------------------------------------------------------------------------
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Linq;
  15. using System.ComponentModel.DataAnnotations.Schema;
  16. using Microsoft.EntityFrameworkCore;
  17. namespace Jellyfin.Data.DbContexts
  18. {
  19. /// <inheritdoc/>
  20. public partial class Jellyfin : DbContext
  21. {
  22. #region DbSets
  23. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Artwork> Artwork { get; set; }
  24. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Book> Books { get; set; }
  25. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.BookMetadata> BookMetadata { get; set; }
  26. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Chapter> Chapters { get; set; }
  27. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Collection> Collections { get; set; }
  28. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.CollectionItem> CollectionItems { get; set; }
  29. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Company> Companies { get; set; }
  30. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.CompanyMetadata> CompanyMetadata { get; set; }
  31. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.CustomItem> CustomItems { get; set; }
  32. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.CustomItemMetadata> CustomItemMetadata { get; set; }
  33. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Episode> Episodes { get; set; }
  34. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.EpisodeMetadata> EpisodeMetadata { get; set; }
  35. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Genre> Genres { get; set; }
  36. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Group> Groups { get; set; }
  37. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Library> Libraries { get; set; }
  38. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.LibraryItem> LibraryItems { get; set; }
  39. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.LibraryRoot> LibraryRoot { get; set; }
  40. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MediaFile> MediaFiles { get; set; }
  41. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MediaFileStream> MediaFileStream { get; set; }
  42. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Metadata> Metadata { get; set; }
  43. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MetadataProvider> MetadataProviders { get; set; }
  44. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MetadataProviderId> MetadataProviderIds { get; set; }
  45. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Movie> Movies { get; set; }
  46. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MovieMetadata> MovieMetadata { get; set; }
  47. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MusicAlbum> MusicAlbums { get; set; }
  48. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.MusicAlbumMetadata> MusicAlbumMetadata { get; set; }
  49. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Permission> Permissions { get; set; }
  50. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Person> People { get; set; }
  51. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.PersonRole> PersonRoles { get; set; }
  52. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Photo> Photo { get; set; }
  53. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.PhotoMetadata> PhotoMetadata { get; set; }
  54. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Preference> Preferences { get; set; }
  55. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.ProviderMapping> ProviderMappings { get; set; }
  56. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Rating> Ratings { get; set; }
  57. /// <summary>
  58. /// Repository for global::Jellyfin.Data.Entities.RatingSource - This is the entity to
  59. /// store review ratings, not age ratings
  60. /// </summary>
  61. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.RatingSource> RatingSources { get; set; }
  62. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Release> Releases { get; set; }
  63. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Season> Seasons { get; set; }
  64. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.SeasonMetadata> SeasonMetadata { get; set; }
  65. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Series> Series { get; set; }
  66. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.SeriesMetadata> SeriesMetadata { get; set; }
  67. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.Track> Tracks { get; set; }
  68. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.TrackMetadata> TrackMetadata { get; set; }
  69. public virtual Microsoft.EntityFrameworkCore.DbSet<global::Jellyfin.Data.Entities.User> Users { get; set; }
  70. #endregion DbSets
  71. /// <summary>
  72. /// Default connection string
  73. /// </summary>
  74. public static string ConnectionString { get; set; } = @"Data Source=jellyfin.db";
  75. /// <inheritdoc />
  76. public Jellyfin(DbContextOptions<Jellyfin> options) : base(options)
  77. {
  78. }
  79. partial void CustomInit(DbContextOptionsBuilder optionsBuilder);
  80. /// <inheritdoc />
  81. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  82. {
  83. CustomInit(optionsBuilder);
  84. }
  85. partial void OnModelCreatingImpl(ModelBuilder modelBuilder);
  86. partial void OnModelCreatedImpl(ModelBuilder modelBuilder);
  87. /// <inheritdoc />
  88. protected override void OnModelCreating(ModelBuilder modelBuilder)
  89. {
  90. base.OnModelCreating(modelBuilder);
  91. OnModelCreatingImpl(modelBuilder);
  92. modelBuilder.HasDefaultSchema("jellyfin");
  93. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>()
  94. .ToTable("Artwork")
  95. .HasKey(t => t.Id);
  96. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>()
  97. .Property(t => t.Id)
  98. .IsRequired()
  99. .HasField("_Id")
  100. .UsePropertyAccessMode(PropertyAccessMode.Property)
  101. .ValueGeneratedOnAdd();
  102. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>()
  103. .Property(t => t.Path)
  104. .HasMaxLength(65535)
  105. .IsRequired()
  106. .HasField("_Path")
  107. .UsePropertyAccessMode(PropertyAccessMode.Property);
  108. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>()
  109. .Property(t => t.Kind)
  110. .IsRequired()
  111. .HasField("_Kind")
  112. .UsePropertyAccessMode(PropertyAccessMode.Property);
  113. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>().HasIndex(t => t.Kind);
  114. modelBuilder.Entity<global::Jellyfin.Data.Entities.Artwork>()
  115. .Property(t => t.Timestamp)
  116. .IsRequired()
  117. .HasField("_Timestamp")
  118. .UsePropertyAccessMode(PropertyAccessMode.Property)
  119. .IsRowVersion();
  120. modelBuilder.Entity<global::Jellyfin.Data.Entities.Book>()
  121. .HasMany(x => x.BookMetadata)
  122. .WithOne()
  123. .HasForeignKey("BookMetadata_BookMetadata_Id")
  124. .IsRequired();
  125. modelBuilder.Entity<global::Jellyfin.Data.Entities.Book>()
  126. .HasMany(x => x.Releases)
  127. .WithOne()
  128. .HasForeignKey("Release_Releases_Id")
  129. .IsRequired();
  130. modelBuilder.Entity<global::Jellyfin.Data.Entities.BookMetadata>()
  131. .Property(t => t.ISBN)
  132. .HasField("_ISBN")
  133. .UsePropertyAccessMode(PropertyAccessMode.Property);
  134. modelBuilder.Entity<global::Jellyfin.Data.Entities.BookMetadata>()
  135. .HasMany(x => x.Publishers)
  136. .WithOne()
  137. .HasForeignKey("Company_Publishers_Id")
  138. .IsRequired();
  139. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  140. .ToTable("Chapter")
  141. .HasKey(t => t.Id);
  142. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  143. .Property(t => t.Id)
  144. .IsRequired()
  145. .HasField("_Id")
  146. .UsePropertyAccessMode(PropertyAccessMode.Property)
  147. .ValueGeneratedOnAdd();
  148. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  149. .Property(t => t.Name)
  150. .HasMaxLength(1024)
  151. .HasField("_Name")
  152. .UsePropertyAccessMode(PropertyAccessMode.Property);
  153. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  154. .Property(t => t.Language)
  155. .HasMaxLength(3)
  156. .IsRequired()
  157. .HasField("_Language")
  158. .UsePropertyAccessMode(PropertyAccessMode.Property);
  159. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  160. .Property(t => t.TimeStart)
  161. .IsRequired()
  162. .HasField("_TimeStart")
  163. .UsePropertyAccessMode(PropertyAccessMode.Property);
  164. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  165. .Property(t => t.TimeEnd)
  166. .HasField("_TimeEnd")
  167. .UsePropertyAccessMode(PropertyAccessMode.Property);
  168. modelBuilder.Entity<global::Jellyfin.Data.Entities.Chapter>()
  169. .Property(t => t.Timestamp)
  170. .IsRequired()
  171. .HasField("_Timestamp")
  172. .UsePropertyAccessMode(PropertyAccessMode.Property)
  173. .IsRowVersion();
  174. modelBuilder.Entity<global::Jellyfin.Data.Entities.Collection>()
  175. .ToTable("Collection")
  176. .HasKey(t => t.Id);
  177. modelBuilder.Entity<global::Jellyfin.Data.Entities.Collection>()
  178. .Property(t => t.Id)
  179. .IsRequired()
  180. .HasField("_Id")
  181. .UsePropertyAccessMode(PropertyAccessMode.Property)
  182. .ValueGeneratedOnAdd();
  183. modelBuilder.Entity<global::Jellyfin.Data.Entities.Collection>()
  184. .Property(t => t.Name)
  185. .HasMaxLength(1024)
  186. .HasField("_Name")
  187. .UsePropertyAccessMode(PropertyAccessMode.Property);
  188. modelBuilder.Entity<global::Jellyfin.Data.Entities.Collection>()
  189. .Property(t => t.Timestamp)
  190. .IsRequired()
  191. .HasField("_Timestamp")
  192. .UsePropertyAccessMode(PropertyAccessMode.Property)
  193. .IsRowVersion();
  194. modelBuilder.Entity<global::Jellyfin.Data.Entities.Collection>()
  195. .HasMany(x => x.CollectionItem)
  196. .WithOne()
  197. .HasForeignKey("CollectionItem_CollectionItem_Id")
  198. .IsRequired();
  199. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  200. .ToTable("CollectionItem")
  201. .HasKey(t => t.Id);
  202. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  203. .Property(t => t.Id)
  204. .IsRequired()
  205. .HasField("_Id")
  206. .UsePropertyAccessMode(PropertyAccessMode.Property)
  207. .ValueGeneratedOnAdd();
  208. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  209. .Property(t => t.Timestamp)
  210. .IsRequired()
  211. .HasField("_Timestamp")
  212. .UsePropertyAccessMode(PropertyAccessMode.Property)
  213. .IsRowVersion();
  214. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  215. .HasOne(x => x.LibraryItem)
  216. .WithOne()
  217. .HasForeignKey<global::Jellyfin.Data.Entities.CollectionItem>("LibraryItem_Id")
  218. .IsRequired();
  219. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  220. .HasOne(x => x.Next)
  221. .WithOne()
  222. .HasForeignKey<global::Jellyfin.Data.Entities.CollectionItem>("CollectionItem_Next_Id")
  223. .IsRequired();
  224. modelBuilder.Entity<global::Jellyfin.Data.Entities.CollectionItem>()
  225. .HasOne(x => x.Previous)
  226. .WithOne()
  227. .HasForeignKey<global::Jellyfin.Data.Entities.CollectionItem>("CollectionItem_Previous_Id")
  228. .IsRequired();
  229. modelBuilder.Entity<global::Jellyfin.Data.Entities.Company>()
  230. .ToTable("Company")
  231. .HasKey(t => t.Id);
  232. modelBuilder.Entity<global::Jellyfin.Data.Entities.Company>()
  233. .Property(t => t.Id)
  234. .IsRequired()
  235. .HasField("_Id")
  236. .UsePropertyAccessMode(PropertyAccessMode.Property)
  237. .ValueGeneratedOnAdd();
  238. modelBuilder.Entity<global::Jellyfin.Data.Entities.Company>()
  239. .Property(t => t.Timestamp)
  240. .IsRequired()
  241. .HasField("_Timestamp")
  242. .UsePropertyAccessMode(PropertyAccessMode.Property)
  243. .IsRowVersion();
  244. modelBuilder.Entity<global::Jellyfin.Data.Entities.Company>()
  245. .HasMany(x => x.CompanyMetadata)
  246. .WithOne()
  247. .HasForeignKey("CompanyMetadata_CompanyMetadata_Id")
  248. .IsRequired();
  249. modelBuilder.Entity<global::Jellyfin.Data.Entities.Company>()
  250. .HasOne(x => x.Parent)
  251. .WithOne()
  252. .HasForeignKey<global::Jellyfin.Data.Entities.Company>("Company_Parent_Id")
  253. .IsRequired();
  254. modelBuilder.Entity<global::Jellyfin.Data.Entities.CompanyMetadata>()
  255. .Property(t => t.Description)
  256. .HasMaxLength(65535)
  257. .HasField("_Description")
  258. .UsePropertyAccessMode(PropertyAccessMode.Property);
  259. modelBuilder.Entity<global::Jellyfin.Data.Entities.CompanyMetadata>()
  260. .Property(t => t.Headquarters)
  261. .HasMaxLength(255)
  262. .HasField("_Headquarters")
  263. .UsePropertyAccessMode(PropertyAccessMode.Property);
  264. modelBuilder.Entity<global::Jellyfin.Data.Entities.CompanyMetadata>()
  265. .Property(t => t.Country)
  266. .HasMaxLength(2)
  267. .HasField("_Country")
  268. .UsePropertyAccessMode(PropertyAccessMode.Property);
  269. modelBuilder.Entity<global::Jellyfin.Data.Entities.CompanyMetadata>()
  270. .Property(t => t.Homepage)
  271. .HasMaxLength(1024)
  272. .HasField("_Homepage")
  273. .UsePropertyAccessMode(PropertyAccessMode.Property);
  274. modelBuilder.Entity<global::Jellyfin.Data.Entities.CustomItem>()
  275. .HasMany(x => x.CustomItemMetadata)
  276. .WithOne()
  277. .HasForeignKey("CustomItemMetadata_CustomItemMetadata_Id")
  278. .IsRequired();
  279. modelBuilder.Entity<global::Jellyfin.Data.Entities.CustomItem>()
  280. .HasMany(x => x.Releases)
  281. .WithOne()
  282. .HasForeignKey("Release_Releases_Id")
  283. .IsRequired();
  284. modelBuilder.Entity<global::Jellyfin.Data.Entities.Episode>()
  285. .Property(t => t.EpisodeNumber)
  286. .HasField("_EpisodeNumber")
  287. .UsePropertyAccessMode(PropertyAccessMode.Property);
  288. modelBuilder.Entity<global::Jellyfin.Data.Entities.Episode>()
  289. .HasMany(x => x.Releases)
  290. .WithOne()
  291. .HasForeignKey("Release_Releases_Id")
  292. .IsRequired();
  293. modelBuilder.Entity<global::Jellyfin.Data.Entities.Episode>()
  294. .HasMany(x => x.EpisodeMetadata)
  295. .WithOne()
  296. .HasForeignKey("EpisodeMetadata_EpisodeMetadata_Id")
  297. .IsRequired();
  298. modelBuilder.Entity<global::Jellyfin.Data.Entities.EpisodeMetadata>()
  299. .Property(t => t.Outline)
  300. .HasMaxLength(1024)
  301. .HasField("_Outline")
  302. .UsePropertyAccessMode(PropertyAccessMode.Property);
  303. modelBuilder.Entity<global::Jellyfin.Data.Entities.EpisodeMetadata>()
  304. .Property(t => t.Plot)
  305. .HasMaxLength(65535)
  306. .HasField("_Plot")
  307. .UsePropertyAccessMode(PropertyAccessMode.Property);
  308. modelBuilder.Entity<global::Jellyfin.Data.Entities.EpisodeMetadata>()
  309. .Property(t => t.Tagline)
  310. .HasMaxLength(1024)
  311. .HasField("_Tagline")
  312. .UsePropertyAccessMode(PropertyAccessMode.Property);
  313. modelBuilder.Entity<global::Jellyfin.Data.Entities.Genre>()
  314. .ToTable("Genre")
  315. .HasKey(t => t.Id);
  316. modelBuilder.Entity<global::Jellyfin.Data.Entities.Genre>()
  317. .Property(t => t.Id)
  318. .IsRequired()
  319. .HasField("_Id")
  320. .UsePropertyAccessMode(PropertyAccessMode.Property)
  321. .ValueGeneratedOnAdd();
  322. modelBuilder.Entity<global::Jellyfin.Data.Entities.Genre>()
  323. .Property(t => t.Name)
  324. .HasMaxLength(255)
  325. .IsRequired()
  326. .HasField("_Name")
  327. .UsePropertyAccessMode(PropertyAccessMode.Property);
  328. modelBuilder.Entity<global::Jellyfin.Data.Entities.Genre>().HasIndex(t => t.Name)
  329. .IsUnique();
  330. modelBuilder.Entity<global::Jellyfin.Data.Entities.Genre>()
  331. .Property(t => t.Timestamp)
  332. .IsRequired()
  333. .HasField("_Timestamp")
  334. .UsePropertyAccessMode(PropertyAccessMode.Property)
  335. .IsRowVersion();
  336. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  337. .ToTable("Groups")
  338. .HasKey(t => t.Id);
  339. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  340. .Property(t => t.Id)
  341. .IsRequired()
  342. .ValueGeneratedOnAdd();
  343. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  344. .Property(t => t.Name)
  345. .HasMaxLength(255)
  346. .IsRequired();
  347. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>().Property<byte[]>("Timestamp").IsConcurrencyToken();
  348. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  349. .HasMany(x => x.GroupPermissions)
  350. .WithOne()
  351. .HasForeignKey("Permission_GroupPermissions_Id")
  352. .IsRequired();
  353. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  354. .HasMany(x => x.ProviderMappings)
  355. .WithOne()
  356. .HasForeignKey("ProviderMapping_ProviderMappings_Id")
  357. .IsRequired();
  358. modelBuilder.Entity<global::Jellyfin.Data.Entities.Group>()
  359. .HasMany(x => x.Preferences)
  360. .WithOne()
  361. .HasForeignKey("Preference_Preferences_Id")
  362. .IsRequired();
  363. modelBuilder.Entity<global::Jellyfin.Data.Entities.Library>()
  364. .ToTable("Library")
  365. .HasKey(t => t.Id);
  366. modelBuilder.Entity<global::Jellyfin.Data.Entities.Library>()
  367. .Property(t => t.Id)
  368. .IsRequired()
  369. .HasField("_Id")
  370. .UsePropertyAccessMode(PropertyAccessMode.Property)
  371. .ValueGeneratedOnAdd();
  372. modelBuilder.Entity<global::Jellyfin.Data.Entities.Library>()
  373. .Property(t => t.Name)
  374. .HasMaxLength(1024)
  375. .IsRequired()
  376. .HasField("_Name")
  377. .UsePropertyAccessMode(PropertyAccessMode.Property);
  378. modelBuilder.Entity<global::Jellyfin.Data.Entities.Library>()
  379. .Property(t => t.Timestamp)
  380. .IsRequired()
  381. .HasField("_Timestamp")
  382. .UsePropertyAccessMode(PropertyAccessMode.Property)
  383. .IsRowVersion();
  384. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  385. .ToTable("LibraryItem")
  386. .HasKey(t => t.Id);
  387. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  388. .Property(t => t.Id)
  389. .IsRequired()
  390. .HasField("_Id")
  391. .UsePropertyAccessMode(PropertyAccessMode.Property)
  392. .ValueGeneratedOnAdd();
  393. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  394. .Property(t => t.UrlId)
  395. .IsRequired()
  396. .HasField("_UrlId")
  397. .UsePropertyAccessMode(PropertyAccessMode.Property);
  398. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>().HasIndex(t => t.UrlId)
  399. .IsUnique();
  400. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  401. .Property(t => t.DateAdded)
  402. .IsRequired()
  403. .HasField("_DateAdded")
  404. .UsePropertyAccessMode(PropertyAccessMode.Property);
  405. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  406. .Property(t => t.Timestamp)
  407. .IsRequired()
  408. .HasField("_Timestamp")
  409. .UsePropertyAccessMode(PropertyAccessMode.Property)
  410. .IsRowVersion();
  411. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryItem>()
  412. .HasOne(x => x.LibraryRoot)
  413. .WithOne()
  414. .HasForeignKey<global::Jellyfin.Data.Entities.LibraryItem>("LibraryRoot_Id")
  415. .IsRequired();
  416. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  417. .ToTable("LibraryRoot")
  418. .HasKey(t => t.Id);
  419. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  420. .Property(t => t.Id)
  421. .IsRequired()
  422. .HasField("_Id")
  423. .UsePropertyAccessMode(PropertyAccessMode.Property)
  424. .ValueGeneratedOnAdd();
  425. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  426. .Property(t => t.Path)
  427. .HasMaxLength(65535)
  428. .IsRequired()
  429. .HasField("_Path")
  430. .UsePropertyAccessMode(PropertyAccessMode.Property);
  431. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  432. .Property(t => t.NetworkPath)
  433. .HasMaxLength(65535)
  434. .HasField("_NetworkPath")
  435. .UsePropertyAccessMode(PropertyAccessMode.Property);
  436. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  437. .Property(t => t.Timestamp)
  438. .IsRequired()
  439. .HasField("_Timestamp")
  440. .UsePropertyAccessMode(PropertyAccessMode.Property)
  441. .IsRowVersion();
  442. modelBuilder.Entity<global::Jellyfin.Data.Entities.LibraryRoot>()
  443. .HasOne(x => x.Library)
  444. .WithOne()
  445. .HasForeignKey<global::Jellyfin.Data.Entities.LibraryRoot>("Library_Id")
  446. .IsRequired();
  447. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  448. .ToTable("MediaFile")
  449. .HasKey(t => t.Id);
  450. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  451. .Property(t => t.Id)
  452. .IsRequired()
  453. .HasField("_Id")
  454. .UsePropertyAccessMode(PropertyAccessMode.Property)
  455. .ValueGeneratedOnAdd();
  456. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  457. .Property(t => t.Path)
  458. .HasMaxLength(65535)
  459. .IsRequired()
  460. .HasField("_Path")
  461. .UsePropertyAccessMode(PropertyAccessMode.Property);
  462. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  463. .Property(t => t.Kind)
  464. .IsRequired()
  465. .HasField("_Kind")
  466. .UsePropertyAccessMode(PropertyAccessMode.Property);
  467. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  468. .Property(t => t.Timestamp)
  469. .IsRequired()
  470. .HasField("_Timestamp")
  471. .UsePropertyAccessMode(PropertyAccessMode.Property)
  472. .IsRowVersion();
  473. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFile>()
  474. .HasMany(x => x.MediaFileStreams)
  475. .WithOne()
  476. .HasForeignKey("MediaFileStream_MediaFileStreams_Id")
  477. .IsRequired();
  478. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFileStream>()
  479. .ToTable("MediaFileStream")
  480. .HasKey(t => t.Id);
  481. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFileStream>()
  482. .Property(t => t.Id)
  483. .IsRequired()
  484. .HasField("_Id")
  485. .UsePropertyAccessMode(PropertyAccessMode.Property)
  486. .ValueGeneratedOnAdd();
  487. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFileStream>()
  488. .Property(t => t.StreamNumber)
  489. .IsRequired()
  490. .HasField("_StreamNumber")
  491. .UsePropertyAccessMode(PropertyAccessMode.Property);
  492. modelBuilder.Entity<global::Jellyfin.Data.Entities.MediaFileStream>()
  493. .Property(t => t.Timestamp)
  494. .IsRequired()
  495. .HasField("_Timestamp")
  496. .UsePropertyAccessMode(PropertyAccessMode.Property)
  497. .IsRowVersion();
  498. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  499. .ToTable("Metadata")
  500. .HasKey(t => t.Id);
  501. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  502. .Property(t => t.Id)
  503. .IsRequired()
  504. .HasField("_Id")
  505. .UsePropertyAccessMode(PropertyAccessMode.Property)
  506. .ValueGeneratedOnAdd();
  507. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  508. .Property(t => t.Title)
  509. .HasMaxLength(1024)
  510. .IsRequired()
  511. .HasField("_Title")
  512. .UsePropertyAccessMode(PropertyAccessMode.Property);
  513. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  514. .Property(t => t.OriginalTitle)
  515. .HasMaxLength(1024)
  516. .HasField("_OriginalTitle")
  517. .UsePropertyAccessMode(PropertyAccessMode.Property);
  518. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  519. .Property(t => t.SortTitle)
  520. .HasMaxLength(1024)
  521. .HasField("_SortTitle")
  522. .UsePropertyAccessMode(PropertyAccessMode.Property);
  523. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  524. .Property(t => t.Language)
  525. .HasMaxLength(3)
  526. .IsRequired()
  527. .HasField("_Language")
  528. .UsePropertyAccessMode(PropertyAccessMode.Property);
  529. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  530. .Property(t => t.ReleaseDate)
  531. .HasField("_ReleaseDate")
  532. .UsePropertyAccessMode(PropertyAccessMode.Property);
  533. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  534. .Property(t => t.DateAdded)
  535. .IsRequired()
  536. .HasField("_DateAdded")
  537. .UsePropertyAccessMode(PropertyAccessMode.Property);
  538. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  539. .Property(t => t.DateModified)
  540. .IsRequired()
  541. .HasField("_DateModified")
  542. .UsePropertyAccessMode(PropertyAccessMode.Property);
  543. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  544. .Property(t => t.Timestamp)
  545. .IsRequired()
  546. .HasField("_Timestamp")
  547. .UsePropertyAccessMode(PropertyAccessMode.Property)
  548. .IsRowVersion();
  549. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  550. .HasMany(x => x.PersonRoles)
  551. .WithOne()
  552. .HasForeignKey("PersonRole_PersonRoles_Id")
  553. .IsRequired();
  554. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  555. .HasMany(x => x.Genres)
  556. .WithOne()
  557. .HasForeignKey("Genre_Genres_Id")
  558. .IsRequired();
  559. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  560. .HasMany(x => x.Artwork)
  561. .WithOne()
  562. .HasForeignKey("Artwork_Artwork_Id")
  563. .IsRequired();
  564. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  565. .HasMany(x => x.Ratings)
  566. .WithOne()
  567. .HasForeignKey("Rating_Ratings_Id")
  568. .IsRequired();
  569. modelBuilder.Entity<global::Jellyfin.Data.Entities.Metadata>()
  570. .HasMany(x => x.Sources)
  571. .WithOne()
  572. .HasForeignKey("MetadataProviderId_Sources_Id")
  573. .IsRequired();
  574. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProvider>()
  575. .ToTable("MetadataProvider")
  576. .HasKey(t => t.Id);
  577. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProvider>()
  578. .Property(t => t.Id)
  579. .IsRequired()
  580. .HasField("_Id")
  581. .UsePropertyAccessMode(PropertyAccessMode.Property)
  582. .ValueGeneratedOnAdd();
  583. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProvider>()
  584. .Property(t => t.Name)
  585. .HasMaxLength(1024)
  586. .IsRequired()
  587. .HasField("_Name")
  588. .UsePropertyAccessMode(PropertyAccessMode.Property);
  589. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProvider>()
  590. .Property(t => t.Timestamp)
  591. .IsRequired()
  592. .HasField("_Timestamp")
  593. .UsePropertyAccessMode(PropertyAccessMode.Property)
  594. .IsRowVersion();
  595. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProviderId>()
  596. .ToTable("MetadataProviderId")
  597. .HasKey(t => t.Id);
  598. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProviderId>()
  599. .Property(t => t.Id)
  600. .IsRequired()
  601. .HasField("_Id")
  602. .UsePropertyAccessMode(PropertyAccessMode.Property)
  603. .ValueGeneratedOnAdd();
  604. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProviderId>()
  605. .Property(t => t.ProviderId)
  606. .HasMaxLength(255)
  607. .IsRequired()
  608. .HasField("_ProviderId")
  609. .UsePropertyAccessMode(PropertyAccessMode.Property);
  610. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProviderId>()
  611. .Property(t => t.Timestamp)
  612. .IsRequired()
  613. .HasField("_Timestamp")
  614. .UsePropertyAccessMode(PropertyAccessMode.Property)
  615. .IsRowVersion();
  616. modelBuilder.Entity<global::Jellyfin.Data.Entities.MetadataProviderId>()
  617. .HasOne(x => x.MetadataProvider)
  618. .WithOne()
  619. .HasForeignKey<global::Jellyfin.Data.Entities.MetadataProviderId>("MetadataProvider_Id")
  620. .IsRequired();
  621. modelBuilder.Entity<global::Jellyfin.Data.Entities.Movie>()
  622. .HasMany(x => x.Releases)
  623. .WithOne()
  624. .HasForeignKey("Release_Releases_Id")
  625. .IsRequired();
  626. modelBuilder.Entity<global::Jellyfin.Data.Entities.Movie>()
  627. .HasMany(x => x.MovieMetadata)
  628. .WithOne()
  629. .HasForeignKey("MovieMetadata_MovieMetadata_Id")
  630. .IsRequired();
  631. modelBuilder.Entity<global::Jellyfin.Data.Entities.MovieMetadata>()
  632. .Property(t => t.Outline)
  633. .HasMaxLength(1024)
  634. .HasField("_Outline")
  635. .UsePropertyAccessMode(PropertyAccessMode.Property);
  636. modelBuilder.Entity<global::Jellyfin.Data.Entities.MovieMetadata>()
  637. .Property(t => t.Plot)
  638. .HasMaxLength(65535)
  639. .HasField("_Plot")
  640. .UsePropertyAccessMode(PropertyAccessMode.Property);
  641. modelBuilder.Entity<global::Jellyfin.Data.Entities.MovieMetadata>()
  642. .Property(t => t.Tagline)
  643. .HasMaxLength(1024)
  644. .HasField("_Tagline")
  645. .UsePropertyAccessMode(PropertyAccessMode.Property);
  646. modelBuilder.Entity<global::Jellyfin.Data.Entities.MovieMetadata>()
  647. .Property(t => t.Country)
  648. .HasMaxLength(2)
  649. .HasField("_Country")
  650. .UsePropertyAccessMode(PropertyAccessMode.Property);
  651. modelBuilder.Entity<global::Jellyfin.Data.Entities.MovieMetadata>()
  652. .HasMany(x => x.Studios)
  653. .WithOne()
  654. .HasForeignKey("Company_Studios_Id")
  655. .IsRequired();
  656. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbum>()
  657. .HasMany(x => x.MusicAlbumMetadata)
  658. .WithOne()
  659. .HasForeignKey("MusicAlbumMetadata_MusicAlbumMetadata_Id")
  660. .IsRequired();
  661. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbum>()
  662. .HasMany(x => x.Tracks)
  663. .WithOne()
  664. .HasForeignKey("Track_Tracks_Id")
  665. .IsRequired();
  666. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbumMetadata>()
  667. .Property(t => t.Barcode)
  668. .HasMaxLength(255)
  669. .HasField("_Barcode")
  670. .UsePropertyAccessMode(PropertyAccessMode.Property);
  671. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbumMetadata>()
  672. .Property(t => t.LabelNumber)
  673. .HasMaxLength(255)
  674. .HasField("_LabelNumber")
  675. .UsePropertyAccessMode(PropertyAccessMode.Property);
  676. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbumMetadata>()
  677. .Property(t => t.Country)
  678. .HasMaxLength(2)
  679. .HasField("_Country")
  680. .UsePropertyAccessMode(PropertyAccessMode.Property);
  681. modelBuilder.Entity<global::Jellyfin.Data.Entities.MusicAlbumMetadata>()
  682. .HasMany(x => x.Labels)
  683. .WithOne()
  684. .HasForeignKey("Company_Labels_Id")
  685. .IsRequired();
  686. modelBuilder.Entity<global::Jellyfin.Data.Entities.Permission>()
  687. .ToTable("Permissions")
  688. .HasKey(t => t.Id);
  689. modelBuilder.Entity<global::Jellyfin.Data.Entities.Permission>()
  690. .Property(t => t.Id)
  691. .IsRequired()
  692. .ValueGeneratedOnAdd();
  693. modelBuilder.Entity<global::Jellyfin.Data.Entities.Permission>()
  694. .Property(t => t.Kind)
  695. .IsRequired()
  696. .HasField("_Kind")
  697. .UsePropertyAccessMode(PropertyAccessMode.Property);
  698. modelBuilder.Entity<global::Jellyfin.Data.Entities.Permission>()
  699. .Property(t => t.Value)
  700. .IsRequired();
  701. modelBuilder.Entity<global::Jellyfin.Data.Entities.Permission>().Property<byte[]>("Timestamp").IsConcurrencyToken();
  702. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  703. .ToTable("Person")
  704. .HasKey(t => t.Id);
  705. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  706. .Property(t => t.Id)
  707. .IsRequired()
  708. .HasField("_Id")
  709. .UsePropertyAccessMode(PropertyAccessMode.Property)
  710. .ValueGeneratedOnAdd();
  711. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  712. .Property(t => t.UrlId)
  713. .IsRequired()
  714. .HasField("_UrlId")
  715. .UsePropertyAccessMode(PropertyAccessMode.Property);
  716. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  717. .Property(t => t.Name)
  718. .HasMaxLength(1024)
  719. .IsRequired()
  720. .HasField("_Name")
  721. .UsePropertyAccessMode(PropertyAccessMode.Property);
  722. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  723. .Property(t => t.SourceId)
  724. .HasMaxLength(255)
  725. .HasField("_SourceId")
  726. .UsePropertyAccessMode(PropertyAccessMode.Property);
  727. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  728. .Property(t => t.DateAdded)
  729. .IsRequired()
  730. .HasField("_DateAdded")
  731. .UsePropertyAccessMode(PropertyAccessMode.Property);
  732. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  733. .Property(t => t.DateModified)
  734. .IsRequired()
  735. .HasField("_DateModified")
  736. .UsePropertyAccessMode(PropertyAccessMode.Property);
  737. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  738. .Property(t => t.Timestamp)
  739. .IsRequired()
  740. .HasField("_Timestamp")
  741. .UsePropertyAccessMode(PropertyAccessMode.Property)
  742. .IsRowVersion();
  743. modelBuilder.Entity<global::Jellyfin.Data.Entities.Person>()
  744. .HasMany(x => x.Sources)
  745. .WithOne()
  746. .HasForeignKey("MetadataProviderId_Sources_Id")
  747. .IsRequired();
  748. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  749. .ToTable("PersonRole")
  750. .HasKey(t => t.Id);
  751. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  752. .Property(t => t.Id)
  753. .IsRequired()
  754. .HasField("_Id")
  755. .UsePropertyAccessMode(PropertyAccessMode.Property)
  756. .ValueGeneratedOnAdd();
  757. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  758. .Property(t => t.Role)
  759. .HasMaxLength(1024)
  760. .HasField("_Role")
  761. .UsePropertyAccessMode(PropertyAccessMode.Property);
  762. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  763. .Property(t => t.Type)
  764. .IsRequired()
  765. .HasField("_Type")
  766. .UsePropertyAccessMode(PropertyAccessMode.Property);
  767. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  768. .Property(t => t.Timestamp)
  769. .IsRequired()
  770. .HasField("_Timestamp")
  771. .UsePropertyAccessMode(PropertyAccessMode.Property)
  772. .IsRowVersion();
  773. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  774. .HasOne(x => x.Person)
  775. .WithOne()
  776. .HasForeignKey<global::Jellyfin.Data.Entities.PersonRole>("Person_Id")
  777. .IsRequired()
  778. .OnDelete(DeleteBehavior.Cascade);
  779. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  780. .HasOne(x => x.Artwork)
  781. .WithOne()
  782. .HasForeignKey<global::Jellyfin.Data.Entities.PersonRole>("Artwork_Artwork_Id")
  783. .IsRequired();
  784. modelBuilder.Entity<global::Jellyfin.Data.Entities.PersonRole>()
  785. .HasMany(x => x.Sources)
  786. .WithOne()
  787. .HasForeignKey("MetadataProviderId_Sources_Id")
  788. .IsRequired();
  789. modelBuilder.Entity<global::Jellyfin.Data.Entities.Photo>()
  790. .HasMany(x => x.PhotoMetadata)
  791. .WithOne()
  792. .HasForeignKey("PhotoMetadata_PhotoMetadata_Id")
  793. .IsRequired();
  794. modelBuilder.Entity<global::Jellyfin.Data.Entities.Photo>()
  795. .HasMany(x => x.Releases)
  796. .WithOne()
  797. .HasForeignKey("Release_Releases_Id")
  798. .IsRequired();
  799. modelBuilder.Entity<global::Jellyfin.Data.Entities.Preference>()
  800. .ToTable("Preferences")
  801. .HasKey(t => t.Id);
  802. modelBuilder.Entity<global::Jellyfin.Data.Entities.Preference>()
  803. .Property(t => t.Id)
  804. .IsRequired()
  805. .ValueGeneratedOnAdd();
  806. modelBuilder.Entity<global::Jellyfin.Data.Entities.Preference>()
  807. .Property(t => t.Kind)
  808. .IsRequired();
  809. modelBuilder.Entity<global::Jellyfin.Data.Entities.Preference>()
  810. .Property(t => t.Value)
  811. .HasMaxLength(65535)
  812. .IsRequired();
  813. modelBuilder.Entity<global::Jellyfin.Data.Entities.Preference>().Property<byte[]>("Timestamp").IsConcurrencyToken();
  814. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>()
  815. .ToTable("ProviderMappings")
  816. .HasKey(t => t.Id);
  817. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>()
  818. .Property(t => t.Id)
  819. .IsRequired()
  820. .ValueGeneratedOnAdd();
  821. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>()
  822. .Property(t => t.ProviderName)
  823. .HasMaxLength(255)
  824. .IsRequired();
  825. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>()
  826. .Property(t => t.ProviderSecrets)
  827. .HasMaxLength(65535)
  828. .IsRequired();
  829. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>()
  830. .Property(t => t.ProviderData)
  831. .HasMaxLength(65535)
  832. .IsRequired();
  833. modelBuilder.Entity<global::Jellyfin.Data.Entities.ProviderMapping>().Property<byte[]>("Timestamp").IsConcurrencyToken();
  834. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  835. .ToTable("Rating")
  836. .HasKey(t => t.Id);
  837. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  838. .Property(t => t.Id)
  839. .IsRequired()
  840. .HasField("_Id")
  841. .UsePropertyAccessMode(PropertyAccessMode.Property)
  842. .ValueGeneratedOnAdd();
  843. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  844. .Property(t => t.Value)
  845. .IsRequired()
  846. .HasField("_Value")
  847. .UsePropertyAccessMode(PropertyAccessMode.Property);
  848. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  849. .Property(t => t.Votes)
  850. .HasField("_Votes")
  851. .UsePropertyAccessMode(PropertyAccessMode.Property);
  852. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  853. .Property(t => t.Timestamp)
  854. .IsRequired()
  855. .HasField("_Timestamp")
  856. .UsePropertyAccessMode(PropertyAccessMode.Property)
  857. .IsRowVersion();
  858. modelBuilder.Entity<global::Jellyfin.Data.Entities.Rating>()
  859. .HasOne(x => x.RatingType)
  860. .WithOne()
  861. .HasForeignKey<global::Jellyfin.Data.Entities.Rating>("RatingSource_RatingType_Id")
  862. .IsRequired();
  863. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  864. .ToTable("RatingType")
  865. .HasKey(t => t.Id);
  866. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  867. .Property(t => t.Id)
  868. .IsRequired()
  869. .HasField("_Id")
  870. .UsePropertyAccessMode(PropertyAccessMode.Property)
  871. .ValueGeneratedOnAdd();
  872. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  873. .Property(t => t.Name)
  874. .HasMaxLength(1024)
  875. .HasField("_Name")
  876. .UsePropertyAccessMode(PropertyAccessMode.Property);
  877. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  878. .Property(t => t.MaximumValue)
  879. .IsRequired()
  880. .HasField("_MaximumValue")
  881. .UsePropertyAccessMode(PropertyAccessMode.Property);
  882. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  883. .Property(t => t.MinimumValue)
  884. .IsRequired()
  885. .HasField("_MinimumValue")
  886. .UsePropertyAccessMode(PropertyAccessMode.Property);
  887. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  888. .Property(t => t.Timestamp)
  889. .IsRequired()
  890. .HasField("_Timestamp")
  891. .UsePropertyAccessMode(PropertyAccessMode.Property)
  892. .IsRowVersion();
  893. modelBuilder.Entity<global::Jellyfin.Data.Entities.RatingSource>()
  894. .HasOne(x => x.Source)
  895. .WithOne()
  896. .HasForeignKey<global::Jellyfin.Data.Entities.RatingSource>("MetadataProviderId_Source_Id")
  897. .IsRequired();
  898. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  899. .ToTable("Release")
  900. .HasKey(t => t.Id);
  901. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  902. .Property(t => t.Id)
  903. .IsRequired()
  904. .HasField("_Id")
  905. .UsePropertyAccessMode(PropertyAccessMode.Property)
  906. .ValueGeneratedOnAdd();
  907. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  908. .Property(t => t.Name)
  909. .HasMaxLength(1024)
  910. .IsRequired()
  911. .HasField("_Name")
  912. .UsePropertyAccessMode(PropertyAccessMode.Property);
  913. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  914. .Property(t => t.Timestamp)
  915. .IsRequired()
  916. .HasField("_Timestamp")
  917. .UsePropertyAccessMode(PropertyAccessMode.Property)
  918. .IsRowVersion();
  919. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  920. .HasMany(x => x.MediaFiles)
  921. .WithOne()
  922. .HasForeignKey("MediaFile_MediaFiles_Id")
  923. .IsRequired();
  924. modelBuilder.Entity<global::Jellyfin.Data.Entities.Release>()
  925. .HasMany(x => x.Chapters)
  926. .WithOne()
  927. .HasForeignKey("Chapter_Chapters_Id")
  928. .IsRequired();
  929. modelBuilder.Entity<global::Jellyfin.Data.Entities.Season>()
  930. .Property(t => t.SeasonNumber)
  931. .HasField("_SeasonNumber")
  932. .UsePropertyAccessMode(PropertyAccessMode.Property);
  933. modelBuilder.Entity<global::Jellyfin.Data.Entities.Season>()
  934. .HasMany(x => x.SeasonMetadata)
  935. .WithOne()
  936. .HasForeignKey("SeasonMetadata_SeasonMetadata_Id")
  937. .IsRequired();
  938. modelBuilder.Entity<global::Jellyfin.Data.Entities.Season>()
  939. .HasMany(x => x.Episodes)
  940. .WithOne()
  941. .HasForeignKey("Episode_Episodes_Id")
  942. .IsRequired();
  943. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeasonMetadata>()
  944. .Property(t => t.Outline)
  945. .HasMaxLength(1024)
  946. .HasField("_Outline")
  947. .UsePropertyAccessMode(PropertyAccessMode.Property);
  948. modelBuilder.Entity<global::Jellyfin.Data.Entities.Series>()
  949. .Property(t => t.AirsDayOfWeek)
  950. .HasField("_AirsDayOfWeek")
  951. .UsePropertyAccessMode(PropertyAccessMode.Property);
  952. modelBuilder.Entity<global::Jellyfin.Data.Entities.Series>()
  953. .Property(t => t.AirsTime)
  954. .HasField("_AirsTime")
  955. .UsePropertyAccessMode(PropertyAccessMode.Property);
  956. modelBuilder.Entity<global::Jellyfin.Data.Entities.Series>()
  957. .Property(t => t.FirstAired)
  958. .HasField("_FirstAired")
  959. .UsePropertyAccessMode(PropertyAccessMode.Property);
  960. modelBuilder.Entity<global::Jellyfin.Data.Entities.Series>()
  961. .HasMany(x => x.SeriesMetadata)
  962. .WithOne()
  963. .HasForeignKey("SeriesMetadata_SeriesMetadata_Id")
  964. .IsRequired();
  965. modelBuilder.Entity<global::Jellyfin.Data.Entities.Series>()
  966. .HasMany(x => x.Seasons)
  967. .WithOne()
  968. .HasForeignKey("Season_Seasons_Id")
  969. .IsRequired();
  970. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeriesMetadata>()
  971. .Property(t => t.Outline)
  972. .HasMaxLength(1024)
  973. .HasField("_Outline")
  974. .UsePropertyAccessMode(PropertyAccessMode.Property);
  975. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeriesMetadata>()
  976. .Property(t => t.Plot)
  977. .HasMaxLength(65535)
  978. .HasField("_Plot")
  979. .UsePropertyAccessMode(PropertyAccessMode.Property);
  980. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeriesMetadata>()
  981. .Property(t => t.Tagline)
  982. .HasMaxLength(1024)
  983. .HasField("_Tagline")
  984. .UsePropertyAccessMode(PropertyAccessMode.Property);
  985. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeriesMetadata>()
  986. .Property(t => t.Country)
  987. .HasMaxLength(2)
  988. .HasField("_Country")
  989. .UsePropertyAccessMode(PropertyAccessMode.Property);
  990. modelBuilder.Entity<global::Jellyfin.Data.Entities.SeriesMetadata>()
  991. .HasMany(x => x.Networks)
  992. .WithOne()
  993. .HasForeignKey("Company_Networks_Id")
  994. .IsRequired();
  995. modelBuilder.Entity<global::Jellyfin.Data.Entities.Track>()
  996. .Property(t => t.TrackNumber)
  997. .HasField("_TrackNumber")
  998. .UsePropertyAccessMode(PropertyAccessMode.Property);
  999. modelBuilder.Entity<global::Jellyfin.Data.Entities.Track>()
  1000. .HasMany(x => x.Releases)
  1001. .WithOne()
  1002. .HasForeignKey("Release_Releases_Id")
  1003. .IsRequired();
  1004. modelBuilder.Entity<global::Jellyfin.Data.Entities.Track>()
  1005. .HasMany(x => x.TrackMetadata)
  1006. .WithOne()
  1007. .HasForeignKey("TrackMetadata_TrackMetadata_Id")
  1008. .IsRequired();
  1009. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1010. .ToTable("Users")
  1011. .HasKey(t => t.Id);
  1012. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1013. .Property(t => t.Id)
  1014. .IsRequired()
  1015. .ValueGeneratedOnAdd();
  1016. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1017. .Property(t => t.LastLoginTimestamp)
  1018. .IsRequired()
  1019. .IsRowVersion();
  1020. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1021. .Property(t => t.Username)
  1022. .HasMaxLength(255)
  1023. .IsRequired();
  1024. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1025. .Property(t => t.Password)
  1026. .HasMaxLength(65535);
  1027. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1028. .Property(t => t.MustUpdatePassword)
  1029. .IsRequired();
  1030. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1031. .Property(t => t.AudioLanguagePreference)
  1032. .HasMaxLength(255)
  1033. .IsRequired();
  1034. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1035. .Property(t => t.AuthenticationProviderId)
  1036. .HasMaxLength(255)
  1037. .IsRequired();
  1038. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1039. .Property(t => t.GroupedFolders)
  1040. .HasMaxLength(65535);
  1041. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1042. .Property(t => t.InvalidLoginAttemptCount)
  1043. .IsRequired();
  1044. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1045. .Property(t => t.LatestItemExcludes)
  1046. .HasMaxLength(65535);
  1047. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1048. .Property(t => t.MyMediaExcludes)
  1049. .HasMaxLength(65535);
  1050. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1051. .Property(t => t.OrderedViews)
  1052. .HasMaxLength(65535);
  1053. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1054. .Property(t => t.SubtitleMode)
  1055. .HasMaxLength(255)
  1056. .IsRequired();
  1057. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1058. .Property(t => t.PlayDefaultAudioTrack)
  1059. .IsRequired();
  1060. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1061. .Property(t => t.SubtitleLanguagePrefernce)
  1062. .HasMaxLength(255);
  1063. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1064. .HasMany(x => x.Groups)
  1065. .WithOne()
  1066. .HasForeignKey("Group_Groups_Id")
  1067. .IsRequired();
  1068. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1069. .HasMany(x => x.Permissions)
  1070. .WithOne()
  1071. .HasForeignKey("Permission_Permissions_Id")
  1072. .IsRequired();
  1073. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1074. .HasMany(x => x.ProviderMappings)
  1075. .WithOne()
  1076. .HasForeignKey("ProviderMapping_ProviderMappings_Id")
  1077. .IsRequired();
  1078. modelBuilder.Entity<global::Jellyfin.Data.Entities.User>()
  1079. .HasMany(x => x.Preferences)
  1080. .WithOne()
  1081. .HasForeignKey("Preference_Preferences_Id")
  1082. .IsRequired();
  1083. OnModelCreatedImpl(modelBuilder);
  1084. }
  1085. }
  1086. }