import {
  Department,
  Notification,
  SetNotificationParams,
  Team,
  User,
} from '../user';

export interface ProfileProps {
  departments: Department[];
  user: User;
  team: Team;
}

export interface MyTeamProps {
  user: User;
  team: Team;
  onChangeTeam: (team: Team) => void;
}

export interface MyProfileProps {
  departments: Department[];
  user: User;
  onChangeUser: (user: User) => void;
  onChangeTeam: (team: Team) => void;
}

export interface MyNotificationsProps {
  notifications: Notification[];
  team: Team;
}

export interface ProfileParams {
  _id: string;
  email?: string;
  password?: string;
  newPassword?: string;
  username?: string;
  licenseNumber?: string;
  department?: string;
}

export interface UpdateProfileParams {
  email: string;
  username: string;
  licenseNumber: string;
  department: string;
}

export interface UpdateNotificationsParams {
  notifications: Notification[] | SetNotificationParams[];
}

export interface UpdatePasswordParams {
  email: string;
  newPassword: string;
  password: string;
}

export interface ProfileFormData {
  email: string;
  username: string;
  licenseNumber: string;
  department: string;
}

export interface PasswordFormData {
  password: string;
  newPassword: string;
  repeatNewPassword: string;
}
