syntax = "proto3";

import "files/files.proto";

option go_package = "git.perx.ru/perxis/perxis-go/proto/images;images";

package images;

message Param {
  string op = 1;
  repeated string value = 2;
}

message GetRequest {

  message GetOptions {
    repeated Param params = 1;
  }

  files.File source = 1;
  GetOptions opts = 2;
}

message GetResponse {
  files.File result = 1;
}

// ImageService - сервис для обработки изображений
service Images {

  // Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
  // Может быть передано несколько параметров, порядок учитывается при обработке
  // Допустимые операции:
  //  - crop (ширина, высота)
  //  - fit (ширина, высота)
  //  - resize (ширина, высота)
  //  - format (один из форматов [ png, jpeg, jpg, gif ]
  // Возвращает объект File с заполненным полем File.URL
  rpc Get(GetRequest) returns(GetResponse) {}
}