ReservationSettingInitializer.java
package com.deveagles.be15_deveagles_be.features.schedules.command.application.service;
import com.deveagles.be15_deveagles_be.common.exception.BusinessException;
import com.deveagles.be15_deveagles_be.common.exception.ErrorCode;
import com.deveagles.be15_deveagles_be.features.schedules.command.domain.aggregate.ReservationSetting;
import com.deveagles.be15_deveagles_be.features.schedules.command.domain.aggregate.ReservationSettingId;
import com.deveagles.be15_deveagles_be.features.schedules.command.domain.repository.ReservationSettingRepository;
import java.time.LocalTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class ReservationSettingInitializer {
private final ReservationSettingRepository reservationSettingRepository;
public void initDefault(Long shopId) {
List<ReservationSetting> existing = reservationSettingRepository.findAllByShopId(shopId);
if (!existing.isEmpty()) {
throw new BusinessException(ErrorCode.RESERVATION_SETTING_ALREADY_EXISTS);
}
for (int day = 1; day <= 7; day++) {
ReservationSetting setting =
ReservationSetting.builder()
.id(new ReservationSettingId(shopId, day))
.availableStartTime(LocalTime.of(9, 0))
.availableEndTime(LocalTime.of(18, 0))
.lunchStartTime(null)
.lunchEndTime(null)
.build();
reservationSettingRepository.save(setting);
}
}
}