// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.7
// 	protoc        (unknown)
// source: customer/service.proto

package customer

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type AccountStatus int32

const (
	AccountStatus_nko AccountStatus = 0
	AccountStatus_no  AccountStatus = 1
	AccountStatus_org AccountStatus = 2
)

// Enum value maps for AccountStatus.
var (
	AccountStatus_name = map[int32]string{
		0: "nko",
		1: "no",
		2: "org",
	}
	AccountStatus_value = map[string]int32{
		"nko": 0,
		"no":  1,
		"org": 2,
	}
)

func (x AccountStatus) Enum() *AccountStatus {
	p := new(AccountStatus)
	*p = x
	return p
}

func (x AccountStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AccountStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_customer_service_proto_enumTypes[0].Descriptor()
}

func (AccountStatus) Type() protoreflect.EnumType {
	return &file_customer_service_proto_enumTypes[0]
}

func (x AccountStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AccountStatus.Descriptor instead.
func (AccountStatus) EnumDescriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{0}
}

type History struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	Comment       string                 `protobuf:"bytes,2,opt,name=Comment,proto3" json:"Comment,omitempty"`
	Key           string                 `protobuf:"bytes,3,opt,name=Key,proto3" json:"Key,omitempty"`
	RawDetails    string                 `protobuf:"bytes,4,opt,name=RawDetails,proto3" json:"RawDetails,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *History) Reset() {
	*x = History{}
	mi := &file_customer_service_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *History) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*History) ProtoMessage() {}

func (x *History) ProtoReflect() protoreflect.Message {
	mi := &file_customer_service_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use History.ProtoReflect.Descriptor instead.
func (*History) Descriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{0}
}

func (x *History) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *History) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *History) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *History) GetRawDetails() string {
	if x != nil {
		return x.RawDetails
	}
	return ""
}

type SetVerificationReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Status        AccountStatus          `protobuf:"varint,2,opt,name=status,proto3,enum=customer.AccountStatus" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetVerificationReq) Reset() {
	*x = SetVerificationReq{}
	mi := &file_customer_service_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetVerificationReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetVerificationReq) ProtoMessage() {}

func (x *SetVerificationReq) ProtoReflect() protoreflect.Message {
	mi := &file_customer_service_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetVerificationReq.ProtoReflect.Descriptor instead.
func (*SetVerificationReq) Descriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{1}
}

func (x *SetVerificationReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *SetVerificationReq) GetStatus() AccountStatus {
	if x != nil {
		return x.Status
	}
	return AccountStatus_nko
}

type Account struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	UserID        string                 `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"`
	Cart          []string               `protobuf:"bytes,3,rep,name=cart,proto3" json:"cart,omitempty"`
	Wallet        *Wallet                `protobuf:"bytes,4,opt,name=wallet,proto3" json:"wallet,omitempty"`
	Name          *Name                  `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	Status        AccountStatus          `protobuf:"varint,6,opt,name=status,proto3,enum=customer.AccountStatus" json:"status,omitempty"`
	IsDeleted     bool                   `protobuf:"varint,7,opt,name=isDeleted,proto3" json:"isDeleted,omitempty"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
	UpdatedAt     *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"`
	DeletedAt     *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"`
	From          string                 `protobuf:"bytes,11,opt,name=from,proto3" json:"from,omitempty"`
	Partner       string                 `protobuf:"bytes,12,opt,name=partner,proto3" json:"partner,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Account) Reset() {
	*x = Account{}
	mi := &file_customer_service_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Account) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Account) ProtoMessage() {}

func (x *Account) ProtoReflect() protoreflect.Message {
	mi := &file_customer_service_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Account.ProtoReflect.Descriptor instead.
func (*Account) Descriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{2}
}

func (x *Account) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Account) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *Account) GetCart() []string {
	if x != nil {
		return x.Cart
	}
	return nil
}

func (x *Account) GetWallet() *Wallet {
	if x != nil {
		return x.Wallet
	}
	return nil
}

func (x *Account) GetName() *Name {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *Account) GetStatus() AccountStatus {
	if x != nil {
		return x.Status
	}
	return AccountStatus_nko
}

func (x *Account) GetIsDeleted() bool {
	if x != nil {
		return x.IsDeleted
	}
	return false
}

func (x *Account) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Account) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *Account) GetDeletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.DeletedAt
	}
	return nil
}

func (x *Account) GetFrom() string {
	if x != nil {
		return x.From
	}
	return ""
}

func (x *Account) GetPartner() string {
	if x != nil {
		return x.Partner
	}
	return ""
}

type Wallet struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Cash            int64                  `protobuf:"varint,1,opt,name=cash,proto3" json:"cash,omitempty"`
	Currency        string                 `protobuf:"bytes,2,opt,name=currency,proto3" json:"currency,omitempty"`
	Spent           int64                  `protobuf:"varint,3,opt,name=spent,proto3" json:"spent,omitempty"`
	PurchasesAmount int64                  `protobuf:"varint,4,opt,name=purchasesAmount,proto3" json:"purchasesAmount,omitempty"`
	Money           int64                  `protobuf:"varint,5,opt,name=money,proto3" json:"money,omitempty"`
	LastPaymentId   string                 `protobuf:"bytes,6,opt,name=lastPaymentId,proto3" json:"lastPaymentId,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Wallet) Reset() {
	*x = Wallet{}
	mi := &file_customer_service_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Wallet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Wallet) ProtoMessage() {}

