syntax = "proto3";

package bilibili.dagw.component.avatar.v1.plugin;

option java_multiple_files = true;

import "bilibili/dagw/component/avatar/common/common.proto";

//
message CommentDoubleClickConfig {
  //
  Interaction interaction = 1;
  //
  double animation_scale = 2;
}

//
message GyroConfig {
  //
  NFTImageV2 gyroscope = 1;
}

//
message GyroscopeContentV2 {
  //
  string file_url = 1;
  //
  float scale = 2;
  //
  repeated PhysicalOrientationV2 physical_orientation = 3;
}

//
message GyroscopeEntityV2 {
  //
  string display_type = 1;
  //
  repeated GyroscopeContentV2 contents = 2;
}

//
message Interaction {
  //
  string nft_id = 1;
  //
  bool enabled = 2;
  //
  string itype = 3;
  //
  string metadata_url = 4;
}

//
message LiveAnimeConfig {
  //
  bool is_live = 1;
}

//
message LiveAnimeItem {
  //
  bilibili.dagw.component.avatar.common.ColorConfig color = 1;
  //
  double start_ratio = 2;
  //
  double end_ratio = 3;
  //
  double start_stroke = 4;
  //
  double start_opacity = 5;
  //
  int64 phase = 6;
}

//
message NFTImageV2 {
  //
  repeated GyroscopeEntityV2 gyroscope = 1;
}

//
message PhysicalOrientationAnimation {
  //
  string type = 1;
  //
  string bezier = 3;
}

//
message PhysicalOrientationV2 {
  //
  string type = 1;
  //
  repeated PhysicalOrientationAnimation animations = 3;
}