syntax = "proto3";
package kava.earn.v1beta1;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";

option go_package = "github.com/kava-labs/kava/x/earn/types";

// CommunityPoolDepositProposal deposits from the community pool into an earn vault
message CommunityPoolDepositProposal {
  option (gogoproto.goproto_stringer) = false;
  option (gogoproto.goproto_getters)  = false;

  string                   title       = 1;
  string                   description = 2;
  cosmos.base.v1beta1.Coin amount      = 3 [(gogoproto.nullable) = false];
}

// CommunityPoolDepositProposalJSON defines a CommunityPoolDepositProposal with a deposit
message CommunityPoolDepositProposalJSON {
  option (gogoproto.goproto_stringer) = true;
  option (gogoproto.goproto_getters)  = false;

  string                   title            = 1;
  string                   description      = 2;
  cosmos.base.v1beta1.Coin amount           = 3 [(gogoproto.nullable) = false];
  repeated cosmos.base.v1beta1.Coin deposit = 4
      [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}

// CommunityPoolWithdrawProposal withdraws from an earn vault back to community pool
message CommunityPoolWithdrawProposal {
  option (gogoproto.goproto_stringer) = false;
  option (gogoproto.goproto_getters)  = false;

  string                   title       = 1;
  string                   description = 2;
  cosmos.base.v1beta1.Coin amount      = 3 [(gogoproto.nullable) = false];
}

// CommunityPoolWithdrawProposalJSON defines a CommunityPoolWithdrawProposal with a deposit
message CommunityPoolWithdrawProposalJSON {
  option (gogoproto.goproto_stringer) = true;
  option (gogoproto.goproto_getters)  = false;

  string                   title            = 1;
  string                   description      = 2;
  cosmos.base.v1beta1.Coin amount           = 3 [(gogoproto.nullable) = false];
  repeated cosmos.base.v1beta1.Coin deposit = 4
      [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}