/*
 * This file is generated by jOOQ.
 */
package com.nisemoe.generated.tables.records


import com.nisemoe.generated.tables.Scores

import java.time.LocalDateTime
import java.time.OffsetDateTime

import org.jooq.Record1
import org.jooq.impl.UpdatableRecordImpl


/**
 * This class is generated by jOOQ.
 */
@Suppress("UNCHECKED_CAST")
open class ScoresRecord private constructor() : UpdatableRecordImpl<ScoresRecord>(Scores.SCORES) {

    open var id: Int?
        set(value): Unit = set(0, value)
        get(): Int? = get(0) as Int?

    open var beatmapId: Int?
        set(value): Unit = set(1, value)
        get(): Int? = get(1) as Int?

    open var count_100: Int?
        set(value): Unit = set(2, value)
        get(): Int? = get(2) as Int?

    open var count_300: Int?
        set(value): Unit = set(3, value)
        get(): Int? = get(3) as Int?

    open var count_50: Int?
        set(value): Unit = set(4, value)
        get(): Int? = get(4) as Int?

    open var countMiss: Int?
        set(value): Unit = set(5, value)
        get(): Int? = get(5) as Int?

    open var date: LocalDateTime?
        set(value): Unit = set(6, value)
        get(): LocalDateTime? = get(6) as LocalDateTime?

    open var maxCombo: Int?
        set(value): Unit = set(7, value)
        get(): Int? = get(7) as Int?

    open var mods: Int?
        set(value): Unit = set(8, value)
        get(): Int? = get(8) as Int?

    open var perfect: Boolean?
        set(value): Unit = set(9, value)
        get(): Boolean? = get(9) as Boolean?

    open var pp: Double?
        set(value): Unit = set(10, value)
        get(): Double? = get(10) as Double?

    open var rank: String?
        set(value): Unit = set(11, value)
        get(): String? = get(11) as String?

    open var replayAvailable: Boolean?
        set(value): Unit = set(12, value)
        get(): Boolean? = get(12) as Boolean?

    open var replayId: Long?
        set(value): Unit = set(13, value)
        get(): Long? = get(13) as Long?

    open var score: Long?
        set(value): Unit = set(14, value)
        get(): Long? = get(14) as Long?

    open var userId: Long?
        set(value): Unit = set(15, value)
        get(): Long? = get(15) as Long?

    open var replay: ByteArray?
        set(value): Unit = set(16, value)
        get(): ByteArray? = get(16) as ByteArray?

    open var ur: Double?
        set(value): Unit = set(17, value)
        get(): Double? = get(17) as Double?

    open var frametime: Double?
        set(value): Unit = set(18, value)
        get(): Double? = get(18) as Double?

    open var edgeHits: Int?
        set(value): Unit = set(19, value)
        get(): Int? = get(19) as Int?

    open var snaps: Int?
        set(value): Unit = set(20, value)
        get(): Int? = get(20) as Int?

    @Suppress("INAPPLICABLE_JVM_NAME")
    @set:JvmName("setIsBanned")
    open var isBanned: Boolean?
        set(value): Unit = set(21, value)
        get(): Boolean? = get(21) as Boolean?

    open var adjustedUr: Double?
        set(value): Unit = set(22, value)
        get(): Double? = get(22) as Double?

    open var meanError: Double?
        set(value): Unit = set(23, value)
        get(): Double? = get(23) as Double?

    open var errorVariance: Double?
        set(value): Unit = set(24, value)
        get(): Double? = get(24) as Double?

    open var errorStandardDeviation: Double?
        set(value): Unit = set(25, value)
        get(): Double? = get(25) as Double?

    open var minimumError: Double?
        set(value): Unit = set(26, value)
        get(): Double? = get(26) as Double?

    open var maximumError: Double?
        set(value): Unit = set(27, value)
        get(): Double? = get(27) as Double?

    open var errorRange: Double?
        set(value): Unit = set(28, value)
        get(): Double? = get(28) as Double?

    open var errorCoefficientOfVariation: Double?
        set(value): Unit = set(29, value)
        get(): Double? = get(29) as Double?

    open var errorKurtosis: Double?
        set(value): Unit = set(30, value)
        get(): Double? = get(30) as Double?

    open var errorSkewness: Double?
        set(value): Unit = set(31, value)
        get(): Double? = get(31) as Double?

    open var sentDiscordNotification: Boolean?
        set(value): Unit = set(32, value)
        get(): Boolean? = get(32) as Boolean?

    open var addedAt: OffsetDateTime?
        set(value): Unit = set(33, value)
        get(): OffsetDateTime? = get(33) as OffsetDateTime?

    open var version: Int?
        set(value): Unit = set(34, value)
        get(): Int? = get(34) as Int?

    open var keypressesTimes: Array<Double?>?
        set(value): Unit = set(35, value)
        get(): Array<Double?>? = get(35) as Array<Double?>?

    open var keypressesMedian: Double?
        set(value): Unit = set(36, value)
        get(): Double? = get(36) as Double?

