package com.kamco.cd.training.members.exception;

import lombok.Getter;

@Getter
public class MemberException {

  // *** Duplicate Member Exception ***
  @Getter
  public static class DuplicateMemberException extends RuntimeException {

    public enum Field {
      USER_ID,
      EMPLOYEE_NO,
      DEFAULT
    }

    private final Field field;
    private final String value;

    public DuplicateMemberException(Field field, String value) {
      super(field.name() + " duplicate: " + value);
      this.field = field;
      this.value = value;
    }
  }

  // *** Member Not Found Exception ***
  public static class MemberNotFoundException extends RuntimeException {

    public MemberNotFoundException() {
      super("Member not found");
    }

    public MemberNotFoundException(String message) {
      super(message);
    }
  }

  public static class PasswordNotFoundException extends RuntimeException {

    public PasswordNotFoundException() {
      super("Password not found");
    }

    public PasswordNotFoundException(String message) {
      super(message);
    }
  }
}
