# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: payment_model.proto

require 'google/protobuf'

require 'google/protobuf/wrappers_pb'
require 'google/protobuf/timestamp_pb'
require 'common_model_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("payment_model.proto", :syntax => :proto3) do
    add_message "com.elarian.hera.proto.PaymentChannelNumber" do
      optional :channel, :enum, 1, "com.elarian.hera.proto.PaymentChannel"
      optional :number, :string, 2
    end
    add_message "com.elarian.hera.proto.PendingPaymentTransaction" do
      optional :created_at, :message, 1, "google.protobuf.Timestamp"
      optional :value, :message, 2, "com.elarian.hera.proto.Cash"
      optional :converted, :message, 3, "com.elarian.hera.proto.Cash"
    end
    add_message "com.elarian.hera.proto.PaymentBalance" do
      optional :currency_code, :string, 1
      optional :available, :message, 2, "com.elarian.hera.proto.Cash"
      optional :actual, :message, 3, "com.elarian.hera.proto.Cash"
      map :pending, :string, :message, 4, "com.elarian.hera.proto.PendingPaymentTransaction"
      optional :sequence_nr, :int64, 5
    end
    add_message "com.elarian.hera.proto.PaymentPurseCounterParty" do
      optional :purse_id, :string, 1
    end
    add_message "com.elarian.hera.proto.PaymentWalletCounterParty" do
      optional :customer_id, :string, 1
      optional :wallet_id, :string, 2
    end
    add_message "com.elarian.hera.proto.PaymentCustomerCounterParty" do
      optional :customer_number, :message, 1, "com.elarian.hera.proto.CustomerNumber"
      optional :channel_number, :message, 2, "com.elarian.hera.proto.PaymentChannelNumber"
    end
    add_message "com.elarian.hera.proto.PaymentChannelCounterParty" do
      optional :channel, :enum, 1, "com.elarian.hera.proto.PaymentChannel"
      optional :channel_code, :int32, 2
      optional :source, :string, 3
      optional :destination, :string, 4
      optional :account, :message, 5, "google.protobuf.StringValue"
    end
    add_message "com.elarian.hera.proto.PaymentCounterParty" do
      oneof :party do
        optional :purse, :message, 1, "com.elarian.hera.proto.PaymentPurseCounterParty"
        optional :wallet, :message, 2, "com.elarian.hera.proto.PaymentWalletCounterParty"
        optional :customer, :message, 3, "com.elarian.hera.proto.PaymentCustomerCounterParty"
        optional :channel, :message, 4, "com.elarian.hera.proto.PaymentChannelCounterParty"
      end
    end
    add_message "com.elarian.hera.proto.PaymentTransaction" do
      optional :transaction_id, :string, 1
      optional :app_id, :message, 2, "google.protobuf.StringValue"
      optional :debit_party, :message, 4, "com.elarian.hera.proto.PaymentCounterParty"
      optional :credit_party, :message, 5, "com.elarian.hera.proto.PaymentCounterParty"
      optional :value, :message, 6, "com.elarian.hera.proto.Cash"
      optional :status, :enum, 7, "com.elarian.hera.proto.PaymentStatus"
      optional :created_at, :message, 8, "google.protobuf.Timestamp"
      optional :updated_at, :message, 9, "google.protobuf.Timestamp"
    end
    add_enum "com.elarian.hera.proto.PaymentChannel" do
      value :PAYMENT_CHANNEL_UNSPECIFIED, 0
      value :PAYMENT_CHANNEL_CELLULAR, 1
      value :PAYMENT_CHANNEL_AIRTIME, 2
    end
    add_enum "com.elarian.hera.proto.PaymentStatus" do
      value :PAYMENT_STATUS_UNSPECIFIED, 0
      value :PAYMENT_STATUS_QUEUED, 100
      value :PAYMENT_STATUS_PENDING_CONFIRMATION, 101
      value :PAYMENT_STATUS_PENDING_VALIDATION, 102
      value :PAYMENT_STATUS_VALIDATED, 103
      value :PAYMENT_STATUS_INVALID_REQUEST, 200
      value :PAYMENT_STATUS_NOT_SUPPORTED, 201
      value :PAYMENT_STATUS_INSUFFICIENT_FUNDS, 202
      value :PAYMENT_STATUS_APPLICATION_ERROR, 203
      value :PAYMENT_STATUS_NOT_ALLOWED, 204
      value :PAYMENT_STATUS_DUPLICATE_REQUEST, 205
      value :PAYMENT_STATUS_INVALID_PURSE, 206
      value :PAYMENT_STATUS_INVALID_WALLET, 207
      value :PAYMENT_STATUS_DECOMMISSIONED_CUSTOMER_ID, 299
      value :PAYMENT_STATUS_SUCCESS, 300
      value :PAYMENT_STATUS_FAILED, 400
      value :PAYMENT_STATUS_THROTTLED, 401
      value :PAYMENT_STATUS_EXPIRED, 402
      value :PAYMENT_STATUS_REJECTED, 403
      value :PAYMENT_STATUS_REVERSED, 500
    end
  end
end

module Com
  module Elarian
    module Hera
      module Proto
        PaymentChannelNumber = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentChannelNumber").msgclass
        PendingPaymentTransaction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PendingPaymentTransaction").msgclass
        PaymentBalance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentBalance").msgclass
        PaymentPurseCounterParty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentPurseCounterParty").msgclass
        PaymentWalletCounterParty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentWalletCounterParty").msgclass
        PaymentCustomerCounterParty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentCustomerCounterParty").msgclass
        PaymentChannelCounterParty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentChannelCounterParty").msgclass
        PaymentCounterParty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentCounterParty").msgclass
        PaymentTransaction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentTransaction").msgclass
        PaymentChannel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentChannel").enummodule
        PaymentStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.elarian.hera.proto.PaymentStatus").enummodule
      end
    end
  end
end
