/** Normalised shapes the intranet works with, regardless of source (API or mock). */
export interface WmjUser {
  userKey: string;
  firstName: string;
  lastName: string;
  email: string;
  title?: string;
  department?: string;
  officeName?: string;
  isActive: boolean;
}

export interface WmjClient {
  clientKey: string;
  clientName: string;
  industry?: string;
}

export interface WmjProject {
  projectKey: string;
  projectNumber?: string;
  projectName: string;
  description?: string;
  status?: string;
  startDate?: string;
  endDate?: string;
  clientKey?: string;
  clientName?: string;
  services?: string[];
}

export interface WmjAssignment {
  projectKey: string;
  userKey: string;
  role?: string;
  hours: number;
  firstDate?: string;
  lastDate?: string;
}

export interface WorkamajigSource {
  users(): Promise<WmjUser[]>;
  clients(): Promise<WmjClient[]>;
  projects(): Promise<WmjProject[]>;
  assignments(): Promise<WmjAssignment[]>;
}