    open var keypressesStandardDeviation: Double?
        set(value): Unit = set(37, value)
        get(): Double? = get(37) as Double?

    open var sliderendReleaseTimes: Array<Double?>?
        set(value): Unit = set(38, value)
        get(): Array<Double?>? = get(38) as Array<Double?>?

    open var sliderendReleaseMedian: Double?
        set(value): Unit = set(39, value)
        get(): Double? = get(39) as Double?

    open var sliderendReleaseStandardDeviation: Double?
        set(value): Unit = set(40, value)
        get(): Double? = get(40) as Double?

    open var keypressesMedianAdjusted: Double?
        set(value): Unit = set(41, value)
        get(): Double? = get(41) as Double?

    open var keypressesStandardDeviationAdjusted: Double?
        set(value): Unit = set(42, value)
        get(): Double? = get(42) as Double?

    open var sliderendReleaseMedianAdjusted: Double?
        set(value): Unit = set(43, value)
        get(): Double? = get(43) as Double?

    open var sliderendReleaseStandardDeviationAdjusted: Double?
        set(value): Unit = set(44, value)
        get(): Double? = get(44) as Double?

    open var judgements: ByteArray?
        set(value): Unit = set(45, value)
        get(): ByteArray? = get(45) as ByteArray?

    // -------------------------------------------------------------------------
    // Primary key information
    // -------------------------------------------------------------------------

    override fun key(): Record1<Int?> = super.key() as Record1<Int?>

    /**
     * Create a detached, initialised ScoresRecord
     */
    constructor(id: Int? = null, beatmapId: Int? = null, count_100: Int? = null, count_300: Int? = null, count_50: Int? = null, countMiss: Int? = null, date: LocalDateTime? = null, maxCombo: Int? = null, mods: Int? = null, perfect: Boolean? = null, pp: Double? = null, rank: String? = null, replayAvailable: Boolean? = null, replayId: Long? = null, score: Long? = null, userId: Long? = null, replay: ByteArray? = null, ur: Double? = null, frametime: Double? = null, edgeHits: Int? = null, snaps: Int? = null, isBanned: Boolean? = null, adjustedUr: Double? = null, meanError: Double? = null, errorVariance: Double? = null, errorStandardDeviation: Double? = null, minimumError: Double? = null, maximumError: Double? = null, errorRange: Double? = null, errorCoefficientOfVariation: Double? = null, errorKurtosis: Double? = null, errorSkewness: Double? = null, sentDiscordNotification: Boolean? = null, addedAt: OffsetDateTime? = null, version: Int? = null, keypressesTimes: Array<Double?>? = null, keypressesMedian: Double? = null, keypressesStandardDeviation: Double? = null, sliderendReleaseTimes: Array<Double?>? = null, sliderendReleaseMedian: Double? = null, sliderendReleaseStandardDeviation: Double? = null, keypressesMedianAdjusted: Double? = null, keypressesStandardDeviationAdjusted: Double? = null, sliderendReleaseMedianAdjusted: Double? = null, sliderendReleaseStandardDeviationAdjusted: Double? = null, judgements: ByteArray? = null): this() {
        this.id = id
        this.beatmapId = beatmapId
        this.count_100 = count_100
        this.count_300 = count_300
        this.count_50 = count_50
        this.countMiss = countMiss
        this.date = date
        this.maxCombo = maxCombo
        this.mods = mods
        this.perfect = perfect
        this.pp = pp
        this.rank = rank
        this.replayAvailable = replayAvailable
        this.replayId = replayId
        this.score = score
        this.userId = userId
        this.replay = replay
        this.ur = ur
        this.frametime = frametime
        this.edgeHits = edgeHits
        this.snaps = snaps
        this.isBanned = isBanned
        this.adjustedUr = adjustedUr
        this.meanError = meanError
        this.errorVariance = errorVariance
        this.errorStandardDeviation = errorStandardDeviation
        this.minimumError = minimumError
        this.maximumError = maximumError
        this.errorRange = errorRange
        this.errorCoefficientOfVariation = errorCoefficientOfVariation
        this.errorKurtosis = errorKurtosis
        this.errorSkewness = errorSkewness
        this.sentDiscordNotification = sentDiscordNotification
        this.addedAt = addedAt
        this.version = version
        this.keypressesTimes = keypressesTimes
        this.keypressesMedian = keypressesMedian
        this.keypressesStandardDeviation = keypressesStandardDeviation
        this.sliderendReleaseTimes = sliderendReleaseTimes
        this.sliderendReleaseMedian = sliderendReleaseMedian
        this.sliderendReleaseStandardDeviation = sliderendReleaseStandardDeviation
        this.keypressesMedianAdjusted = keypressesMedianAdjusted
        this.keypressesStandardDeviationAdjusted = keypressesStandardDeviationAdjusted
        this.sliderendReleaseMedianAdjusted = sliderendReleaseMedianAdjusted
        this.sliderendReleaseStandardDeviationAdjusted = sliderendReleaseStandardDeviationAdjusted
        this.judgements = judgements
        resetChangedOnNotNull()
    }
}
