Version of module template moved to constructor

This commit is contained in:
Andrew Golovashevich 2025-02-13 11:28:58 +03:00
parent 1ce03daf99
commit e33489bda1

View File

@ -8,12 +8,10 @@ public interface ModuleTemplate<@Suppress("unused") mUE : Any> {
public interface Scope { public interface Scope {
public fun <nmUE : Any> createTemplate( public fun <nmUE : Any> createTemplate(
versionKey: String,
constructor: ModuleConstructor<nmUE>, constructor: ModuleConstructor<nmUE>,
): ModuleTemplate<nmUE> ): ModuleTemplate<nmUE>
public fun <omUE : Any, nmUE : Any> upgradeTemplate( public fun <omUE : Any, nmUE : Any> upgradeTemplate(
versionKey: String,
oldModule: ModuleTemplate<omUE>, oldModule: ModuleTemplate<omUE>,
upgrade: ModuleUpgrade<omUE, nmUE>, upgrade: ModuleUpgrade<omUE, nmUE>,
): ModuleTemplate<nmUE> ): ModuleTemplate<nmUE>
@ -21,18 +19,21 @@ public interface ModuleTemplate<@Suppress("unused") mUE : Any> {
public fun <omUE : Any, nmUE : Any> upgradeTemplateAndMerge( public fun <omUE : Any, nmUE : Any> upgradeTemplateAndMerge(
oldModule: ModuleTemplate<omUE>, oldModule: ModuleTemplate<omUE>,
upgrade: ModuleUpgrade<omUE, nmUE>, upgrade: ModuleUpgrade<omUE, nmUE>,
mergePoint: ModuleTemplate<nmUE> mergeTo: ModuleTemplate<nmUE>
): ModuleTemplate<nmUE> ): ModuleTemplate<nmUE>
} }
} }
public interface ModuleConstructor<mUE : Any> { public interface ModuleConstructor<mUE : Any> {
public val versionKey: String
public fun createSchema(context: CreateModuleScope): mUE public fun createSchema(context: CreateModuleScope): mUE
public suspend fun initData(ext: mUE, transaction: Transaction) {} public suspend fun initData(ext: mUE, transaction: Transaction) {}
} }
public interface ModuleUpgrade<omUE : Any, nmUE : Any> { public interface ModuleUpgrade<omUE : Any, nmUE : Any> {
public val versionKey: String
public fun upgradeSchema(context: UpgradeModuleScope<omUE>): nmUE public fun upgradeSchema(context: UpgradeModuleScope<omUE>): nmUE