syntax = "proto3";

package rv.analytics;

option cc_enable_arenas = true;
option csharp_namespace = "Pro.SerializationInterop.RVProtoData.Analytics";
option swift_prefix = "Analytics_";

message Create {
  message Library {
    enum Source {
      SOURCE_UNKNOWN = 0;
      SOURCE_APPLICATION_MENU = 1;
      SOURCE_LIBRARY_OUTLINE_ADD_BUTTON = 2;
    }

    .rv.analytics.Create.Library.Source source = 1;
  }

  message Playlist {
    enum Source {
      SOURCE_UNKNOWN = 0;
      SOURCE_APPLICATION_MENU = 1;
      SOURCE_LIBRARY_OUTLINE_ADD_BUTTON = 2;
    }

    enum Type {
      TYPE_UNKNOWN = 0;
      TYPE_PRESENTATION = 1;
      TYPE_PLANNING_CENTER = 2;
      TYPE_FOLDER = 3;
      TYPE_TEMPLATE_PLAYLIST = 4;
    }

    .rv.analytics.Create.Playlist.Source source = 1;
    .rv.analytics.Create.Playlist.Type type = 2;
  }

  message Presentation {
    enum Source {
      SOURCE_UNKNOWN = 0;
      SOURCE_APPLICATION_MENU = 1;
      SOURCE_LIBRARY_OUTLINE_ADD_BUTTON = 2;
      SOURCE_DETAIL_ADD_BUTTON = 3;
      SOURCE_UNLINKED_HEADER = 4;
    }

    .rv.analytics.Create.Presentation.Source source = 1;
  }

  message TemplatePlaylist {
    int32 total_item_count = 1;
    int32 header_count = 2;
    int32 placeholder_count = 3;
    int32 presentation_count = 4;
    int32 media_count = 5;
  }

  oneof Component {
    .rv.analytics.Create.Library library = 1;
    .rv.analytics.Create.Playlist playlist = 2;
    .rv.analytics.Create.Presentation presentation = 3;
    .rv.analytics.Create.TemplatePlaylist template_playlist = 4;
  }
}

