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

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package ntp_snippets;

message SnippetSourceProto {
  optional string url = 1;
  optional string publisher_name = 2;
  optional string amp_url = 3;
}

message SnippetProto {
  repeated string ids = 1;
  optional string title = 2;
  optional string snippet = 3;
  optional string salient_image_url = 4;
  optional int64 publish_date = 5;
  optional int64 expiry_date = 6;
  optional float score = 7;
  repeated SnippetSourceProto sources = 8;
  optional bool dismissed = 9;
  optional int32 remote_category_id = 10;
  // The time when the snippet was fetched from the server.
  optional int64 fetch_date = 11;

  enum ContentType {
    UNKNOWN = 0;
    VIDEO = 1;
  }
  optional ContentType content_type = 12 [default = UNKNOWN];

  // A rank to preserve the order of suggestions. Lower ranks are shown earlier.
  // The values may be not consecutive. Must be set on the client. May be absent
  // in suggestions created before it was introduced.
  optional int32 rank = 13;
}

message SnippetImageProto {
  optional bytes data = 1;
}
