174 lines
3.0 KiB
TypeScript
174 lines
3.0 KiB
TypeScript
import { DateTime } from 'luxon'
|
|
import { BaseModel, column } from '@adonisjs/lucid/orm'
|
|
|
|
export default class Replay extends BaseModel {
|
|
@column({ isPrimary: true })
|
|
declare id: string
|
|
|
|
@column()
|
|
declare project_id: string
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
// The values from sentry are just arrays so convert them to json
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare trace_ids: string[]
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare error_ids: string[]
|
|
|
|
@column()
|
|
declare environment: string | null
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
// The values from sentry are just arrays so convert them to json
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare tags: string[]
|
|
|
|
@column()
|
|
declare user: string[]
|
|
|
|
|
|
@column()
|
|
declare sdk: any
|
|
|
|
|
|
@column()
|
|
declare os: any
|
|
|
|
|
|
@column()
|
|
declare browser: any
|
|
|
|
|
|
@column()
|
|
declare device: any
|
|
|
|
@column()
|
|
declare ota_updates: any
|
|
|
|
@column()
|
|
declare is_archived: boolean | null
|
|
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
// The values from sentry are just arrays so convert them to json
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare urls: any
|
|
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
// The values from sentry are just arrays so convert them to json
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare clicks: any
|
|
|
|
@column()
|
|
declare count_dead_clicks: number | null
|
|
|
|
@column()
|
|
declare count_rage_clicks: number | null
|
|
|
|
@column()
|
|
declare count_errors: number | null
|
|
|
|
@column()
|
|
declare duration: number | null
|
|
|
|
@column.dateTime()
|
|
declare finished_at: DateTime | null
|
|
|
|
@column.dateTime({serializeAs: 'started_at'})
|
|
declare started_at: DateTime | null
|
|
|
|
@column()
|
|
declare activity: number | null
|
|
|
|
@column()
|
|
declare count_urls: number | null
|
|
|
|
@column()
|
|
declare replay_type: string
|
|
|
|
@column()
|
|
declare count_segments: number | null
|
|
|
|
@column()
|
|
declare platform: string | null
|
|
|
|
|
|
@column({
|
|
prepare: (value) => {
|
|
// The values from sentry are just arrays so convert them to json
|
|
return JSON.stringify(value)
|
|
}
|
|
})
|
|
declare releases: any
|
|
|
|
@column()
|
|
declare dist: string | null
|
|
|
|
@column()
|
|
declare count_warnings: number | null
|
|
|
|
@column()
|
|
declare count_infos: number | null
|
|
|
|
@column()
|
|
declare has_viewed: boolean
|
|
|
|
@column.dateTime({ autoCreate: true })
|
|
declare created_at: DateTime
|
|
|
|
@column.dateTime({ autoCreate: true, autoUpdate: true })
|
|
declare updated_at: DateTime
|
|
|
|
public static allowedFields = [
|
|
'id',
|
|
'project_id',
|
|
'trace_ids',
|
|
'error_ids',
|
|
'environment',
|
|
'tags',
|
|
'user',
|
|
'sdk',
|
|
'os',
|
|
'browser',
|
|
'device',
|
|
'ota_updates',
|
|
'is_archived',
|
|
'urls',
|
|
'clicks',
|
|
'count_dead_clicks',
|
|
'count_rage_clicks',
|
|
'count_errors',
|
|
'duration',
|
|
'finished_at',
|
|
'started_at',
|
|
'activity',
|
|
'count_urls',
|
|
'replay_type',
|
|
'count_segments',
|
|
'platform',
|
|
'releases',
|
|
'dist',
|
|
'count_warnings',
|
|
'count_infos',
|
|
'has_viewed',
|
|
]
|
|
}
|