// 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: { action: string; label?: string; }; center_x: number; center_y: number; end: number; height_max: number; height_pc: number; interaction_id: string; interaction_type: InteractionType; interaction_subtype: InteractionSubType; 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; foreground?: 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' | 'sample' | 'tool'; export type InteractionSubType = | 'facebook' | 'twitter' | 'linkedin' | 'instagram' | 'other' | 'video' | 'image' | 'pdf' | 'audio' | 'website'; export type InteractionStyleType = 'button' | 'photo' | 'text' | 'invisible'; export type ButtonStyle = 'icon' | 'icon_text' | 'text';