syntax = "proto3";
package service.v1;

import "amino/amino.proto";
import "gogoproto/gogo.proto";

option go_package = "github.com/onsonr/sonr/x/service/types";

// GenesisState defines the module genesis state
message GenesisState {
  // Params defines all the parameters of the module.
  Params params = 1 [ (gogoproto.nullable) = false ];
}

// Params defines the set of module parameters.
message Params {
  option (amino.name) = "service/params";
  option (gogoproto.equal) = true;
  option (gogoproto.goproto_stringer) = false;

  ServiceCategories categories = 1;
  ServiceTypes types = 2;
}

message ServiceCategories {
  option (amino.name) = "service/categories";
  option (gogoproto.equal) = true;

  repeated string categories = 1;
}

message ServiceTypes {
  option (amino.name) = "service/types";
  option (gogoproto.equal) = true;

  repeated string types = 1;
}

// Service defines a Decentralized Service on the Sonr Blockchain
message Service {
  string id = 1;
  string authority = 2;
  string origin = 3;
  string name = 4;
  string description = 5;
  string category = 6;
  repeated string tags = 7;
  int64 expiry_height = 8;
}
