Episode.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { DateTime } from 'luxon'
  2. import { column, computed } from '@ioc:Adonis/Lucid/Orm'
  3. import Decimal from 'decimal.js'
  4. import { decimalConverter } from 'App/Helpers/db'
  5. import AppBaseModel from './AppBaseModel'
  6. export default class Episode extends AppBaseModel {
  7. // public static namingStrategy = new CamelCaseNamingStrategy()
  8. @column({ isPrimary: true })
  9. public id: number
  10. @column.dateTime({ autoCreate: true })
  11. public createdAt: DateTime
  12. @column.dateTime({ autoCreate: true, autoUpdate: true })
  13. public updatedAt: DateTime
  14. @column()
  15. public seriesId: number
  16. @column()
  17. public title: string
  18. @column()
  19. public episodeNum: number
  20. @column()
  21. public description?: string
  22. @column()
  23. public cover?: string
  24. @column({ serializeAs: null })
  25. public video?: string
  26. @column()
  27. public playCount: number
  28. @column({ ...decimalConverter })
  29. public price: Decimal
  30. public purchased: boolean = false
  31. public signedUrl: string
  32. @computed()
  33. public get playUrl() {
  34. if (this.purchased) {
  35. return this.signedUrl
  36. }
  37. return null
  38. }
  39. }