// Copyright 2019 The Chromium OS 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 = "proto3";

package prototype;

import "prototype/common.proto";
import "prototype/component.proto";
import "prototype/design.proto";

option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype";

message Constraint {
  enum Level {
    TYPE_UNKNOWN = 0;
    REQUIRED = 1;
    PREFERRED = 2;
    OPTIONAL = 3;
  }

  Level level = 1;

  oneof type {
    Memory memory = 4;
    Camera front_camera = 6;
    Camera rear_camera = 7;
  }

  message Memory {
    ByteSize min_size = 1;
    repeated Component.Memory.Type types = 2;
  }

  message Camera {
    Presence.Indicator presence = 1;
    repeated Component.Camera.Feature features = 2;
  }
}

message ComponentQual {
  enum Status {
    STATUS_UNKNOWN = 0;
    REQUESTED = 1;
    TECHNICALLY_QUALIFIED = 2;
    QUALIFIED = 3;
  }
  ComponentId component_id = 1;
  Status status = 2;
}

message Program {
  ProgramId id = 1;
  repeated Requirement reqs = 2;
  repeated ComponentQual component_quals = 3;

  message Requirement {
    repeated Design.FormFactor form_factors = 1;
    repeated Constraint constraints = 2;
  }
}

message ProgramList {
  repeated Program value = 1;
}
