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


import com.nisemoe.generated.tables.ScoresSimilarity

import java.time.LocalDateTime

import org.jooq.Field
import org.jooq.Record1
import org.jooq.Record10
import org.jooq.Row10
import org.jooq.impl.UpdatableRecordImpl


/**
 * This class is generated by jOOQ.
 */
@Suppress("UNCHECKED_CAST")
open class ScoresSimilarityRecord private constructor() : UpdatableRecordImpl<ScoresSimilarityRecord>(ScoresSimilarity.SCORES_SIMILARITY), Record10<Int?, Int?, Long?, Long?, Double?, Double?, LocalDateTime?, Boolean?, Double?, Double?> {

    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 replayId_1: Long?
        set(value): Unit = set(2, value)
        get(): Long? = get(2) as Long?

    open var replayId_2: Long?
        set(value): Unit = set(3, value)
        get(): Long? = get(3) as Long?

    open var similarity: Double?
        set(value): Unit = set(4, value)
        get(): Double? = get(4) as Double?

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

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

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

    open var cgSimilarity: Double?
        set(value): Unit = set(8, value)
        get(): Double? = get(8) as Double?

    open var cgCorrelation: Double?
        set(value): Unit = set(9, value)
        get(): Double? = get(9) as Double?

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

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

    // -------------------------------------------------------------------------
    // Record10 type implementation
    // -------------------------------------------------------------------------

    override fun fieldsRow(): Row10<Int?, Int?, Long?, Long?, Double?, Double?, LocalDateTime?, Boolean?, Double?, Double?> = super.fieldsRow() as Row10<Int?, Int?, Long?, Long?, Double?, Double?, LocalDateTime?, Boolean?, Double?, Double?>
    override fun valuesRow(): Row10<Int?, Int?, Long?, Long?, Double?, Double?, LocalDateTime?, Boolean?, Double?, Double?> = super.valuesRow() as Row10<Int?, Int?, Long?, Long?, Double?, Double?, LocalDateTime?, Boolean?, Double?, Double?>
    override fun field1(): Field<Int?> = ScoresSimilarity.SCORES_SIMILARITY.ID
    override fun field2(): Field<Int?> = ScoresSimilarity.SCORES_SIMILARITY.BEATMAP_ID
    override fun field3(): Field<Long?> = ScoresSimilarity.SCORES_SIMILARITY.REPLAY_ID_1
    override fun field4(): Field<Long?> = ScoresSimilarity.SCORES_SIMILARITY.REPLAY_ID_2
    override fun field5(): Field<Double?> = ScoresSimilarity.SCORES_SIMILARITY.SIMILARITY
    override fun field6(): Field<Double?> = ScoresSimilarity.SCORES_SIMILARITY.CORRELATION
    override fun field7(): Field<LocalDateTime?> = ScoresSimilarity.SCORES_SIMILARITY.CREATED_AT
    override fun field8(): Field<Boolean?> = ScoresSimilarity.SCORES_SIMILARITY.SENT_DISCORD_NOTIFICATION
    override fun field9(): Field<Double?> = ScoresSimilarity.SCORES_SIMILARITY.CG_SIMILARITY
    override fun field10(): Field<Double?> = ScoresSimilarity.SCORES_SIMILARITY.CG_CORRELATION
    override fun component1(): Int? = id
    override fun component2(): Int? = beatmapId
    override fun component3(): Long? = replayId_1
    override fun component4(): Long? = replayId_2
    override fun component5(): Double? = similarity
    override fun component6(): Double? = correlation
    override fun component7(): LocalDateTime? = createdAt
    override fun component8(): Boolean? = sentDiscordNotification
    override fun component9(): Double? = cgSimilarity
    override fun component10(): Double? = cgCorrelation
    override fun value1(): Int? = id
    override fun value2(): Int? = beatmapId
    override fun value3(): Long? = replayId_1
    override fun value4(): Long? = replayId_2
    override fun value5(): Double? = similarity
    override fun value6(): Double? = correlation
    override fun value7(): LocalDateTime? = createdAt
    override fun value8(): Boolean? = sentDiscordNotification
    override fun value9(): Double? = cgSimilarity
    override fun value10(): Double? = cgCorrelation

    override fun value1(value: Int?): ScoresSimilarityRecord {
        set(0, value)
        return this
    }

    override fun value2(value: Int?): ScoresSimilarityRecord {
        set(1, value)
        return this
    }

    override fun value3(value: Long?): ScoresSimilarityRecord {
        set(2, value)
        return this
    }

    override fun value4(value: Long?): ScoresSimilarityRecord {
        set(3, value)
        return this
    }

    override fun value5(value: Double?): ScoresSimilarityRecord {
        set(4, value)
        return this
    }

    override fun value6(value: Double?): ScoresSimilarityRecord {
        set(5, value)
        return this
    }

    override fun value7(value: LocalDateTime?): ScoresSimilarityRecord {
        set(6, value)
        return this
    }

    override fun value8(value: Boolean?): ScoresSimilarityRecord {
        set(7, value)
        return this
    }

    override fun value9(value: Double?): ScoresSimilarityRecord {
        set(8, value)
        return this
    }

    override fun value10(value: Double?): ScoresSimilarityRecord {
        set(9, value)
        return this
    }

    override fun values(value1: Int?, value2: Int?, value3: Long?, value4: Long?, value5: Double?, value6: Double?, value7: LocalDateTime?, value8: Boolean?, value9: Double?, value10: Double?): ScoresSimilarityRecord {
        this.value1(value1)
        this.value2(value2)
        this.value3(value3)
        this.value4(value4)
        this.value5(value5)
        this.value6(value6)
        this.value7(value7)
        this.value8(value8)
        this.value9(value9)
        this.value10(value10)
        return this
    }

    /**
     * Create a detached, initialised ScoresSimilarityRecord
     */
    constructor(id: Int? = null, beatmapId: Int? = null, replayId_1: Long? = null, replayId_2: Long? = null, similarity: Double? = null, correlation: Double? = null, createdAt: LocalDateTime? = null, sentDiscordNotification: Boolean? = null, cgSimilarity: Double? = null, cgCorrelation: Double? = null): this() {
        this.id = id
        this.beatmapId = beatmapId
        this.replayId_1 = replayId_1
        this.replayId_2 = replayId_2
        this.similarity = similarity
        this.correlation = correlation
        this.createdAt = createdAt
        this.sentDiscordNotification = sentDiscordNotification
        this.cgSimilarity = cgSimilarity
        this.cgCorrelation = cgCorrelation
        resetChangedOnNotNull()
    }
}
