package fr.postgresjson.connexion import com.fasterxml.jackson.core.type.TypeReference import fr.postgresjson.entity.EntityI /* Select One */ inline fun EmbedExecutable.update( value: R, noinline block: SelectOneCallback = {} ): R? = update(object : TypeReference() {}, value, block) inline fun EmbedExecutable.selectOne( values: List, noinline block: SelectOneCallback = {} ): R? = selectOne(object : TypeReference() {}, values, block) inline fun EmbedExecutable.selectOne( values: Map, noinline block: SelectOneCallback = {} ): R? = selectOne(object : TypeReference() {}, values, block) inline fun EmbedExecutable.selectOne( vararg values: Pair, noinline block: SelectOneCallback = {} ): R? = selectOne(object : TypeReference() {}, values = values, block) /* Select Multiples */ inline fun EmbedExecutable.select( values: List, noinline block: SelectCallback = {} ): List = select(object : TypeReference>() {}, values, block) inline fun EmbedExecutable.select( values: Map, noinline block: SelectCallback = {} ): List = select(object : TypeReference>() {}, values, block) inline fun EmbedExecutable.select( vararg values: Pair, noinline block: SelectCallback = {} ): List = select(object : TypeReference>() {}, values = values, block) /* Select Paginated */ inline fun EmbedExecutable.select( page: Int, limit: Int, values: Map = emptyMap(), noinline block: SelectPaginatedCallback = {} ): Paginated = select(page, limit, object : TypeReference>() {}, values, block) inline fun EmbedExecutable.select( page: Int, limit: Int, vararg values: Pair, noinline block: SelectPaginatedCallback = {} ): Paginated = select(page, limit, object : TypeReference>() {}, values = values, block)