Company.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Collections.Generic;
  2. using System.ComponentModel.DataAnnotations;
  3. using System.ComponentModel.DataAnnotations.Schema;
  4. using Jellyfin.Data.Interfaces;
  5. namespace Jellyfin.Data.Entities.Libraries
  6. {
  7. /// <summary>
  8. /// An entity representing a company.
  9. /// </summary>
  10. public class Company : IHasCompanies, IHasConcurrencyToken
  11. {
  12. /// <summary>
  13. /// Initializes a new instance of the <see cref="Company"/> class.
  14. /// </summary>
  15. public Company()
  16. {
  17. CompanyMetadata = new HashSet<CompanyMetadata>();
  18. ChildCompanies = new HashSet<Company>();
  19. }
  20. /// <summary>
  21. /// Gets the id.
  22. /// </summary>
  23. /// <remarks>
  24. /// Identity, Indexed, Required.
  25. /// </remarks>
  26. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  27. public int Id { get; private set; }
  28. /// <inheritdoc />
  29. [ConcurrencyCheck]
  30. public uint RowVersion { get; private set; }
  31. /// <summary>
  32. /// Gets a collection containing the metadata.
  33. /// </summary>
  34. public virtual ICollection<CompanyMetadata> CompanyMetadata { get; private set; }
  35. /// <summary>
  36. /// Gets a collection containing this company's child companies.
  37. /// </summary>
  38. public virtual ICollection<Company> ChildCompanies { get; private set; }
  39. /// <inheritdoc />
  40. public ICollection<Company> Companies => ChildCompanies;
  41. /// <inheritdoc />
  42. public void OnSavingChanges()
  43. {
  44. RowVersion++;
  45. }
  46. }
  47. }