func (x *Wallet) ProtoReflect() protoreflect.Message {
	mi := &file_customer_service_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Wallet.ProtoReflect.Descriptor instead.
func (*Wallet) Descriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{3}
}

func (x *Wallet) GetCash() int64 {
	if x != nil {
		return x.Cash
	}
	return 0
}

func (x *Wallet) GetCurrency() string {
	if x != nil {
		return x.Currency
	}
	return ""
}

func (x *Wallet) GetSpent() int64 {
	if x != nil {
		return x.Spent
	}
	return 0
}

func (x *Wallet) GetPurchasesAmount() int64 {
	if x != nil {
		return x.PurchasesAmount
	}
	return 0
}

func (x *Wallet) GetMoney() int64 {
	if x != nil {
		return x.Money
	}
	return 0
}

func (x *Wallet) GetLastPaymentId() string {
	if x != nil {
		return x.LastPaymentId
	}
	return ""
}

type Name struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Middlename    string                 `protobuf:"bytes,1,opt,name=middlename,proto3" json:"middlename,omitempty"`
	Firstname     string                 `protobuf:"bytes,2,opt,name=firstname,proto3" json:"firstname,omitempty"`
	Orgname       string                 `protobuf:"bytes,3,opt,name=orgname,proto3" json:"orgname,omitempty"`
	Secondname    string                 `protobuf:"bytes,4,opt,name=secondname,proto3" json:"secondname,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Name) Reset() {
	*x = Name{}
	mi := &file_customer_service_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Name) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Name) ProtoMessage() {}

func (x *Name) ProtoReflect() protoreflect.Message {
	mi := &file_customer_service_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Name.ProtoReflect.Descriptor instead.
func (*Name) Descriptor() ([]byte, []int) {
	return file_customer_service_proto_rawDescGZIP(), []int{4}
}

func (x *Name) GetMiddlename() string {
	if x != nil {
		return x.Middlename
	}
	return ""
}

func (x *Name) GetFirstname() string {
	if x != nil {
		return x.Firstname
	}
	return ""
}

func (x *Name) GetOrgname() string {
	if x != nil {
		return x.Orgname
	}
	return ""
}

func (x *Name) GetSecondname() string {
	if x != nil {
		return x.Secondname
	}
	return ""
}

var File_customer_service_proto protoreflect.FileDescriptor

const file_customer_service_proto_rawDesc = "" +
	"\n" +
	"\x16customer/service.proto\x12\bcustomer\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"m\n" +
	"\aHistory\x12\x16\n" +
	"\x06UserID\x18\x01 \x01(\tR\x06UserID\x12\x18\n" +
	"\aComment\x18\x02 \x01(\tR\aComment\x12\x10\n" +
	"\x03Key\x18\x03 \x01(\tR\x03Key\x12\x1e\n" +
	"\n" +
	"RawDetails\x18\x04 \x01(\tR\n" +
	"RawDetails\"]\n" +
	"\x12SetVerificationReq\x12\x16\n" +
	"\x06userID\x18\x01 \x01(\tR\x06userID\x12/\n" +
	"\x06status\x18\x02 \x01(\x0e2\x17.customer.AccountStatusR\x06status\"\xbe\x03\n" +
	"\aAccount\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
	"\x06userID\x18\x02 \x01(\tR\x06userID\x12\x12\n" +
	"\x04cart\x18\x03 \x03(\tR\x04cart\x12(\n" +
	"\x06wallet\x18\x04 \x01(\v2\x10.customer.WalletR\x06wallet\x12\"\n" +
	"\x04name\x18\x05 \x01(\v2\x0e.customer.NameR\x04name\x12/\n" +
	"\x06status\x18\x06 \x01(\x0e2\x17.customer.AccountStatusR\x06status\x12\x1c\n" +
	"\tisDeleted\x18\a \x01(\bR\tisDeleted\x128\n" +
	"\tcreatedAt\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x128\n" +
	"\tupdatedAt\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x128\n" +
	"\tdeletedAt\x18\n" +
	" \x01(\v2\x1a.google.protobuf.TimestampR\tdeletedAt\x12\x12\n" +
	"\x04from\x18\v \x01(\tR\x04from\x12\x18\n" +
	"\apartner\x18\f \x01(\tR\apartner\"\xb4\x01\n" +
	"\x06Wallet\x12\x12\n" +
	"\x04cash\x18\x01 \x01(\x03R\x04cash\x12\x1a\n" +
	"\bcurrency\x18\x02 \x01(\tR\bcurrency\x12\x14\n" +
	"\x05spent\x18\x03 \x01(\x03R\x05spent\x12(\n" +
	"\x0fpurchasesAmount\x18\x04 \x01(\x03R\x0fpurchasesAmount\x12\x14\n" +
	"\x05money\x18\x05 \x01(\x03R\x05money\x12$\n" +
	"\rlastPaymentId\x18\x06 \x01(\tR\rlastPaymentId\"~\n" +
	"\x04Name\x12\x1e\n" +
	"\n" +
	"middlename\x18\x01 \x01(\tR\n" +
	"middlename\x12\x1c\n" +
	"\tfirstname\x18\x02 \x01(\tR\tfirstname\x12\x18\n" +
	"\aorgname\x18\x03 \x01(\tR\aorgname\x12\x1e\n" +
	"\n" +
	"secondname\x18\x04 \x01(\tR\n" +
	"secondname*)\n" +
	"\rAccountStatus\x12\a\n" +
	"\x03nko\x10\x00\x12\x06\n" +
	"\x02no\x10\x01\x12\a\n" +
	"\x03org\x10\x022\xa2\x01\n" +
	"\x0fCustomerService\x12<\n" +
	"\rInsertHistory\x12\x11.customer.History\x1a\x16.google.protobuf.Empty\"\x00\x12Q\n" +
	"\x1cSetAccountVerificationStatus\x12\x1c.customer.SetVerificationReq\x1a\x11.customer.Account\"\x00B\fZ\n" +
	"./customerb\x06proto3"

var (
	file_customer_service_proto_rawDescOnce sync.Once
	file_customer_service_proto_rawDescData []byte
)

func file_customer_service_proto_rawDescGZIP() []byte {
	file_customer_service_proto_rawDescOnce.Do(func() {
		file_customer_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_customer_service_proto_rawDesc), len(file_customer_service_proto_rawDesc)))
	})
	return file_customer_service_proto_rawDescData
}

var file_customer_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_customer_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_customer_service_proto_goTypes = []any{
	(AccountStatus)(0),            // 0: customer.AccountStatus
	(*History)(nil),               // 1: customer.History
	(*SetVerificationReq)(nil),    // 2: customer.SetVerificationReq
	(*Account)(nil),               // 3: customer.Account
	(*Wallet)(nil),                // 4: customer.Wallet
	(*Name)(nil),                  // 5: customer.Name
	(*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),         // 7: google.protobuf.Empty
}
var file_customer_service_proto_depIdxs = []int32{
	0, // 0: customer.SetVerificationReq.status:type_name -> customer.AccountStatus
	4, // 1: customer.Account.wallet:type_name -> customer.Wallet
	5, // 2: customer.Account.name:type_name -> customer.Name
	0, // 3: customer.Account.status:type_name -> customer.AccountStatus
	6, // 4: customer.Account.createdAt:type_name -> google.protobuf.Timestamp
	6, // 5: customer.Account.updatedAt:type_name -> google.protobuf.Timestamp
	6, // 6: customer.Account.deletedAt:type_name -> google.protobuf.Timestamp
	1, // 7: customer.CustomerService.InsertHistory:input_type -> customer.History
	2, // 8: customer.CustomerService.SetAccountVerificationStatus:input_type -> customer.SetVerificationReq
	7, // 9: customer.CustomerService.InsertHistory:output_type -> google.protobuf.Empty
	3, // 10: customer.CustomerService.SetAccountVerificationStatus:output_type -> customer.Account
	9, // [9:11] is the sub-list for method output_type
	7, // [7:9] is the sub-list for method input_type
	7, // [7:7] is the sub-list for extension type_name
	7, // [7:7] is the sub-list for extension extendee
	0, // [0:7] is the sub-list for field type_name
}

func init() { file_customer_service_proto_init() }
func file_customer_service_proto_init() {
	if File_customer_service_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_customer_service_proto_rawDesc), len(file_customer_service_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   5,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_customer_service_proto_goTypes,
		DependencyIndexes: file_customer_service_proto_depIdxs,
		EnumInfos:         file_customer_service_proto_enumTypes,
		MessageInfos:      file_customer_service_proto_msgTypes,
	}.Build()
	File_customer_service_proto = out.File
	file_customer_service_proto_goTypes = nil
	file_customer_service_proto_depIdxs = nil
}
