content.graphql 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. "Category of media channel"
  2. type ChannelCategory @entity {
  3. id: ID!
  4. "The name of the category"
  5. name: String @fulltext(query: "channelCategoriesByName")
  6. "Count of channel's videos with an uploaded asset that are public and not censored."
  7. activeVideosCounter: Int!
  8. channels: [Channel!]! @derivedFrom(field: "category")
  9. createdInBlock: Int!
  10. }
  11. type Language @entity {
  12. "Runtime entity identifier (EntityId)"
  13. id: ID!
  14. "Language identifier ISO 639-1"
  15. iso: String!
  16. createdInBlock: Int!
  17. }
  18. type Channel @entity {
  19. "Runtime entity identifier (EntityId)"
  20. id: ID!
  21. "Member owning the channel (if any)"
  22. ownerMember: Membership
  23. "Curator group owning the channel (if any)"
  24. ownerCuratorGroup: CuratorGroup
  25. category: ChannelCategory
  26. "Reward account where revenue is sent if set."
  27. rewardAccount: String
  28. "The title of the Channel"
  29. title: String @fulltext(query: "search")
  30. "The description of a Channel"
  31. description: String
  32. "Count of channel's videos with an uploaded asset that are public and not censored."
  33. activeVideosCounter: Int!
  34. "Channel's cover (background) photo asset. Recommended ratio: 16:9."
  35. coverPhoto: StorageDataObject
  36. "Channel's avatar photo asset."
  37. avatarPhoto: StorageDataObject
  38. ##########################
  39. "Flag signaling whether a channel is public."
  40. isPublic: Boolean
  41. "Flag signaling whether a channel is censored."
  42. isCensored: Boolean!
  43. "The primary langauge of the channel's content"
  44. language: Language
  45. "List of videos that belong to the channel"
  46. videos: [Video!]! @derivedFrom(field: "channel")
  47. "Number of the block the channel was created in"
  48. createdInBlock: Int!
  49. "List of channel collaborators (members)"
  50. collaborators: [Membership!]
  51. }
  52. type VideoCategory @entity {
  53. "Runtime identifier"
  54. id: ID!
  55. "The name of the category"
  56. name: String @fulltext(query: "videoCategoriesByName")
  57. "Count of channel's videos with an uploaded asset that are public and not censored."
  58. activeVideosCounter: Int!
  59. videos: [Video!]! @derivedFrom(field: "category")
  60. createdInBlock: Int!
  61. }
  62. type Video @entity {
  63. "Runtime identifier"
  64. id: ID!
  65. "Reference to member's channel"
  66. channel: Channel!
  67. "Reference to a video category"
  68. category: VideoCategory
  69. "The title of the video"
  70. title: String @fulltext(query: "search")
  71. "The description of the Video"
  72. description: String
  73. "Video duration in seconds"
  74. duration: Int
  75. "Video thumbnail asset (recommended ratio: 16:9)"
  76. thumbnailPhoto: StorageDataObject
  77. ##########################
  78. "Video's main langauge"
  79. language: Language
  80. "Whether or not Video contains marketing"
  81. hasMarketing: Boolean
  82. "If the Video was published on other platform before beeing published on Joystream - the original publication date"
  83. publishedBeforeJoystream: DateTime
  84. "Whether the Video is supposed to be publically displayed"
  85. isPublic: Boolean
  86. "Flag signaling whether a video is censored."
  87. isCensored: Boolean!
  88. "Video NFT details"
  89. nft: OwnedNft
  90. "Whether the Video contains explicit material."
  91. isExplicit: Boolean
  92. "License under the video is published"
  93. license: License
  94. "Video media asset"
  95. media: StorageDataObject
  96. ##########################
  97. "Video file metadata"
  98. mediaMetadata: VideoMediaMetadata
  99. createdInBlock: Int!
  100. "Is video featured or not"
  101. isFeatured: Boolean!
  102. }
  103. type VideoMediaMetadata @entity {
  104. "Unique identifier"
  105. id: ID!
  106. "Encoding of the video media object"
  107. encoding: VideoMediaEncoding
  108. "Video media width in pixels"
  109. pixelWidth: Int
  110. "Video media height in pixels"
  111. pixelHeight: Int
  112. "Video media size in bytes"
  113. size: BigInt
  114. video: Video @derivedFrom(field: "mediaMetadata")
  115. createdInBlock: Int!
  116. }
  117. type VideoMediaEncoding @entity {
  118. "Encoding of the video media object"
  119. codecName: String
  120. "Media container format"
  121. container: String
  122. "Content MIME type"
  123. mimeMediaType: String
  124. }
  125. type License @entity {
  126. "Unique identifier"
  127. id: ID!
  128. "License code defined by Joystream"
  129. code: Int
  130. "Attribution (if required by the license)"
  131. attribution: String
  132. "Custom license content"
  133. custom_text: String
  134. }