BalanceRecord.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. import Series from 'App/Models/Series'
  7. import Episode from 'App/Models/Episode'
  8. export enum BalanceRecordType {
  9. Recharge = 'recharge',
  10. Purchase = 'purchase',
  11. Signin = 'signin',
  12. Reward = 'reward'
  13. }
  14. export default class BalanceRecord extends AppBaseModel {
  15. @column({ isPrimary: true })
  16. public id: number
  17. @column.dateTime({ autoCreate: true })
  18. public createdAt: DateTime
  19. @column.dateTime({ autoCreate: true, autoUpdate: true })
  20. public updatedAt: DateTime
  21. @column()
  22. public userId: number
  23. @column({ ...decimalConverter })
  24. public amount: Decimal
  25. @column()
  26. public type: BalanceRecordType
  27. @column()
  28. public description?: string
  29. @column({ ...decimalConverter })
  30. public balance: Decimal
  31. @column({ ...decimalConverter })
  32. public lastBalance: Decimal
  33. @column()
  34. public seriesId?: number
  35. @column()
  36. public episodeId?: number
  37. @computed()
  38. public series?: Series
  39. @computed()
  40. public episode?: Episode
  41. }