ReservationHistoryQueryService.java
package com.deveagles.be15_deveagles_be.features.schedules.query.service;
import com.deveagles.be15_deveagles_be.common.dto.PagedResponse;
import com.deveagles.be15_deveagles_be.common.dto.PagedResult;
import com.deveagles.be15_deveagles_be.common.dto.Pagination;
import com.deveagles.be15_deveagles_be.features.schedules.query.dto.response.ReservationHistoryResponse;
import com.deveagles.be15_deveagles_be.features.schedules.query.mapper.ReservationHistoryMapper;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ReservationHistoryQueryService {
private final ReservationHistoryMapper reservationHistoryMapper;
public PagedResponse<ReservationHistoryResponse> getReservationHistories(
Long shopId, int page, int size) {
int offset = page * size;
List<ReservationHistoryResponse> content =
reservationHistoryMapper.getReservationHistoryList(shopId, size, offset);
long total = reservationHistoryMapper.countReservationHistories(shopId);
Pagination pagination =
Pagination.builder()
.currentPage(page)
.totalPages((int) Math.ceil((double) total / size))
.totalItems(total)
.build();
return PagedResponse.from(new PagedResult<>(content, pagination));
}
}