Package com.mapmyjourney.backend.service
Class ExpenseService
java.lang.Object
com.mapmyjourney.backend.service.ExpenseService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateExpense(Long tripId, ExpenseCreateRequestDTO request, Long creatorUserId) 1.voiddeleteExpense(Long expenseId, Long userId) Elimina un gasto.getExpenseById(Long expenseId) 3.getTripExpenses(Long tripId) 2.voidmarkSplitAsPaid(Long splitId) 4.updateExpense(Long expenseId, ExpenseCreateRequestDTO request, Long userId) Actualiza un gasto existente.
-
Constructor Details
-
ExpenseService
public ExpenseService()
-
-
Method Details
-
createExpense
@Transactional public ExpenseDTO createExpense(Long tripId, ExpenseCreateRequestDTO request, Long creatorUserId) 1. Crea un nuevo gasto y divide entre participantes. Valida que el viaje y los usuarios existan.- Parameters:
tripId- ID del viaje donde se registra el gastorequest- DTO con los datos del gastocreatorUserId- ID del usuario que crea el gasto (quien paga)- Returns:
- DTO del gasto creado
- Throws:
ResourceNotFoundException- si el viaje o usuario no existeValidationException- si el monto es inválido o no hay participantes
-
getTripExpenses
2. Obtiene todos los gastos de un viaje.- Parameters:
tripId- ID del viaje- Returns:
- Lista de DTOs de gastos del viaje
-
getExpenseById
3. Obtiene un gasto por ID.- Parameters:
expenseId- ID del gasto- Returns:
- DTO del gasto encontrado
- Throws:
ResourceNotFoundException- si el gasto no existe
-
markSplitAsPaid
4. Marca una división como pagada.- Parameters:
splitId- ID de la división a marcar como pagada
-
updateExpense
@Transactional public ExpenseDTO updateExpense(Long expenseId, ExpenseCreateRequestDTO request, Long userId) Actualiza un gasto existente. Solo quien pagó el gasto puede actualizarlo.- Parameters:
expenseId- ID del gasto a actualizarrequest- DTO con los nuevos datosuserId- ID del usuario que hace la actualización- Returns:
- DTO del gasto actualizado
- Throws:
ResourceNotFoundException- si el gasto no existeValidationException- si el usuario no es quien pagó o los datos son inválidos
-
deleteExpense
Elimina un gasto. Solo quien pagó el gasto puede eliminarlo.- Parameters:
expenseId- ID del gasto a eliminaruserId- ID del usuario que hace la eliminación- Throws:
ResourceNotFoundException- si el gasto no existeValidationException- si el usuario no es quien pagó
-