import {
  IAuthNumberLoginState,
  IAuthUserForgotModel,
  IAuthUserStateModel,
  IAuthVerifyNumberOTPState,
  IRegisterModal,
  IUpdatePasswordModel,
  IVerifyEmailOtpModel,
} from '../interface/auth.interface';

export class RegisterAction {
  static readonly type = '[Auth] Register';
  constructor(public payload: IRegisterModal) {}
}

export class LoginAction {
  static readonly type = '[Auth] Login';
  constructor(public payload: IAuthUserStateModel) {}
}

export class LoginWithNumberAction {
  static readonly type = '[Auth] Login With Number';
  constructor(public payload: IAuthNumberLoginState) {}
}

export class ForgotPassWordAction {
  static readonly type = '[Auth] Forgot';
  constructor(public payload: IAuthUserForgotModel) {}
}

export class VerifyEmailOtpAction {
  static readonly type = '[Auth] VerifyEmailOtpAction';
  constructor(public payload: IVerifyEmailOtpModel) {}
}

export class VerifyNumberOTPAction {
  static readonly type = '[Auth] VerifyNumberOTPAction';
  constructor(public payload: IAuthVerifyNumberOTPState) {}
}

export class UpdatePasswordAction {
  static readonly type = '[Auth] UpdatePassword';
  constructor(public payload: IUpdatePasswordModel) {}
}

export class LogoutAction {
  static readonly type = '[Auth] Logout';
}

export class AuthClearAction {
  static readonly type = '[Auth] Clear';
}
