// DO NOT EDIT THIS SCHEMA UNLESS YOU KNOW WHAT YOU ARE DOING // This file is shared between several repositories and platforms, // and any edits will break compatibility between these apps // If changes to the schema need to be made, the schema version needs to // be incremented, an adapter added to the Video Management API // to convert from the previous schema version to the new one, and the // changes synced across all repos that use it // If you need to add calculated fields to the schema for internal app use, // use a factory to copy this data to a local view model // V2 Schema for Video Interactions export interface InteractionData { attributes: { value: string; }; center_x: number; center_y: number; end: number; height_max: number; height_pc: number; interaction_id: string; interaction_type: InteractionType; rotation_angle: number; start: number; style: InteractionStyle; width_max: number; width_pc: number; } export interface BaseInteractionStyle { style_type: InteractionStyleType; pulse_animation: boolean; } export interface ButtonInteractionStyle extends BaseInteractionStyle { style_type: 'button'; button_style: ButtonStyle; color: { background: string; }; pulse_animation: boolean; opacity: number; } export interface PhotoInteractionStyle extends BaseInteractionStyle { style_type: 'photo'; thumbnail_url: string; pulse_animation: boolean; opacity: number; } export interface TextInteractionStyle extends BaseInteractionStyle { style_type: 'text'; color: { foreground: string; background: string; }; font_size: number; pulse_animation: boolean; text: string; text_background: boolean; opacity: number; } export interface InvisibleInteractionStyle extends BaseInteractionStyle { style_type: 'invisible'; pulse_animation: boolean; } export type InteractionStyle = | ButtonInteractionStyle | PhotoInteractionStyle | TextInteractionStyle | InvisibleInteractionStyle; export type InteractionType = 'buy-now' | 'call' | 'email' | 'link' | 'schedule' | 'social'; export type InteractionStyleType = 'button' | 'photo' | 'text' | 'invisible'; export type ButtonStyle = 'icon' | 'icon_text' | 'text';