Event.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { Str, Uid, Attr, Num } from 'pinia-orm/dist/decorators'
  2. import ApiModel from '~/models/ApiModel'
  3. import { Assert, IriEncoded } from '~/models/decorators'
  4. import File from '~/models/Core/File'
  5. import Place from '~/models/Place/Place'
  6. import Country from '~/models/Core/Country'
  7. import Category from '~/models/Core/Category'
  8. /**
  9. * AP2i Model : Freemium / Event
  10. *
  11. * */
  12. export default class Event extends ApiModel {
  13. static entity = 'freemium/events'
  14. @Uid()
  15. declare id: number | string | null
  16. @Str(null)
  17. @Assert({ nullable: false, max: 255 })
  18. declare name: string | null
  19. @Str(null)
  20. @Assert({ nullable: false })
  21. declare datetimeStart: string
  22. @Str(null)
  23. @Assert({ nullable: false })
  24. declare datetimeEnd: string
  25. @Str(null)
  26. declare description: string
  27. @Attr(null)
  28. @IriEncoded(File)
  29. declare image: number | null
  30. @Str(null)
  31. @Assert({ max: 255, type: 'url' })
  32. declare url: string
  33. @Str(null)
  34. @Assert({ max: 255, type: 'url' })
  35. declare urlTicket: string
  36. @Attr(null)
  37. @IriEncoded(Place)
  38. declare place: number | null
  39. @Str(null)
  40. declare placeName: string | null
  41. @Str(null)
  42. declare streetAddress: string | null
  43. @Str(null)
  44. declare streetAddressSecond: string | null
  45. @Str(null)
  46. declare streetAddressThird: string | null
  47. @Str(null)
  48. declare postalCode: string | null
  49. @Str(null)
  50. declare addressCity: string | null
  51. @IriEncoded(Country)
  52. @Attr(null)
  53. declare addressCountry: number | null
  54. @Num(null)
  55. declare latitude: number | null
  56. @Num(null)
  57. declare longitude: number | null
  58. @Str('FREE')
  59. declare pricing: string | null
  60. @Num(null)
  61. @Assert({ nullable: true, positive: 'positive' })
  62. declare priceMini: number | null
  63. @Num(null)
  64. @Assert({ nullable: true, positive: 'positive' })
  65. declare priceMaxi: number | null
  66. @Attr(() => [])
  67. @IriEncoded(Category)
  68. declare categories: Array<string> | null
  69. }