export type Project = {
  id: string;
  name: string;
  partnerId: string;
  teamId: string;
  gui?: GUItype;
  api?: APItype;
  mob?: Mobiletype;
  repositoryType: CItype;
  repositoryURL: string;
  includeExampleApps: boolean;
  platform: Platformtype;
};

export type ApiKey = {
  partnerId: string;
  description: string;
};

export type Team = {
  id: string;
  name: string;
};

export interface User {
  id: string;
  partnerId: string;
  information: PersonInformation;
}

export type PersonInformation = {
  email: string;
};

export interface OnBoardProjectCommand {
  partnerId: string;
  teamId: string;
  name: string;
  description?: string;
  applicationTypes: ApplicationType[];
  qaLeadId: string;
  isRegressionSuite: boolean;
  isCloudEnabled: boolean;
}

export enum ApplicationType {
  WEB_UI = "WEB_UI",
  API = "API",
  MOBILE = "MOBILE",
}

export enum projectTypes {
  UI = "UI",
  API = "API",
  UI_AND_API = "UI_AND_API",
}

export type OnBoardTeamCommand = {
  partnerId: string;
  name: string;
  description: string;
  applicationTypes: ApplicationType[];
  integrationDefinitionIds: string[];
};

export type ApiResponse = {
  isSuccess: boolean,
  message: string,
  extraInfo: any
};

export type systemApiKeyRequestModel = {
  username: string,
  password: string
};

export enum Platformtype {
  Cypress = 1,
  Playwright = 2,
}

export enum GUItype {
  CYPRESS = 1,
  PLAYRIGHT = 2,
}

export enum APItype {
  GRPC = 1,
  GRAPHQL = 2,
  HTTP = 3,
  CYPRESS = 4,
}

export enum Mobiletype {
  MOB = 1,
  WEBDRIVER = 2,
}

export enum CItype {
  GITHUB = 1,
  DEVOPS = 2,
  GITLAB = 3,
  CIRCLECI = 4,
}