From 5af11485b61716f2fc0904f25a849d347bd5b34f Mon Sep 17 00:00:00 2001 From: Savosin Denis Date: Mon, 12 May 2025 15:20:01 +0700 Subject: [PATCH] make entities not serializable --- .../dannecron/demo/db/entity/CityEntity.kt | 8 ------- .../demo/db/entity/CustomerEntity.kt | 7 ------- .../dannecron/demo/db/entity/ProductEntity.kt | 21 +------------------ .../demo/db/entity/order/OrderEntity.kt | 12 +---------- .../db/entity/order/OrderProductEntity.kt | 7 ------- 5 files changed, 2 insertions(+), 53 deletions(-) diff --git a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CityEntity.kt b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CityEntity.kt index 5266455..73487ed 100644 --- a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CityEntity.kt +++ b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CityEntity.kt @@ -1,8 +1,5 @@ package com.github.dannecron.demo.db.entity -import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization -import com.github.dannecron.demo.db.serialialization.UuidSerialization -import kotlinx.serialization.Serializable import org.springframework.data.annotation.Id import org.springframework.data.relational.core.mapping.Column import org.springframework.data.relational.core.mapping.Table @@ -10,20 +7,15 @@ import java.time.OffsetDateTime import java.util.UUID @Table("city") -@Serializable data class CityEntity( @Id val id: Long?, - @Serializable(with = UuidSerialization::class) val guid: UUID, val name: String, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "created_at") val createdAt: OffsetDateTime, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "updated_at") val updatedAt: OffsetDateTime?, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "deleted_at") val deletedAt: OffsetDateTime?, ) diff --git a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CustomerEntity.kt b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CustomerEntity.kt index 257c2a4..76fc14b 100644 --- a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CustomerEntity.kt +++ b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/CustomerEntity.kt @@ -1,8 +1,5 @@ package com.github.dannecron.demo.db.entity -import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization -import com.github.dannecron.demo.db.serialialization.UuidSerialization -import kotlinx.serialization.Serializable import org.springframework.data.annotation.Id import org.springframework.data.relational.core.mapping.Column import org.springframework.data.relational.core.mapping.Table @@ -10,18 +7,14 @@ import java.time.OffsetDateTime import java.util.UUID @Table("customer") -@Serializable data class CustomerEntity( @Id val id: Long?, - @Serializable(with = UuidSerialization::class) val guid: UUID, val name: String, val cityId: Long?, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "created_at") val createdAt: OffsetDateTime, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "updated_at") val updatedAt: OffsetDateTime?, ) diff --git a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/ProductEntity.kt b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/ProductEntity.kt index 1881f6a..1da29ad 100644 --- a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/ProductEntity.kt +++ b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/ProductEntity.kt @@ -1,42 +1,23 @@ package com.github.dannecron.demo.db.entity -import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization -import com.github.dannecron.demo.db.serialialization.UuidSerialization -import kotlinx.serialization.Serializable import org.springframework.data.annotation.Id import org.springframework.data.relational.core.mapping.Column import org.springframework.data.relational.core.mapping.Table import java.time.OffsetDateTime import java.util.UUID -import kotlin.math.pow -import kotlin.math.roundToInt @Table(value = "product") -@Serializable data class ProductEntity( @Id val id: Long?, - @Serializable(with = UuidSerialization::class) val guid: UUID, val name: String, val description: String?, val price: Long, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "created_at") val createdAt: OffsetDateTime, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "updated_at") val updatedAt: OffsetDateTime?, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "deleted_at") val deletedAt: OffsetDateTime?, -) { - fun getPriceDouble(): Double = (price.toDouble() / 100).roundTo(2) - - fun isDeleted(): Boolean = deletedAt != null - - private fun Double.roundTo(numFractionDigits: Int): Double { - val factor = 10.0.pow(numFractionDigits.toDouble()) - return (this * factor).roundToInt() / factor - } -} +) diff --git a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderEntity.kt b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderEntity.kt index 5422d07..3b8394a 100644 --- a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderEntity.kt +++ b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderEntity.kt @@ -1,8 +1,5 @@ package com.github.dannecron.demo.db.entity.order -import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization -import com.github.dannecron.demo.db.serialialization.UuidSerialization -import kotlinx.serialization.Serializable import org.springframework.data.annotation.Id import org.springframework.data.relational.core.mapping.Column import org.springframework.data.relational.core.mapping.Table @@ -10,22 +7,15 @@ import java.time.OffsetDateTime import java.util.UUID @Table(value = "order") -@Serializable data class OrderEntity( @Id val id: Long?, - @Serializable(with = UuidSerialization::class) val guid: UUID, val customerId: Long, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "delivered_at") val deliveredAt: OffsetDateTime?, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "created_at") val createdAt: OffsetDateTime, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "updated_at") val updatedAt: OffsetDateTime? -) { - fun isDelivered(): Boolean = deliveredAt != null -} +) diff --git a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderProductEntity.kt b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderProductEntity.kt index 0ca7500..d43e740 100644 --- a/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderProductEntity.kt +++ b/db/src/main/kotlin/com/github/dannecron/demo/db/entity/order/OrderProductEntity.kt @@ -1,8 +1,5 @@ package com.github.dannecron.demo.db.entity.order -import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization -import com.github.dannecron.demo.db.serialialization.UuidSerialization -import kotlinx.serialization.Serializable import org.springframework.data.annotation.Id import org.springframework.data.annotation.Transient import org.springframework.data.domain.Persistable @@ -12,19 +9,15 @@ import java.time.OffsetDateTime import java.util.UUID @Table(value = "order_product") -@Serializable data class OrderProductEntity( @Id - @Serializable(with = UuidSerialization::class) val guid: UUID, @Column(value = "order_id") val orderId: Long, @Column(value = "product_id") val productId: Long, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "created_at") val createdAt: OffsetDateTime, - @Serializable(with = OffsetDateTimeSerialization::class) @Column(value = "updated_at") val updatedAt: OffsetDateTime?, ): Persistable {