syntax = "proto3";

package ua.gov.diia.types.ds.documents;

import "designSystem/atoms/chipStatusAtm.proto";
import "designSystem/atoms/iconAtm.proto";
import "designSystem/atoms/tickerAtm.proto";
import "designSystem/molecules/dotChipStatusMlc.proto";
import "designSystem/molecules/smallEmojiPanelMlc.proto";
import "designSystem/molecules/subtitleLabelMlc.proto";
import "designSystem/organisms/chipBlackGroupOrg.proto";
import "designSystem/organisms/docButtonHeadingOrg.proto";
import "designSystem/organisms/docHeadingOrg.proto";
import "designSystem/organisms/listItemGroupOrg.proto";
import "designSystem/organisms/tableBlockAccordionOrg.proto";
import "designSystem/organisms/tableBlockPlaneOrg.proto";
import "designSystem/organisms/tableBlockTwoColumnsOrg.proto";
import "designSystem/organisms/tableBlockTwoColumnsPlaneOrg.proto";
import "google/protobuf/empty.proto";

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

message DocumentFrontCard {
  repeated FrontCardItem UA = 1;
  repeated FrontCardItem EN = 2;
}

message FrontCardItem {
  optional ua.gov.diia.types.ds.organisms.DocHeadingOrg docHeadingOrg = 1;
  optional ua.gov.diia.types.ds.organisms.TableBlockTwoColumnsPlaneOrg tableBlockTwoColumnsPlaneOrg = 2;
  optional ua.gov.diia.types.ds.atoms.TickerAtm tickerAtm = 3;
  optional ua.gov.diia.types.ds.organisms.DocButtonHeadingOrg docButtonHeadingOrg = 4;
  optional ua.gov.diia.types.ds.molecules.SubtitleLabelMlc subtitleLabelMlc = 5;
  optional ua.gov.diia.types.ds.organisms.TableBlockPlaneOrg tableBlockPlaneOrg = 6;
  optional ua.gov.diia.types.ds.atoms.ChipStatusAtm chipStatusAtm = 7;
  optional ua.gov.diia.types.ds.molecules.SmallEmojiPanelMlc smallEmojiPanelMlc = 8;
  optional ua.gov.diia.types.ds.molecules.DotChipStatusMlc dotChipStatusMlc = 9;
}

message DocumentFullInfoItem {
  optional ua.gov.diia.types.ds.organisms.DocHeadingOrg docHeadingOrg = 1;
  optional ua.gov.diia.types.ds.atoms.TickerAtm tickerAtm = 2;
  optional ua.gov.diia.types.ds.organisms.TableBlockTwoColumnsOrg tableBlockTwoColumnsOrg = 3;
  optional ua.gov.diia.types.ds.organisms.TableBlockPlaneOrg tableBlockOrg = 4;
  optional ua.gov.diia.types.ds.organisms.ListItemGroupOrg listItemGroupOrg = 5;
  optional google.protobuf.Empty verificationCodesOrg = 6;
  optional ua.gov.diia.types.ds.organisms.TableBlockAccordionOrg tableBlockAccordionOrg = 7;
  optional ua.gov.diia.types.ds.organisms.ChipBlackGroupOrg chipBlackGroupOrg = 8;
}

message DocumentContentItem {
  optional string image = 1;
  string code = 2;
}

message DataForDisplayingInOrderConfigurations {
  optional string logoLeft = 1;
  optional ua.gov.diia.types.ds.atoms.IconAtm iconLeft = 2;
  optional ua.gov.diia.types.ds.atoms.IconAtm iconRight = 3;
  string label = 4;
  optional string description = 5;
  optional string id = 6;
}

message AdditionalFullInfoItem {
  string id = 1;
  repeated DocumentFullInfoItem fullInfo = 2;
}

message DocumentInstance {
  int32 docStatus = 1;
  string id = 2;
  optional string qr = 3;
  repeated DocumentContentItem content = 4;
  optional string docNumber = 5;
  map<string, string> docData = 6;
  optional DataForDisplayingInOrderConfigurations dataForDisplayingInOrderConfigurations = 7;
  optional DocumentFrontCard frontCard = 8;
  repeated DocumentFullInfoItem fullInfo = 9;
  optional string frontCardBackground = 10;
  optional string shareLocalization = 11;
  repeated AdditionalFullInfoItem additionalFullInfo = 12;
}
