// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

// This file defines protobufs for issues and related business
// objects, e.g., field values, comments, and attachments.

syntax = "proto3";

package monorail;

import "google/protobuf/wrappers.proto";
import "api/api_proto/common.proto";


// Next available tag: 8
message Approval {
  FieldRef field_ref = 1;
  repeated UserRef approver_refs = 2;
  ApprovalStatus status = 3;
  fixed32 set_on = 4;
  UserRef setter_ref = 5;
  PhaseRef phase_ref = 7;
}


// Next available tag: 8
enum ApprovalStatus {
  NOT_SET = 0;
  NEEDS_REVIEW = 1;
  NA = 2;
  REVIEW_REQUESTED = 3;
  REVIEW_STARTED = 4;
  NEED_INFO = 5;
  APPROVED = 6;
  NOT_APPROVED = 7;
}


// This message is only suitable for displaying the amendment to users.
// We don't currently offer structured amendments that client code can
// reason about, field names can be ambiguous, and we don't have
// old_value for most changes.
// Next available tag: 4
message Amendment {
  // This may be the name of a built-in or custom field, or relative to
  // an approval field name.
  string field_name = 1;
  // This may be a new value that overwrote the old value, e.g., "Assigned",
  // or it may be a space-separated list of changes, e.g., "Size-L -Size-S".
  string new_or_delta_value = 2;
  // old_value is only used when the user changes the summary.
  string old_value = 3;
}


// Next available tag: 9
message Attachment {
  uint64 attachment_id = 1;
  string filename = 2;
  uint64 size = 3;  // Size in bytes.
  string content_type = 4;
  bool is_deleted = 5;
  string thumbnail_url = 6;
  string view_url = 7;
  string download_url = 8;
}


// Next available tag: 16
message Comment {
  string project_name = 1;
  uint32 local_id = 2;
  uint32 sequence_num = 3;
  bool is_deleted = 4;
  UserRef commenter = 5;
  fixed32 timestamp = 6;
  string content = 7;
  string inbound_message = 8;
  repeated Amendment amendments = 9;
  repeated Attachment attachments = 10;
  FieldRef approval_ref = 11;
  // If set, this comment is an issue description.
  uint32 description_num = 12;
  bool is_spam = 13;
  bool can_delete = 14;
  bool can_flag = 15;
}


// Next available tag: 5
message FieldValue {
  FieldRef field_ref = 1;
  string value = 2;
  bool is_derived = 3;
  PhaseRef phase_ref = 4;
}


// Next available tag: 28
message Issue {
  string project_name = 1;
  uint32 local_id = 2;
  string summary = 3;
  StatusRef status_ref = 4;
  UserRef owner_ref = 5;
  repeated UserRef cc_refs = 6;
  repeated LabelRef label_refs = 7;
  repeated ComponentRef component_refs = 8;
  repeated IssueRef blocked_on_issue_refs = 9;
  repeated IssueRef blocking_issue_refs = 10;
  repeated IssueRef dangling_blocked_on_refs = 23;
  repeated IssueRef dangling_blocking_refs = 24;
  IssueRef merged_into_issue_ref = 11;
  repeated FieldValue field_values = 12;
  bool is_deleted = 13;
  UserRef reporter_ref = 14;
  fixed32 opened_timestamp = 15;
  fixed32 closed_timestamp = 16;
  fixed32 modified_timestamp = 17;
  fixed32 component_modified_timestamp = 25;
  fixed32 status_modified_timestamp = 26;
  fixed32 owner_modified_timestamp = 27;
  uint32 star_count = 18;
  bool is_spam = 19;
  uint32 attachment_count = 20;
  repeated Approval approval_values = 21;
  repeated PhaseDef phases = 22;
}


// Next available tag: 18
message IssueDelta {
  // Note: We use StringValue instead of string so that we can
  // check if delta.HasField('status').  Proto3 only allows that
  // for nested messages and provides "boxed" values for this purpose.
  // In JSON, a StringValue is represented as a simple string.
  google.protobuf.StringValue status = 1;
  UserRef owner_ref = 2;
  repeated UserRef cc_refs_add = 3;
  repeated UserRef cc_refs_remove = 4;
  repeated ComponentRef comp_refs_add = 5;
  repeated ComponentRef comp_refs_remove = 6;
  repeated LabelRef label_refs_add = 7;
  repeated LabelRef label_refs_remove = 8;
  repeated FieldValue field_vals_add = 9;
  repeated FieldValue field_vals_remove = 10;
  repeated FieldRef fields_clear = 11;
  repeated IssueRef blocked_on_refs_add = 12;
  repeated IssueRef blocked_on_refs_remove = 13;
  repeated IssueRef blocking_refs_add = 14;
  repeated IssueRef blocking_refs_remove = 15;
  IssueRef merged_into_ref = 16;
  google.protobuf.StringValue summary = 17;
}


// Next available tag: 7
message ApprovalDelta {
  ApprovalStatus status = 1;
  repeated UserRef approver_refs_add = 2;
  repeated UserRef approver_refs_remove = 3;
  repeated FieldValue field_vals_add = 4;
  repeated FieldValue field_vals_remove = 5;
  repeated FieldRef fields_clear = 6;
}


// Next available tag: 3
message AttachmentUpload {
  string filename = 1;
  bytes content = 2;
}


// Next available tag: 4
message IssueSummary {
  string project_name = 1;
  uint32 local_id = 2;
  string summary = 3;
}


// Next available tag: 3
message PhaseDef {
  PhaseRef phase_ref = 1;
  uint32 rank = 2;
}


// Next available tag: 2
message PhaseRef {
  string phase_name = 1;
}


// Next available tag: 7
enum SearchScope {
  ALL = 0;
  NEW = 1;
  OPEN = 2;
  OWNED = 3;
  REPORTED = 4;
  STARRED = 5;
  TO_VERIFY = 6;
}
