diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt new file mode 100644 index 0000000..1b990f0 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt @@ -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 TableConstructor.Scope.nullableSelfRowReference( + columnName: String, + onDelete: ForeignRowReference.OnDelete, +): ForeignRowReference?, DatabaseType.Nullable, DatabaseType.ROW_ID>> = + this.selfRowReference(columnName, this.types.nullableOf(this.rowIdColumn.type), onDelete) + + +public fun TableConstructor.Scope.nullableForeignRowReference( + columnName: String, + toTable: Table, + onDelete: ForeignRowReference.OnDelete, +): ForeignRowReference?, DatabaseType.Nullable, DatabaseType.ROW_ID>> = + this.foreignRowReference(columnName, this.types.nullableOf(this.types.ROW_ID(toTable)), toTable, onDelete) +