package roomescape.member.implement import io.github.oshai.kotlinlogging.KLogger import io.github.oshai.kotlinlogging.KotlinLogging import org.springframework.stereotype.Component import roomescape.member.exception.MemberErrorCode import roomescape.member.exception.MemberException import roomescape.member.infrastructure.persistence.MemberRepository private val log: KLogger = KotlinLogging.logger {} @Component class MemberValidator( private val memberRepository: MemberRepository ) { fun validateCanSignup(email: String) { log.debug { "[MemberValidator.validateCanSignup] 시작: email=$email" } if (memberRepository.existsByEmail(email)) { log.info { "[MemberValidator.validateCanSignup] 중복 이메일: email=$email" } throw MemberException(MemberErrorCode.DUPLICATE_EMAIL) } log.debug { "[MemberValidator.validateCanSignup] 완료: email=$email" } } }