syntax = "proto3";

package devvit.dev_portal.installation_settings;

import "devvit/plugin/settings/v1alpha/settings.proto";
import "devvit/ui/form_builder/v1alpha/form.proto";

option go_package = "github.snooguts.net/reddit/reddit-devplatform-monorepo/go-common/generated/protos/types/devvit/devportal/installationsettings";

message GetInstallationSettingsFormRequest {
  string installation_id = 1;
}

message GetInstallationSettingsFormResponse {
  // Installation settings Forms mapped by actor_name
  map<string, devvit.ui.form_builder.v1alpha.Form> form = 1;
}

message ValidateInstallationSettingsFormRequest {
  string installation_id = 1;
  devvit.plugin.settings.v1alpha.SettingsValues settings = 2;
}

message ValidateInstallationSettingsFormResponse {
  // If false, prevent submission and display errors on the form
  bool success = 1;

  // Map of field_id:error pairs to display on the form
  map<string, string> errors = 2;
}

message GetInstallationSettingsRequest {
  string installation_id = 1;
}

message GetInstallationSettingsResponse {
  devvit.plugin.settings.v1alpha.SettingsValues settings = 1;
}

message UpdateInstallationSettingsRequest {
  string installation_id = 1;
  devvit.plugin.settings.v1alpha.SettingsValues settings = 2;
}

message UpdateInstallationSettingsResponse {
  // If false, prevent submission and display errors on the form
  bool success = 1;

  // Map of field_id:error pairs to display on the form
  map<string, string> errors = 2;
}
