Files
luminic-space-back-v2/src/main/kotlin/space/luminic/finance/dtos/TransactionDTO.kt
2025-10-31 15:31:55 +03:00

44 lines
1.3 KiB
Kotlin

package space.luminic.finance.dtos
import space.luminic.finance.models.Transaction.TransactionKind
import space.luminic.finance.models.Transaction.TransactionType
import java.math.BigDecimal
import java.time.LocalDate
data class TransactionDTO(
val id: Int? = null,
var parentId: Int? = null,
val type: TransactionType = TransactionType.EXPENSE,
val kind: TransactionKind = TransactionKind.INSTANT,
val category: CategoryDTO,
val comment: String,
val amount: BigDecimal,
val fees: BigDecimal = BigDecimal.ZERO,
val date: LocalDate,
val isDone: Boolean,
val createdBy: UserDTO,
val updatedBy: UserDTO? = null,
) {
data class CreateTransactionDTO(
val type: TransactionType = TransactionType.EXPENSE,
val kind: TransactionKind = TransactionKind.INSTANT,
val categoryId: Int,
val comment: String,
val amount: BigDecimal,
val fees: BigDecimal = BigDecimal.ZERO,
val date: LocalDate,
)
data class UpdateTransactionDTO(
val type: TransactionType = TransactionType.EXPENSE,
val kind: TransactionKind = TransactionKind.INSTANT,
val categoryId: Int,
val comment: String,
val amount: BigDecimal,
val fees: BigDecimal = BigDecimal.ZERO,
val isDone: Boolean,
val date: LocalDate
)
}