forked from maiora/backend-api
178 lines
6.0 KiB
Kotlin
178 lines
6.0 KiB
Kotlin
package eu.maiora.db
|
|
|
|
import com.fasterxml.jackson.databind.deser.impl.CreatorCandidate.Param
|
|
import eu.maiora.db.AccountsTable.entityId
|
|
import eu.maiora.db.ViewEcommercePrezSconDispTable.double
|
|
import eu.maiora.db.ViewEcommercePrezSconDispTable.integer
|
|
import eu.maiora.db.ViewEcommercePrezSconDispTable.long
|
|
import eu.maiora.db.ViewEcommercePrezSconDispTable.varchar
|
|
import eu.maiora.model.*
|
|
import kotlinx.coroutines.Dispatchers
|
|
import org.jetbrains.exposed.dao.*
|
|
import org.jetbrains.exposed.dao.id.EntityID
|
|
import org.jetbrains.exposed.dao.id.IdTable
|
|
import org.jetbrains.exposed.sql.Table
|
|
import org.jetbrains.exposed.sql.Transaction
|
|
import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction
|
|
|
|
object AccountsTable : IdTable<Int>("accounts"){
|
|
override val id = integer("id").entityId()
|
|
val username = varchar("username", 255)
|
|
val password = varchar("password", 255)
|
|
|
|
override val primaryKey = PrimaryKey(id)
|
|
}
|
|
|
|
object ArticoliCrossQRicambiTable : IdTable<Int>("articoli_cross_qricambi"){
|
|
override val id = ArticoliCrossQRicambiTable.integer("id").entityId()
|
|
val codiceArticolo = varchar("codice_articolo", 50)
|
|
val codiceCross = varchar("codice_cross", 50)
|
|
val tipo = varchar("tipo", 2)
|
|
val costruttore = varchar("costruttore", 50)
|
|
}
|
|
|
|
object ViewEcommerceArticoliTable : IdTable<Long>("view_ecommerce_articoli"){
|
|
override val id = ViewEcommerceArticoliTable.long("id").entityId()
|
|
val codice = varchar("codice", 20)
|
|
val descrizione = varchar("descrizione", 255)
|
|
}
|
|
|
|
object ViewClientiAgentiTable : IdTable<Long>("view_clienti_agenti"){
|
|
override val id = ViewClientiAgentiTable.long("id_cliente").entityId()
|
|
val cliente = varchar("cliente", 255)
|
|
val idAgente = long("id_agente")
|
|
val username = varchar("username", 255)
|
|
}
|
|
|
|
object ViewEcommercePrezSconDispTable : IdTable<Long>("view_ecommerce_prez_scon_disp"){
|
|
override val id = ViewEcommercePrezSconDispTable.long("id").entityId()
|
|
val idCliente = long("id_cliente")
|
|
val idArticolo = long("id_articolo")
|
|
val idMagazzino = long("id_magazzino")
|
|
val magazzino = varchar("magazzino", 255)
|
|
val valoreCarcassa = double("valore_carcassa")
|
|
val prezzo = double("prezzo")
|
|
val sconto = double("sconto")
|
|
val sconto1 = double("sconto_1")
|
|
val sconto2 = double("sconto_2")
|
|
val sconto3 = double("sconto_3")
|
|
val netto = double("netto")
|
|
val numeroPezzi = integer("numero_pezzi")
|
|
}
|
|
|
|
object ParametriTable : IdTable<Int>("parametri"){
|
|
override val id = integer("id").entityId()
|
|
val chiave = varchar("chiave", 255)
|
|
val valore = varchar("valore", 255)
|
|
|
|
override val primaryKey = PrimaryKey(id)
|
|
}
|
|
|
|
class AccountsDAO(id: EntityID<Int>) :IntEntity(id) {
|
|
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
|
|
|
var username by AccountsTable.username
|
|
var password by AccountsTable.password
|
|
}
|
|
|
|
class ArticoliCrossQRicambiDAO(id: EntityID<Int>) :IntEntity(id) {
|
|
companion object : IntEntityClass<ArticoliCrossQRicambiDAO>(ArticoliCrossQRicambiTable)
|
|
|
|
var codiceArticolo by ArticoliCrossQRicambiTable.codiceArticolo
|
|
var codiceCross by ArticoliCrossQRicambiTable.codiceCross
|
|
var tipo by ArticoliCrossQRicambiTable.tipo
|
|
var costruttore by ArticoliCrossQRicambiTable.costruttore
|
|
}
|
|
|
|
class ViewEcommerceArticoliDAO(id: EntityID<Long>) :LongEntity(id) {
|
|
companion object : LongEntityClass<ViewEcommerceArticoliDAO>(ViewEcommerceArticoliTable)
|
|
|
|
var codice by ViewEcommerceArticoliTable.codice
|
|
var descrizione by ViewEcommerceArticoliTable.descrizione
|
|
}
|
|
|
|
class ViewClientiAgentiDAO(id: EntityID<Long>) :LongEntity(id) {
|
|
companion object : LongEntityClass<ViewClientiAgentiDAO>(ViewClientiAgentiTable)
|
|
|
|
var cliente by ViewClientiAgentiTable.cliente
|
|
var idAgente by ViewClientiAgentiTable.idAgente
|
|
var username by ViewClientiAgentiTable.username
|
|
}
|
|
|
|
class ViewEcommercePrezSconDispDAO(id: EntityID<Long>) :LongEntity(id) {
|
|
companion object : LongEntityClass<ViewEcommercePrezSconDispDAO>(ViewEcommercePrezSconDispTable)
|
|
|
|
val idCliente by ViewEcommercePrezSconDispTable.idCliente
|
|
val idArticolo by ViewEcommercePrezSconDispTable.idArticolo
|
|
val idMagazzino by ViewEcommercePrezSconDispTable.idMagazzino
|
|
val magazzino by ViewEcommercePrezSconDispTable.magazzino
|
|
val valoreCarcassa by ViewEcommercePrezSconDispTable.valoreCarcassa
|
|
val prezzo by ViewEcommercePrezSconDispTable.prezzo
|
|
val sconto by ViewEcommercePrezSconDispTable.sconto
|
|
val sconto1 by ViewEcommercePrezSconDispTable.sconto1
|
|
val sconto2 by ViewEcommercePrezSconDispTable.sconto2
|
|
val sconto3 by ViewEcommercePrezSconDispTable.sconto3
|
|
val netto by ViewEcommercePrezSconDispTable.netto
|
|
val numeroPezzi by ViewEcommercePrezSconDispTable.numeroPezzi
|
|
}
|
|
|
|
class ParametriDAO(id: EntityID<Int>) :IntEntity(id) {
|
|
companion object : IntEntityClass<ParametriDAO>(ParametriTable)
|
|
|
|
var chiave by ParametriTable.chiave
|
|
var valore by ParametriTable.valore
|
|
}
|
|
|
|
|
|
fun accountsDaoToModel(dao: AccountsDAO) = Accounts(
|
|
dao.id.value,
|
|
dao.username,
|
|
dao.password
|
|
)
|
|
|
|
fun articoliCrossQRicambiDaoToModel(dao: ArticoliCrossQRicambiDAO) = ArticoliCrossQRicambi(
|
|
dao.id.value,
|
|
dao.codiceArticolo,
|
|
dao.codiceCross,
|
|
dao.tipo,
|
|
dao.costruttore
|
|
)
|
|
|
|
fun viewEcommerceArticoliDaoToModel(dao: ViewEcommerceArticoliDAO) = ViewEcommerceArticoli(
|
|
dao.id.value,
|
|
dao.codice,
|
|
dao.descrizione
|
|
)
|
|
|
|
fun viewClientiAgentiDaoToModel(dao: ViewClientiAgentiDAO) = ViewClientiAgenti(
|
|
dao.id.value,
|
|
dao.cliente,
|
|
dao.idAgente,
|
|
dao.username
|
|
)
|
|
|
|
fun viewEcommercePrezSconDispDaoToModel(dao: ViewEcommercePrezSconDispDAO) = ViewEcommercePrezSconDisp(
|
|
dao.id.value,
|
|
dao.idCliente,
|
|
dao.idArticolo,
|
|
dao.idMagazzino,
|
|
dao.magazzino,
|
|
dao.valoreCarcassa,
|
|
dao.prezzo,
|
|
dao.sconto,
|
|
dao.sconto1,
|
|
dao.sconto2,
|
|
dao.sconto3,
|
|
dao.netto,
|
|
dao.numeroPezzi
|
|
)
|
|
|
|
fun parametriDaoToModel(dao: ParametriDAO) = Parametri(
|
|
dao.id.value,
|
|
dao.chiave,
|
|
dao.valore
|
|
)
|
|
|
|
|
|
suspend fun <T> suspendTransaction(block: Transaction.() -> T): T =
|
|
newSuspendedTransaction(Dispatchers.IO, statement = block) |