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


import com.nisemoe.generated.tables.Beatmaps

import java.time.OffsetDateTime

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


/**
 * This class is generated by jOOQ.
 */
@Suppress("UNCHECKED_CAST")
open class BeatmapsRecord private constructor() : UpdatableRecordImpl<BeatmapsRecord>(Beatmaps.BEATMAPS) {

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

    open var artist: String?
        set(value): Unit = set(1, value)
        get(): String? = get(1) as String?

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

    open var creator: String?
        set(value): Unit = set(3, value)
        get(): String? = get(3) as String?

    open var source: String?
        set(value): Unit = set(4, value)
        get(): String? = get(4) as String?

    open var starRating: Double?
        set(value): Unit = set(5, value)
        get(): Double? = get(5) as Double?

    open var title: String?
        set(value): Unit = set(6, value)
        get(): String? = get(6) as String?

    open var version: String?
        set(value): Unit = set(7, value)
        get(): String? = get(7) as String?

    open var sysLastUpdate: OffsetDateTime?
        set(value): Unit = set(8, value)
        get(): OffsetDateTime? = get(8) as OffsetDateTime?

    open var lastReplayCheck: String?
        set(value): Unit = set(9, value)
        get(): String? = get(9) as String?

    open var beatmapFile: String?
        set(value): Unit = set(10, value)
        get(): String? = get(10) as String?

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

    open var totalLength: Int?
        set(value): Unit = set(12, value)
        get(): Int? = get(12) as Int?

    open var bpm: Double?
        set(value): Unit = set(13, value)
        get(): Double? = get(13) as Double?

    open var accuracy: Double?
        set(value): Unit = set(14, value)
        get(): Double? = get(14) as Double?

    open var ar: Double?
        set(value): Unit = set(15, value)
        get(): Double? = get(15) as Double?

    open var cs: Double?
        set(value): Unit = set(16, value)
        get(): Double? = get(16) as Double?

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

    open var countCircles: Int?
        set(value): Unit = set(18, value)
        get(): Int? = get(18) as Int?

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

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

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

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

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

    /**
     * Create a detached, initialised BeatmapsRecord
     */
    constructor(beatmapId: Int? = null, artist: String? = null, beatmapsetId: Int? = null, creator: String? = null, source: String? = null, starRating: Double? = null, title: String? = null, version: String? = null, sysLastUpdate: OffsetDateTime? = null, lastReplayCheck: String? = null, beatmapFile: String? = null, beatmapHash: String? = null, totalLength: Int? = null, bpm: Double? = null, accuracy: Double? = null, ar: Double? = null, cs: Double? = null, drain: Double? = null, countCircles: Int? = null, countSliders: Int? = null, countSpinners: Int? = null, maxCombo: Int? = null): this() {
        this.beatmapId = beatmapId
        this.artist = artist
        this.beatmapsetId = beatmapsetId
        this.creator = creator
        this.source = source
        this.starRating = starRating
        this.title = title
        this.version = version
        this.sysLastUpdate = sysLastUpdate
        this.lastReplayCheck = lastReplayCheck
        this.beatmapFile = beatmapFile
        this.beatmapHash = beatmapHash
        this.totalLength = totalLength
        this.bpm = bpm
        this.accuracy = accuracy
        this.ar = ar
        this.cs = cs
        this.drain = drain
        this.countCircles = countCircles
        this.countSliders = countSliders
        this.countSpinners = countSpinners
        this.maxCombo = maxCombo
        resetChangedOnNotNull()
    }
}
