Package com.mapmyjourney.backend.service
Class ExpenseSplitService
java.lang.Object
com.mapmyjourney.backend.service.ExpenseSplitService
Servicio para gestionar las divisiones de gastos.
Maneja la creación, actualización y liquidación de divisiones de gastos.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateSplit(Long expenseId, Long participantUserId, BigDecimal amount, BigDecimal percentage) Crea una nueva división de gasto.voiddeleteSplit(Long splitId) Elimina una división de gasto.getExpenseSplits(Long expenseId) Obtiene todas las divisiones de un gasto.Obtiene una división específica por ID.getTotalPendingDebt(Long userId) Calcula el total de deudas pendientes de un usuario.getUserPendingDebts(Long userId) Obtiene todas las deudas pendientes de un usuario.markAsPaid(Long splitId) Marca una división como pagada.markAsUnpaid(Long splitId) Marca una división como no pagada.updateSplitAmount(Long splitId, BigDecimal newAmount) Actualiza el monto de una división.
-
Constructor Details
-
ExpenseSplitService
public ExpenseSplitService()
-
-
Method Details
-
createSplit
@Transactional public ExpenseSplitDTO createSplit(Long expenseId, Long participantUserId, BigDecimal amount, BigDecimal percentage) Crea una nueva división de gasto.- Parameters:
expenseId- ID del gastoparticipantUserId- ID del usuario participanteamount- Monto que debe pagar este usuariopercentage- Porcentaje (opcional, para divisiones por porcentaje)- Returns:
- DTO de la división creada
-
getExpenseSplits
Obtiene todas las divisiones de un gasto.- Parameters:
expenseId- ID del gasto- Returns:
- Lista de DTOs de divisiones
-
getUserPendingDebts
Obtiene todas las deudas pendientes de un usuario.- Parameters:
userId- ID del usuario- Returns:
- Lista de DTOs de divisiones pendientes
-
markAsPaid
Marca una división como pagada.- Parameters:
splitId- ID de la división- Returns:
- DTO de la división actualizada
-
markAsUnpaid
Marca una división como no pagada.- Parameters:
splitId- ID de la división- Returns:
- DTO de la división actualizada
-
getSplit
Obtiene una división específica por ID.- Parameters:
splitId- ID de la división- Returns:
- DTO de la división
-
deleteSplit
Elimina una división de gasto.- Parameters:
splitId- ID de la división
-
getTotalPendingDebt
Calcula el total de deudas pendientes de un usuario.- Parameters:
userId- ID del usuario- Returns:
- Total de deudas pendientes
-
updateSplitAmount
Actualiza el monto de una división.- Parameters:
splitId- ID de la divisiónnewAmount- Nuevo monto- Returns:
- DTO de la división actualizada
-