syntax = "proto3";

package ua.gov.diia.types.ds;

import "designSystem/atoms/enums/buttonStateAtmType.proto";
import "designSystem/atoms/enums/contentTypeAtm.proto";
import "designSystem/atoms/validationAtm.proto";
import "designSystem/molecules/navigationPanelMlc.proto";

option java_multiple_files = true;
option java_package = "ua.gov.diia.types.ds";

/** @deprecated ua.gov.diia.types.ds.atoms.ContentType used instead */
enum AttentionMessageParameterType {
  link = 0;
  phone = 1;
  email = 2;
}

enum StatusType {
  success = 0;
  pending = 1;
  fail = 2;
  neutral = 3;
}

enum PaddingModeType {
  none = 0;
  medium = 1;
  large = 2;
  extraLarge = 3;
}

enum SquareChipStatusAtmType {
  blue = 0;
  grey = 1;
}

message AttentionMessageParameterData {
  string name = 1;
  string alt = 2;
  string resource = 3;
}

message AttentionMessageParameter {
  ua.gov.diia.types.ds.atoms.ContentType type = 1;
  AttentionMessageParameterData data = 2;
}

message AttentionMessage {
  string icon = 1;
  optional string title = 2;
  optional string text = 3;
  repeated AttentionMessageParameter parameters = 4;
}

message StubMessage {
  optional string icon = 1;
  optional string title = 2;
  optional string text = 3;
  optional string description = 4;
  optional bool canRepeat = 5;
}

message ParameterizedText {
  string text = 1;
  repeated AttentionMessageParameter parameters = 2;
}

message LabeledValue {
  string label = 1;
  string value = 2;
}

message HintedLabel {
  string label = 1;
  string hint = 2;
}

message ItemListView {
  string title = 1;
  repeated ListItem items = 2;
}

message ListItem {
  string logoLeft = 1;
  string iconLeft = 2;
  string iconRight = 3;
  string label = 4;
  string description = 5;
  Action action = 6;
  string link = 7;
  ua.gov.diia.types.ds.atoms.button.ButtonState state = 8;
  string id = 9;
}

message Action {
  string type = 1;
  string subtype = 2;
  string resource = 3;
}

message DefaultButton {
  string label = 1;
  ua.gov.diia.types.ds.atoms.button.ButtonState state = 2;
  Action action = 3;
}

message BottomGroup {
  DefaultButton primaryDefaultButton = 1;
}

message TopGroup {
  ua.gov.diia.types.ds.molecules.NavigationPanelMlc navigationBarMlcl = 1;
}

message ContentGroupMlcl {
  TableBlockMlcl tableBlockMlcl = 1;
}

message TableBlockMlcl {
  TableHeadingMain tableHeadingMain = 1;
  repeated TableBlockMlclItem items = 2;
}

message TableHeadingMain {
  string label = 1;
}

message TableBlockMlclItem {
  LabeledValue tableItemMlcPrimary = 1;
  LabeledValue tableItemMlcHorizontal = 2;
  LabeledValue tableItemMlcVertical = 3;
}

message SearchInputAtm {
  string label = 1;
}

message PaddingMode {
  optional PaddingModeType side = 1;
  optional PaddingModeType top = 2;
  optional PaddingModeType start = 3;
  optional PaddingModeType end = 4;
}

message CodeItem {
  string id = 1;
  optional string maskCode = 2;
  optional string placeholder = 3;
  string label = 4;
  string description = 5;
  string value = 6;
  string icon = 7;
  repeated ua.gov.diia.types.ds.atoms.ValidationAtm validation = 8;
}
