import { PlanCampaignConfig } from "../tokens/plan-campaign-config.token"; import { Avails, DownloadSheetData, GenerateAvailsPayload } from "./avails.model"; import { DaypartCategory, DaypartPayload } from "./daypart.model"; import { CampaignFlow, PlanCampaignRequestPayload } from "./draft.model"; import { GeneralInfoData, GeneralInfoSelectedData } from "./general-info.model"; import { EquivalentImpressionPaylod, SelectedMarketWiseGrpOrBudget } from "./grp-budget.model"; import { FinalCampaignPlanningData, FinalCampaignPlanningSelectedData } from "./planning-step.model"; import { PrimeTimePayload } from "./prime-time.model"; import { ReviewPlanContainerData } from "./review-model"; import { SpecialProgramPayload } from "./special.model"; import { SportsProgramPayload } from "./sports.model"; import { HiatusDateMonthSpotDispersion, WeekSpotDispersionPayload } from "./spot-dispersion.model"; import { MarketWiseStationTableData } from "./station.model"; import { PlanCampaignMainWizardStep, PlanCampaignSubWizardStep } from "./wizard.model"; import { IConfirmationPopupConfig } from "@annalib/anna-core"; export interface CampaignWizardVM { steps: PlanCampaignMainWizardStep[]; selectedStep: PlanCampaignMainWizardStep; flowType: CampaignFlow; disableSaveProgressBtn: boolean; } export interface CampaignLoaderVM { showPlanCampaignLoader: boolean; showGeneralInfoLoader: boolean; showSpotDispersionLoader: boolean; showAvailsLoader: boolean; showLoaderForPrimeTime: boolean; showLoaderForSportsProgram: boolean; showLoaderForSpecialProgram: boolean; showLoaderForDp: boolean; showLoaderForGrpBudget: boolean; } export interface CampaignComponentStateVM { isDpInitialized: boolean; isStnInitialized: boolean; isSpotDispersionInialized: boolean; } export interface SpotDispersionValidationVM { isMonthDispersionSectionValid: boolean; isGeneralRuleValid: boolean; isMgRuleValid: boolean; isAduRuleValid: boolean; isMinSeparationValid: boolean; } export interface GrpBudgetVM { marketNameUniverseSizeMap: Map; totalUniverseSizeSum: number; } export interface CampaignPreviousPayloadVM { equivalentImpression: EquivalentImpressionPaylod; spotDispersion: WeekSpotDispersionPayload; dayparts: DaypartPayload; primeTime: PrimeTimePayload; special: SpecialProgramPayload; sport: SportsProgramPayload; avails: GenerateAvailsPayload; plan: PlanCampaignRequestPayload; } export interface CampaignSubWizardVM { generalSection: PlanCampaignSubWizardStep[]; selectedStepForGeneralInfo: PlanCampaignSubWizardStep; planningSection: PlanCampaignSubWizardStep[]; selectedStepForPlanningSection: PlanCampaignSubWizardStep; } export interface GeneralInfoVM { sectionData: GeneralInfoData; selectedData: GeneralInfoSelectedData; previousSectionData: GeneralInfoData; previousSelectedData: GeneralInfoSelectedData; } export interface AvailsVM { data: Avails[]; clonedData: Avails[]; previousData: Avails[]; draftAvails: Avails[]; refreshAvails: boolean; availsGeneratedOn: string; } export interface PlanningVM { sectionData: FinalCampaignPlanningData; selectedData: FinalCampaignPlanningSelectedData; previousSectionData: FinalCampaignPlanningData; previousSelectedData: FinalCampaignPlanningSelectedData; } export interface ReviewVM { data: ReviewPlanContainerData; previousData: ReviewPlanContainerData; } export interface StationsVM { previousData: MarketWiseStationTableData[]; } export interface DaypartsVM { previousData: DaypartCategory[]; planningPreviousDp: DaypartCategory[]; } export interface DraftVM { id: number; response: any; } export interface DraftStateVM { setDp: boolean; setPrimeSportSpecial: boolean; setPlanningDp: boolean; setPlanningGrpBudget: boolean; setPlanningStn: boolean; setSpotDispersion: boolean; } export interface AvailsSelectionVM { avails: Avails[]; dp: string[]; stations: string[]; markets: string[]; } export interface LineDetailsSetVM { AfterSpotDispersion: boolean; AfterGrpBudget: boolean; } export interface SaveProgressVM { isStationSet: boolean; isDpSet: boolean; isPrimeSet: boolean; isSpecialSet: boolean; isSportsSet: boolean; isAvailsSet: boolean; isGrpBudgetSet: boolean; isStationDispersionSet: boolean; } export interface PlanningPreviousSelectionVM { grpBudget: SelectedMarketWiseGrpOrBudget; spotDispersion: HiatusDateMonthSpotDispersion; } export interface CampaignViewModel { wizard: CampaignWizardVM; progress: number; loader: CampaignLoaderVM; componentState: CampaignComponentStateVM; noPlanFound: boolean; hubConnection: signalR.HubConnection; validation: SpotDispersionValidationVM; grpBudget: GrpBudgetVM; businessRulesData: any; previousPayload: CampaignPreviousPayloadVM; subWizard: CampaignSubWizardVM; generalInfo: GeneralInfoVM; avails: AvailsVM; planning: PlanningVM; review: ReviewVM; markAllBtnAsDisabled: boolean; stations: StationsVM; dp: DaypartsVM; dataForDownloadSheet: DownloadSheetData; draft: DraftVM; draftState: DraftStateVM; availsSelection: AvailsSelectionVM; lineDetailsSet: LineDetailsSetVM; toastrId: number; navigateBackTo: string; rejectCallHappening: boolean; unsavedChangesPresent: boolean; unsavedChangesConfirmationConfig: IConfirmationPopupConfig; redirectToListing: boolean; saveProgress: SaveProgressVM; planningSelection: PlanningPreviousSelectionVM; planCampaignConfig: PlanCampaignConfig; }