import { MultiSelectIdText, SingleSelectIdText } from "@annalib/anna-design-components-lib"; import { HiatusDate } from "./spot-dispersion.model"; import { NgbDate } from "@ng-bootstrap/ng-bootstrap"; import { CurrencyPipe } from "@angular/common"; export interface EditableLineDetails { MarketId: number; BuylineId: string; MarketName: string; MarketDisplayName: string; StationName: string; Program: string; ProgramGenre: string; StartDate: string; EndDate: string; Days: string; Cpm: number; CpmAsDisplay: string; Cpp: number; CppAsDisplay: string; ProgramTimeData: string[]; Daypart: string; Length: string; BookedImps: number; BookedImpsAsDisplay: string; BookedRating: number; BookedRatingAsDisplay: string; SpotCount: number; ProjectedGrossImps: number; ProjectedGrossImpsAsDisplay: string; PostedGrossImps: number; PostedGrossImpsAsDisplay: string; ProjectedGrossRating: number; ProjectedGrossRatingAsDisplay: string; PostedGrossRating: number; PostedGrossRatingAsDisplay: string; Rate: number; RateAsDisplay: string; Amount: number; AmountAsDisplay: string; WeekWiseSpotCount: ModifiedWeekWiseSpotCount[]; formattedTime: string; startTime: string; endTime: string; startEndTime: string[]; gtClass: string; ModifiedCpm: number; ModifiedCpmAsDisplay: string; ModifiedCpp: number; ModifiedCppAsDisplay: string; ModifiedAmount: number; ModifiedAmountAsDisplay: string; ModifiedProjectedGrossRating: number; ModifiedProjectedGrossRatingAsDisplay: string; ModifiedSpotCount: number; ModifiedProjectedGrossImps: number; ModifiedProjectedGrossImpsAsDisplay: string; ModifiedStartDate: string; ModifiedFilterStartDate: string; ModifiedEndDate: string; ModifiedFilterEndDate: string; IsSelected: boolean; IsDeleted: boolean; IsAdded: boolean; AddedOn: string; AddedByUserId: string; InvCodeId: number; InventoryCode: string; ProgramRepeatStatus: string; StationProgramId: string; [key: string]: any; } export interface ModifiedWeekWiseSpotCount { WeekStartDate: string; Year: string; SpotCount: number; ModifiedSpotCount: number; disabled?: boolean; } export interface ReviewPlanContainerData { markets: MultiSelectIdText[]; selectedMarkets: MultiSelectIdText[]; actualMarketNameAndMarketDisplayNameObj: any; campaignExpiresOn: string; selectedMetric: SingleSelectIdText; tableData: EditableLineDetails[]; clonedTableData: EditableLineDetails[]; currentAllMarketsLineData: EditableLineDetails[]; previousAllMarketsLineData: EditableLineDetails[]; showHeaderForBudget: boolean; showDesiredImps: boolean; summary: SummaryDetails; marketSplit: MarketWiseSplit[]; stationSplit: StationWiseSplit[]; daypartSplit: DaypartWiseSplit[]; monthWiseSplit: MonthWiseSplit[]; weekArr: any[]; } export interface ReviewDays { label: string; isChecked: boolean; } export interface TimeInputOutput { startTime: string; endTime: string; days?: ReviewDays[]; } export interface SummaryDetails { StationNames: string[]; TotalBudget: number; TotalBudgetAsDisplay: string; BookedDemoCpm: number; BookedDemoCpmAsDisplay: string; NormalizedDemoCpm: number; NormalizedDemoCpmAsDisplay: string; BookedDemoImps: number; BookedDemoImpsAsDisplay: string; NormalizedDemoImps: number; NormalizedDemoImpsAsDisplay: string; AdvertiserName: string; AgencyName: string; CampaignName: string; PostingType: string; MarketNames: string[]; BookedDemo: string; SpotDuration: number; FlightStartPeriod: string; FlightEndPeriod: string; CampaignId: number; BuyerEstimate: string; MeasurementAgency: string; BookedDemoRating: number; BookedDemoRatingAsDisplay: string; BookedDemoCpp: number; BookedDemoCppAsDisplay: string; NormalizedDemoCpp: number; NormalizedDemoCppAsDisplay: string; NormalizedDemoRating: number; NormalizedDemoRatingAsDisplay: string; HiatusDates: HiatusDate[]; MinimumSeparation: string; ProductName: string; ProductCategory: string; MaxPossibleImpressions: number; MaxPossibleRating: number; MaxPossibleRatingAsDisplay: string; MaxPossibleImpressionsAsDisplay: string; } export interface SplitGraphCommonData { Budget: number; BudgetAsDisplay: string; PercentageBookedImpsAsDisplay: string; BookedDemoCpmAsDisplay: string; BookedNormalizedDemoCpmAsDisplay: string; ProjectedCpmAsDisplay: string; ProjectedNormalizedDemoCpmAsDisplay: string; PostedCpmAsDisplay: string; PostedNormalizedDemoCpmAsDisplay: string; BookedImpressionsAsDisplay: string; BookedNormalizedImpressionsAsDisplay: string; ProjectedImpressionsAsDisplay: string; ProjectedNormalizedImpressionsAsDisplay: string; PostedImpressionsAsDisplay: string; PostedNormalizedImpressionsAsDisplay: string; PercentageBookedImps: number; BookedDemoCpm: number; BookedNormalizedDemoCpm: number; ProjectedCpm: number; ProjectedNormalizedDemoCpm: number; PostedCpm: number; PostedNormalizedDemoCpm: number; BookedImpressions: number; BookedNormalizedImpressions: number; ProjectedImpressions: number; ProjectedNormalizedImpressions: number; PostedImpressions: number; PostedNormalizedImpressions: number; ProjectedCppAsDisplay: string; ProjectedNormalizedDemoCppAsDisplay: string; PostedCppAsDisplay: string; PostedNormalizedDemoCppAsDisplay: string; ProjectedRatingAsDisplay: string; PostedRatingAsDisplay: string; ProjectedCpp: number; ProjectedNormalizedDemoCpp: number; PostedCpp: number; PostedNormalizedDemoCpp: number; ProjectedRating: number; PostedRating: number; PercentageBookedRating: number; BookedDemoCpp: number; BookedDemoCppAsDisplay: string; BookedNormalizedDemoCpp: number; BookedNormalizedDemoCppAsDisplay: string; BookedRating: number; BookedRatingAsDisplay: string; } export interface MarketWiseSplit extends SplitGraphCommonData { MarketName: string; DesiredImps: number; DesiredImpsAsDisplay: string; DesiredBudget: number; DesiredBudgetAsDisplay: string; } export interface DaypartWiseSplit extends SplitGraphCommonData { DaypartName: string; PercentageDesiredImps: number; PercentageDesiredImpsAsDisplay: string; } export interface StationWiseSplit extends SplitGraphCommonData { StationName: string; Affiliate: string; MarketName: string; } export interface MonthWiseSplit extends SplitGraphCommonData { MonthName: string; MonthNameWithRange: string; PercentageDesiredImps: number; PercentageDesiredImpsAsDisplay: string; PercentageDesiredRatingAsDisplay: string; PercentageDesiredRating: number; } export interface AddedBuyLines extends EditableLineDetails { isValid: boolean; marketItem: SingleSelectIdText[]; selectedMarket: SingleSelectIdText; stationItem: SingleSelectIdText[]; selectedStation: SingleSelectIdText; programNameItem: SingleSelectIdText[]; selectedProgramName: SingleSelectIdText; daypartItem: SingleSelectIdText[]; selectedDaypart: SingleSelectIdText; rateItem: SingleSelectIdText[]; selectedRate: SingleSelectIdText; minStartTime: string; maxEndTime: string; startTime: string; endTime: string; weekCalenderDaysToEnableInFuture: number; weekCalenderDaysToEnableInPast: number; weekCalendarMinStartDate: NgbDate; weekCalendarMaxEndDate: NgbDate; weekCalendarStartDate: NgbDate; weekCalendarEndDate: NgbDate; dayItems: ReviewDays[]; } export interface AddedBuyLinesEmittedData { isValid: boolean; addedLines: AddedBuyLines[]; } export interface LineSelection { MarketDisplayName: string; StationName: string; Program: string; Daypart: string; Rate: number; } export declare class EditableLineDetailsTotalRow { currencyPipe: CurrencyPipe; bookedImps: number; spots: number; projectedGi: number; amount: number; bookedRtg: number; projectedGrp: number; displayBookedImps: string; displayProjectedGi: string; displayAmount: string; displayBookedRtg: string; displayProjectedGrp: string; [key: string]: any; constructor(data: EditableLineDetails[]); } export type Mode = "READ" | "EDIT" | "ADD"; export interface CampaignDispersionPayload extends ApproveCampaignPayload { MarketNames: string[]; } export interface ApproveCampaignPayload { CampaignId: number; LineDetails: EditableLineDetails[]; }