import { createAction, props } from '@ngrx/store';

import {
  AuthRequest,
  AuthResponse,
  DeptRequest,
  DeptInfo,
  DeptUserRequest,
  UserInfoSS,
  DeptUserResponse
} from '@ucap-webmessenger/protocol-query';

export const auth = createAction(
  '[Messenger::Query] Auth',
  props<AuthRequest>()
);

export const authSuccess = createAction(
  '[Messenger::Query] Auth Success',
  props<{ res: AuthResponse }>()
);

export const authFailure = createAction(
  '[Messenger::Query] Auth Failure',
  props<{ error: any }>()
);

export const dept = createAction(
  '[Messenger::Query] Dept',
  props<DeptRequest>()
);

export const deptSuccess = createAction(
  '[Messenger::Query] Dept Success',
  props<{ departmentInfoList: DeptInfo[] }>()
);

export const deptFailure = createAction(
  '[Messenger::Query] Dept Failure',
  props<{ error: any }>()
);
export const myDeptUser = createAction(
  '[Messenger::Query] My Dept User',
  props<DeptUserRequest>()
);

export const myDeptUserSuccess = createAction(
  '[Messenger::Query] My Dept User Success',
  props<{ userInfos: UserInfoSS[] }>()
);

export const myDeptUserFailure = createAction(
  '[Messenger::Query] My Dept User Failure',
  props<{ error: any }>()
);
