Nullable row references

This commit is contained in:
Andrew Golovashevich 2025-02-26 15:40:08 +03:00
parent f48b0edbc7
commit 34b52e548e

View File

@ -0,0 +1,25 @@
@file:JvmName("_RowReferenceKt")
package ru.landgrafhomyak.db.serdha0.user_commons.construction
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
import ru.landgrafhomyak.db.serdha0.api.table.ForeignRowReference
import ru.landgrafhomyak.db.serdha0.api.table.RowId
import ru.landgrafhomyak.db.serdha0.api.table.Table
import ru.landgrafhomyak.db.serdha0.api.table.TableConstructor
public fun <tUE : Any> TableConstructor.Scope<tUE>.nullableSelfRowReference(
columnName: String,
onDelete: ForeignRowReference.OnDelete,
): ForeignRowReference<tUE, tUE, RowId<tUE>?, DatabaseType.Nullable<RowId<tUE>, DatabaseType.ROW_ID<tUE>>> =
this.selfRowReference(columnName, this.types.nullableOf(this.rowIdColumn.type), onDelete)
public fun <tUE : Any, ttUE : Any> TableConstructor.Scope<tUE>.nullableForeignRowReference(
columnName: String,
toTable: Table<ttUE, *>,
onDelete: ForeignRowReference.OnDelete,
): ForeignRowReference<tUE, ttUE, RowId<ttUE>?, DatabaseType.Nullable<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>>> =
this.foreignRowReference(columnName, this.types.nullableOf(this.types.ROW_ID(toTable)), toTable, onDelete)