package space.luminic.finance.services import space.luminic.finance.dtos.TransactionDTO import space.luminic.finance.models.Transaction import java.time.LocalDate interface TransactionService { data class TransactionsFilter( val dateFrom: LocalDate? = null, val dateTo: LocalDate? = null, ) fun getTransactions( spaceId: Int, filter: TransactionsFilter, sortBy: String, sortDirection: String ): List fun getTransaction(spaceId: Int, transactionId: Int): Transaction fun createTransaction(spaceId: Int, transaction: TransactionDTO.CreateTransactionDTO): Int fun batchCreate(spaceId: Int, transactions: List, createdById: Int?) fun updateTransaction(spaceId: Int, transactionId: Int, transaction: TransactionDTO.UpdateTransactionDTO): Int fun deleteTransaction(spaceId: Int, transactionId: Int) fun deleteByRecurrentId(spaceId: Int, recurrentId: Int) }