package com.tourguide.modules.order.service; import com.tourguide.modules.order.mapper.TourOrderMapper; import com.tourguide.modules.user.entity.GuideReceivingSession; import com.tourguide.modules.user.mapper.GuideRealtimeStatusMapper; import com.tourguide.modules.user.mapper.GuideReceivingSessionMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; @Service public class GuideSessionTransitionService { private final GuideReceivingSessionMapper sessionMapper; private final TourOrderMapper orderMapper; private final GuideRealtimeStatusMapper realtimeStatusMapper; public GuideSessionTransitionService(GuideReceivingSessionMapper sessionMapper, TourOrderMapper orderMapper, GuideRealtimeStatusMapper realtimeStatusMapper) { this.sessionMapper = sessionMapper; this.orderMapper = orderMapper; this.realtimeStatusMapper = realtimeStatusMapper; } @Transactional public void startIfDue(GuideReceivingSession session) { if (sessionMapper.startDueSession(session.getId()) != 1) return; orderMapper.startSessionOrders(session.getId(), LocalDateTime.now()); realtimeStatusMapper.disableReceiving(session.getGuideId()); } }