From e2a10512fbc70ed9988d8eadf1c8c9894288793b Mon Sep 17 00:00:00 2001
From: Andrew Golovashevich <landgrafhomyak@gmail.com>
Date: Wed, 4 Jun 2025 00:32:03 +0300
Subject: [PATCH] API for partial wrappers

---
 .../kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt | 2 ++
 .../db/skeleton1/api/module/ModuleScopedObject.kt              | 2 ++
 .../kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Column.kt  | 2 ++
 .../kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt   | 3 +++
 .../landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt | 2 ++
 5 files changed, 11 insertions(+)

diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
index b64e533..20521ad 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
@@ -43,6 +43,8 @@ public interface Module<mUE : Any> {
 	@get:JvmName("getMemberSubmodules")
 	public val memberSubmodules: Collection<Module<*>>
 
+	public val unwrappedModule: Module<mUE>
+
 	public interface Constructor<mUE : Any> {
 		@Suppress("INAPPLICABLE_JVM_NAME")
 		@get:JvmName("versionKey")
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
index 3cd89bd..fdfadf5 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
@@ -13,4 +13,6 @@ public interface ModuleScopedObject<mUE : Any> {
 
 	@ReflectionApi
 	public val objectClassProvider: ObjectClass.ImplementationsProvider
+
+	public val unwrappedModuleScopedObject: ModuleScopedObject<mUE>
 }
\ No newline at end of file
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Column.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Column.kt
index 88d6dea..e73adfb 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Column.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Column.kt
@@ -23,4 +23,6 @@ public interface Column<RT, tUE : Any> {
 	@Suppress("INAPPLICABLE_JVM_NAME")
 	@get:JvmName("willBeDeletedAfterUpgrade")
 	public val willBeDeletedAfterUpgrade: Boolean
+
+	public val unwrappedColumn: Column<RT, tUE>
 }
\ No newline at end of file
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt
index 8696f68..da76aaa 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt
@@ -3,12 +3,15 @@ package ru.landgrafhomyak.db.skeleton1.api.table
 import kotlin.jvm.JvmName
 import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
 import ru.landgrafhomyak.db.skeleton1.api.module.Module
+import ru.landgrafhomyak.db.skeleton1.api.module.ModuleScopedObject
 
 public interface Table<UE : Any, mUE : Any> {
 	@Suppress("INAPPLICABLE_JVM_NAME")
 	@get:JvmName("uExt")
 	public val uExt: UE
 
+	public val unwrappedTable: Table<UE, mUE>
+
 	@ReflectionApi
 	public val pathFromParentModuleRoot: List<String>?
 
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
index efb7e7f..2c18b26 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
@@ -19,4 +19,6 @@ public interface TableScopedObject<tUE : Any> {
 	@Suppress("INAPPLICABLE_JVM_NAME")
 	@get:JvmName("willBeDeletedAfterUpgrade")
 	public val willBeDeletedAfterUpgrade: Boolean
+
+	public val unwrappedTableScopedObject: TableScopedObject<tUE>
 }
\ No newline at end of file