import { BOILERPLATE_ANSWER_FLOWS } from "./global-presets";
import {
  BLITZ_ESSIE_ANSWER_FLOWS,
  BLITZ_LOREAL_ANSWER_FLOWS,
  BLITZ_MAYBELLINE_ANSWER_FLOWS,
  BLITZ_NYX_ANSWER_FLOWS,
} from "./presets/blitz-cosmetics";
import { COLORSONIC_ANSWER_FLOWS } from "./presets/colorsonic";
import { ESSIE_ANSWER_FLOWS } from "./presets/essie";
import { HAIRCARE_ANSWER_FLOWS } from "./presets/haircare";
import { HAIRCOLOR_ANSWER_FLOWS } from "./presets/haircolor";
import { LOREAL_ANSWER_FLOWS } from "./presets/loreal";
import { MAYBELLINE_ANSWER_FLOWS } from "./presets/maybelline";
import { NYX_ANSWER_FLOWS } from "./presets/nyx";
import { SKINCARE_ANSWER_FLOWS } from "./presets/skincare";
import { fillAnswerFlows } from "./util/fill-engine";

export async function fillEssieMaybelline(): Promise<void> {
  await fillAnswerFlows(BOILERPLATE_ANSWER_FLOWS);

  await fillAnswerFlows(ESSIE_ANSWER_FLOWS);
  await fillAnswerFlows(MAYBELLINE_ANSWER_FLOWS);
}

export async function fillLorealNyx(): Promise<void> {
  await fillAnswerFlows(BOILERPLATE_ANSWER_FLOWS);

  await fillAnswerFlows(LOREAL_ANSWER_FLOWS);
  await fillAnswerFlows(NYX_ANSWER_FLOWS);
}

export async function fillColorsonicHairCareAndColor(): Promise<void> {
  await fillAnswerFlows(BOILERPLATE_ANSWER_FLOWS);

  await fillAnswerFlows(COLORSONIC_ANSWER_FLOWS);
  await fillAnswerFlows(HAIRCOLOR_ANSWER_FLOWS);
  await fillAnswerFlows(SKINCARE_ANSWER_FLOWS);
  await fillAnswerFlows(HAIRCARE_ANSWER_FLOWS);
}

export async function fillHairCareAndColor(): Promise<void> {
  await fillAnswerFlows(BOILERPLATE_ANSWER_FLOWS);

  await fillAnswerFlows(HAIRCOLOR_ANSWER_FLOWS);
  await fillAnswerFlows(SKINCARE_ANSWER_FLOWS);
  await fillAnswerFlows(HAIRCARE_ANSWER_FLOWS);
}

export async function blitzCosmetics(): Promise<void> {
  await fillAnswerFlows(BLITZ_LOREAL_ANSWER_FLOWS);
  await fillAnswerFlows(BLITZ_NYX_ANSWER_FLOWS);

  await fillAnswerFlows(BLITZ_ESSIE_ANSWER_FLOWS);
  await fillAnswerFlows(BLITZ_MAYBELLINE_ANSWER_FLOWS);
}

export async function blitzNonCosmetics(): Promise<void> {
  await fillAnswerFlows(HAIRCOLOR_ANSWER_FLOWS);
  await fillAnswerFlows(SKINCARE_ANSWER_FLOWS);
  await fillAnswerFlows(HAIRCARE_ANSWER_FLOWS);
}
