// Copyright 2014 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.

// Messages containing configuration of Feedback Service
// that control classification and processing of submitted feedbacks.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package userfeedback;

// Product for which feedback can be sent: GMail, Writely etc.
message Product {
  required int32 id = 1;

  required string name = 2;

  repeated string owner = 3;
};

// Contains information needed to check whether particular
// feedback type applies to the page user is browsing and forward
// it's execution to a specific handler. It also carries information
// about the creator.
// TODO(morgwai): design new structure of Type with fields relevant
// for android, web, selenium grouped into submessages.
message FeedbackTypeData {
  // index of feedback type as found in database
  required int32 id = 1;

  // Specifies whether this feedback type is currently enabled and
  // feedback of this type can be submitted.
  required bool enabled = 2;

  // Problem name of this feedback type on Google Feedback pages.
  required string problem_name = 3;

  // Name of the product to which this feedback type belongs.
  optional string product_name = 4;

  // Tag 5 is used by some legacy data that is already in production db.

  // matcher to execute against page
  required MatcherData matcher = 6;

  // Comma separated list of email addresses to which email notification
  // is sent upon each new feedback of this type.
  // No email is sent if this field is set to an empty string.
  required string notification_email = 7;

  // Do not use tag 8, 9, 10. They were used by a legacy field.

  // Encapsulates different kind of feedback type.
  enum Kind {
    // Product feedback type.
    PRODUCT = 1;
    // Special feedback type (e.g. fixit).
    SPECIAL = 2;
  }

  // Kind of feedback type.
  optional Kind kind = 11 [default=PRODUCT];

  // Prefix to be added to summary of notification email sent for feedback of this
  // type.
  optional string summary_prefix = 12;

  // String template with which "Additional Info" field in extension
  // should be initially filled.
  optional string template = 13;

  // ID of the product this feedback type belongs to.
  optional int32 product_id = 14;

  // Tag that is used for marking feedback types that require non-ordinary handling.
  // E.g: This field is equal:
  // "unclassified" for Unclassified feedback,
  // "android" for android feedback
  // "selenium" for selenium feedback
  optional string tag = 15;

  // Problem description visible in feedback extension.
  optional string problem_description = 16;

  // Visibilities of feedback type.
  enum Visibility {
    // feedback type visible in external extension only
    EXTERNAL = 1;
    // feedback type visible in internal extension only
    INTERNAL = 2;
  }

  // Specifies the visibility of this feedback type.
  optional Visibility visibility = 17 [default=INTERNAL];

  // tag 18 was used by removed field

  // Specifies Buganizer fields
  // TODO(kaczmarek): enable once we migrated to new protos.
  // optional BuganizerSettings buganizer_settings = 19;

  // Channel via which notification about feedback should be send
  enum NotifyChannel {
    // Send email notification.
    EMAIL = 1;
    // File a bug in buganizer.
    BUGANIZER = 2;
    // File a bug in issue tracker.
    ISSUE_TRACKER = 3;
  }

  // Specifies channel via which notification about feedback of this type should be sent.
  optional NotifyChannel notify_channel = 20 [default=EMAIL];

  // Granularity of notifications.
  enum NotificationGranularity {
    // Send notification per each feedback.
    FEEDBACK = 1;
    // Send notification per clustered group of similar feedbacks.
    CLUSTER = 2;
  }

  // Specifies granularity of notifications send for feedbacks of this type.
  optional NotificationGranularity notification_granularity = 21 [default=FEEDBACK];

  // Threshold for number of feedbacks in a cluster at which notification is sent.
  optional int32 clustering_threshold = 22 [default=5];
};

// Used to detect content relevant to particular type of feedback.
message MatcherData {
  // XPATH expression to match against page.
  required string content_matcher = 1;

  // Regexp matching page URL.
  required string url_matcher = 2;

  // Approval by feedback admins
  optional bool url_matcher_approved = 3 [default=true];
};
