syntax = "proto3";
package service.v1;

import "cosmos/orm/v1/orm.proto";

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

// https://github.com/cosmos/cosmos-sdk/blob/main/orm/README.md

message Metadata {
  option (cosmos.orm.v1.table) = {
    id : 1
    primary_key : {fields : "id" auto_increment : true}
    index : {id : 1 fields : "origin" unique : true}
  };

  uint64 id = 1;
  string origin = 2;
  string name = 3;
  string description = 4;
  string category = 5;
  URI icon = 6;
  repeated string tags = 7;
}

// Profile represents a DID alias
message Profile {
  option (cosmos.orm.v1.table) = {
    id : 2
    primary_key : {fields : "id"}
    index : {id : 1 fields : "subject,origin" unique : true}
  };

  // The unique identifier of the alias
  string id = 1;

  // The alias of the DID
  string subject = 2;

  // Origin of the alias
  string origin = 3;

  // Controller of the alias
  string controller = 4;
}

message URI {
  enum Protocol {
    HTTPS = 0;
    IPFS = 1;
  }

  Protocol protocol = 1;
  string uri = 2;
}
