package betclic.test

import betclic.test.configuration.configureExceptionHandling
import betclic.test.configuration.configureKoin
import betclic.test.configuration.configureRouting
import betclic.test.configuration.configureSerialization
import betclic.test.configuration.migrateTables
import io.ktor.server.application.*
import kotlinx.coroutines.runBlocking

fun main(args: Array<String>) {
    io.ktor.server.netty.EngineMain.main(args)
}

fun Application.module() {
    configuration()
    initialize()
}

fun Application.configuration() {
    configureKoin()
    configureSerialization()
    configureExceptionHandling()
    configureRouting()
}

fun Application.initialize() = runBlocking {
    migrateTables()
}