package com.gcc.communityHall.service; import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import com.gcc.communityHall.entity.BookingCalendar; import com.gcc.communityHall.entity.BookingDetails; import com.gcc.communityHall.entity.BookingDetails.BookingStatus; import com.gcc.communityHall.entity.BookingDetails.RefundStatus; import com.gcc.communityHall.entity.EbDetails; import com.gcc.communityHall.entity.GccBlockingDate; public interface BookingService { BookingDetails getBookingsById(int BookingId); BookingDetails updateBookingDetails(BookingDetails bd); public String confirmTheDateAndSlot(String fromDate, String toDate, int days, int fromStartingSlot, int fromEndingSlot, int toStartingSlot, int toEndingSlot, int bookingId, int userId); public Map saveBookingDetails(Map formData); public BookingDetails updateBookingStatustoGCCBlocked(BookingDetails bookingDetails); public BookingDetails updateBookingStatus(int bookingId, BookingDetails.BookingStatus status, String comments); public BookingDetails updateBookingStatusById(int bookingId, BookingDetails.BookingStatus status, String comments); public EbDetails updateEbDetails(int bookingId, double startUnit, double endUnit, char status); //typeOfCancel depends { } String cancelBooking(int bookingId, BookingDetails.BookingStatus currentStatus, String comments); public String confirmBooking(int bookingId); public BookingDetails getBookingDetailsWithSettlement(int settlementId); //sreeja List getPresentsEventsByUserId(Integer hallId); List getPastsEventsByUserId(Integer hallId); List getFuturesEventsByUserId(Integer hallId); List getSettlementList(Integer hallId); public List getFilteredBookings(LocalDate fromDate, LocalDate toDate, List hallIds); public List getPastData(int hall_id); public String processEbDetailsAndDamage( int bookingId, int ebId, double startingReading, double endingReading, float usedUnit, double ebAmount, String assetNames[], String comments[], int quantities[], Double assetAmounts[], MultipartFile assetImages[]); public int checkUserBookinglimitation(int userId); List getAllBookingsByUserId(Integer userId); List> getAllBookingEventsByUserId(Integer userId); //List getAllBookingDetailsWithStatus(String fromDate, String toDate, String bookingStatus); //List getAllPaymentsDetails( String fromDate, String toDate); List getBookingUserDetailsReport(String fromDate, String toDate); List getBookingHallDetailsReport(String fromDate, String toDate); List getBlockedEvents(LocalDate fromDate, LocalDate toDate, List hallIds); List> getOfflineBookings(); List getBookedslots(LocalDate fromDate, LocalDate endDate, List hallIdList); BookingDetails updateCancelledBookingStatus(int bookingId, BookingStatus status, String comments); BookingDetails updateRefundStatus(int bookingId, RefundStatus status); //officer service List getAllBookingDetailsByZone(String fromDate, String toDate, String zone); List getAllBookingDetailsByZoneWithStatus(String fromDate, String toDate, String zone, String bookingStatus); List getAllPaymentsDetailsByZone(String fromDate, String toDate, String zone); List getBookingHallDetailsReportByZone(String fromDate, String toDate, String zone); Optional updateBookingDatesAndCalendar(int bookingId, String startDate, String endDate); List getBookingHallDetailsReportByZone1(String fromDate, String toDate, String zone, Integer hallId); List getGccBlockingEvents(String hallId); int getBlockedHallCount(String blockingReason, Date startDate, Date endDate); @Transactional void cancelAllBookings(String fromDate, String toDate, List hallIdsList, String reasonforblocking, List selectedBookings, String updatedBy, String[] descriptions, MultipartFile[] documents); List findBookingDetailsByBookingId(Long bookingId); //admin dashboard Map> getBookingStatistics(LocalDate fromDate, LocalDate toDate, String zone, String division, Integer hallid, String userType); public List> getBookingDetailsByHallId(int hallId); //officer dashboard Map> getOfficerDashboard(LocalDate fromDate, LocalDate toDate, String zone, String division, Integer hallid, String userType); List> getHallDetailsForOfficer(Integer hallIid); //List getAllPaymentsDetails(String fromDate, String toDate, String paymentStatus); //admin reports List getBookingDetailsByBookingDate(String fromDate, String toDate, String zone, String division, Integer hallid); List getBookingDetailsByEventDate(String fromDate, String toDate, String zone, String division, Integer hallid); List getBookingDetailsByBookingDateWithStatus(String fromDate, String toDate, String bookingStatus, String zone, String division, Integer hallid); List getBookingDetailsByEventDateWithStatus(String fromDate, String toDate, String bookingStatus, String zone, String division, Integer hallid); List getAllPaymentsDetails(String fromDate, String toDate, String paymentStatus, String zone, String division, Integer hallid); List getBookingHallDetailsReportByBookingDate(String fromDate, String toDate, String zone, String division, Integer hallid); List getBookingHallDetailsReportByEventDate(String fromDate, String toDate, String zone, String division, Integer hallid); List getAllBookingsettlementDetailsByBookingDate(String fromDate, String toDate); List getAllBookingsettlementDetailsByBookingDateWithStatus(String fromDate, String toDate, String refundStatus); List getAllBookingsettlementDetailsByEventDate(String fromDate, String toDate); List getAllBookingsettlementDetailsByEventDateWithStatus(String fromDate, String toDate, String refundStatus); List getAllBookingDetailsBookingDateByZone(String fromDate, String toDate, String zone); List getAllBookingDetailsEventDateByZone(String fromDate, String toDate, String zone); List getAllBookingDetailsBookingDateByZoneWithStatus(String fromDate, String toDate, String zone, String bookingStatus); List getAllBookingDetailsEventDateByZoneWithStatus(String fromDate, String toDate, String zone, String bookingStatus); List getAllBookingsettlementDetailsByZoneByBookingDate(String fromDate, String toDate, String zone); List getAllBookingsettlementDetailsByZoneByEventDate(String fromDate, String toDate, String zone); List getAllBookingsettlementDetailsByZoneByBookingDateWithStatus(String fromDate, String toDate, String zone, String refundStatus); List getAllBookingsettlementDetailsByZoneByEventDateWithStatus(String fromDate, String toDate, String zone, String refundStatus); List getBookingHallDetailsReportByZoneByBookingDate(String fromDate, String toDate, String zone); List getBookingHallDetailsReportByZoneByEventDate(String fromDate, String toDate, String zone); List getBookingHallDetailsReportByZoneByBookingDateHallname(String fromDate, String toDate, String zone, Integer hallId); List getBookingHallDetailsReportByZoneByEventDateHallname(String fromDate, String toDate, String zone, Integer hallId); BookingDetails saveebdetails(int bookingId, double startingReading, MultipartFile startingReadingimage); String confirmStateBooking(int bookingId); String uploadNOCFile(MultipartFile file, int bookingId); //gccapps List getApprovedBookingDetails(); List getRejectedBookingDetails(); List getAllPaymentsDetails(String fromDate, String toDate); List getPastsEvents(); List getPresentsEvents(); List getFuturesEvents(); List getSettlementApprovedList(); List> getHallDetails(Integer hall_id); List getWaitingforNOCapproval(); List getAllExtraPaymentsDetails(String fromDate, String toDate, String paymentStatus, String zone, String division, Integer hallid); //developer List getTransactionresponse(String fromDate, String toDate, Long bookingId, Long hallId); List getRefundResponse(String fromDate, String toDate, Long bookingId); List getBookingCalendarDetails(String fromDate, String toDate, Long bookingId, String hallName); List getBookingsByDateAndHall(String bookingDate, Long hallId); BookingDetails updateRefundStatusScheduler(int bookingId, RefundStatus status); List getCounterWiseBookingCount(String fromDate, String toDate); List getHallWiseBookingDetails(String fromDate, String toDate, String CounterId); List getBookingDetailsForAllHalls(String fromDate, String toDate, String CounterId, Integer hallid); List getCounterWiseBookingDetails(String fromDate, String toDate); }