mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	新版IP库管理阶段性提交(未完成)
This commit is contained in:
		
							
								
								
									
										6843
									
								
								build/rpc.json
									
									
									
									
									
								
							
							
						
						
									
										6843
									
								
								build/rpc.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								pkg/iplibrary/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								pkg/iplibrary/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
     ip.db
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								pkg/iplibrary/ip.db
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								pkg/iplibrary/ip.db
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										13
									
								
								pkg/iplibrary/ip_item.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								pkg/iplibrary/ip_item.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
type ipItem struct {
 | 
			
		||||
	ipFrom     uint64
 | 
			
		||||
	ipTo       uint64
 | 
			
		||||
	countryId  int64
 | 
			
		||||
	provinceId int64
 | 
			
		||||
	cityId     int64
 | 
			
		||||
	townId     int64
 | 
			
		||||
	providerId int64
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								pkg/iplibrary/meta.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								pkg/iplibrary/meta.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
type Meta struct {
 | 
			
		||||
	Version   int         `json:"version"` // IP库版本
 | 
			
		||||
	Author    string      `json:"author"`
 | 
			
		||||
	Countries []*Country  `json:"countries"`
 | 
			
		||||
	Provinces []*Province `json:"provinces"`
 | 
			
		||||
	Cities    []*City     `json:"cities"`
 | 
			
		||||
	Towns     []*Town     `json:"towns"`
 | 
			
		||||
	Providers []*Provider `json:"providers"`
 | 
			
		||||
	CreatedAt int64       `json:"createdAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Provider struct {
 | 
			
		||||
	Name  string   `json:"name"`
 | 
			
		||||
	Codes []string `json:"codes"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Country struct {
 | 
			
		||||
	Name  string   `json:"name"`
 | 
			
		||||
	Codes []string `json:"codes"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Province struct {
 | 
			
		||||
	Name  string   `json:"name"`
 | 
			
		||||
	Codes []string `json:"codes"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type City struct {
 | 
			
		||||
	Name  string   `json:"name"`
 | 
			
		||||
	Codes []string `json:"codes"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Town struct {
 | 
			
		||||
	Name  string   `json:"name"`
 | 
			
		||||
	Codes []string `json:"codes"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										64
									
								
								pkg/iplibrary/parser.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								pkg/iplibrary/parser.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Parser struct {
 | 
			
		||||
	config *ParserConfig
 | 
			
		||||
 | 
			
		||||
	data []byte
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewParser(config *ParserConfig) (*Parser, error) {
 | 
			
		||||
	if config == nil {
 | 
			
		||||
		config = &ParserConfig{}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if config.Template == nil {
 | 
			
		||||
		return nil, errors.New("template must not be nil")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &Parser{
 | 
			
		||||
		config: config,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Parser) Write(data []byte) {
 | 
			
		||||
	this.data = append(this.data, data...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Parser) Parse() error {
 | 
			
		||||
	if len(this.data) == 0 {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	for {
 | 
			
		||||
		var index = bytes.IndexByte(this.data, '\n')
 | 
			
		||||
		if index >= 0 {
 | 
			
		||||
			var line = this.data[:index+1]
 | 
			
		||||
			values, found := this.config.Template.Extract(string(line), this.config.EmptyValues)
 | 
			
		||||
			if found {
 | 
			
		||||
				if this.config.Iterator != nil {
 | 
			
		||||
					err := this.config.Iterator(values)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						return err
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				// 防止错误信息太长
 | 
			
		||||
				if len(line) > 256 {
 | 
			
		||||
					line = line[:256]
 | 
			
		||||
				}
 | 
			
		||||
				return errors.New("invalid line '" + string(line) + "'")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			this.data = this.data[index+1:]
 | 
			
		||||
		} else {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								pkg/iplibrary/parser_config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								pkg/iplibrary/parser_config.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
type ParserConfig struct {
 | 
			
		||||
	Template    *Template
 | 
			
		||||
	EmptyValues []string
 | 
			
		||||
	Iterator    func(values map[string]string) error
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								pkg/iplibrary/parser_reader.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								pkg/iplibrary/parser_reader.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ReaderParser struct {
 | 
			
		||||
	reader    io.Reader
 | 
			
		||||
	rawParser *Parser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewReaderParser(reader io.Reader, config *ParserConfig) (*ReaderParser, error) {
 | 
			
		||||
	if config == nil {
 | 
			
		||||
		config = &ParserConfig{}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if config.Template == nil {
 | 
			
		||||
		return nil, errors.New("template must not be nil")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	parser, err := NewParser(config)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &ReaderParser{
 | 
			
		||||
		reader:    reader,
 | 
			
		||||
		rawParser: parser,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *ReaderParser) Parse() error {
 | 
			
		||||
	var buf = make([]byte, 1024)
 | 
			
		||||
	for {
 | 
			
		||||
		n, err := this.reader.Read(buf)
 | 
			
		||||
		if n > 0 {
 | 
			
		||||
			this.rawParser.Write(buf[:n])
 | 
			
		||||
			parseErr := this.rawParser.Parse()
 | 
			
		||||
			if parseErr != nil {
 | 
			
		||||
				return parseErr
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if err != io.EOF {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								pkg/iplibrary/parser_reader_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								pkg/iplibrary/parser_reader_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewReaderParser(t *testing.T) {
 | 
			
		||||
	template, err := iplibrary.NewTemplate("${ipFrom}|${ipTo}|${country}|${any}|${province}|${city}|${provider}")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var buf = &bytes.Buffer{}
 | 
			
		||||
	buf.WriteString(`8.45.160.0|8.45.161.255|美国|0|华盛顿|西雅图|Level3
 | 
			
		||||
8.45.162.0|8.45.162.255|美国|0|马萨诸塞|0|Level3
 | 
			
		||||
8.45.163.0|8.45.164.255|美国|0|俄勒冈|0|Level3
 | 
			
		||||
8.45.165.0|8.45.165.255|美国|0|华盛顿|0|Level3
 | 
			
		||||
8.45.166.0|8.45.167.255|美国|0|华盛顿|西雅图|Level3
 | 
			
		||||
8.45.168.0|8.127.255.255|美国|0|0|0|Level3
 | 
			
		||||
8.128.0.0|8.128.3.255|中国|0|上海|上海市|阿里巴巴
 | 
			
		||||
8.128.4.0|8.128.255.255|中国|0|0|0|阿里巴巴
 | 
			
		||||
8.129.0.0|8.129.255.255|中国|0|广东省|深圳市|阿里云
 | 
			
		||||
8.130.0.0|8.130.55.255|中国|0|北京|北京市|阿里云
 | 
			
		||||
8.130.56.0|8.131.255.255|中国|0|北京|北京市|阿里巴巴
 | 
			
		||||
8.132.0.0|8.133.255.255|中国|0|上海|上海市|阿里巴巴
 | 
			
		||||
8.134.0.0|8.134.20.63|中国|0|0|0|阿里云
 | 
			
		||||
8.134.20.64|8.134.79.255|中国|0|广东省|深圳市|阿里云
 | 
			
		||||
8.134.80.0|8.191.255.255|中国|0|0|0|阿里巴巴
 | 
			
		||||
8.192.0.0|8.192.0.255|美国|0|0|0|Level3
 | 
			
		||||
8.192.1.0|8.192.1.255|美国|0|马萨诸塞|波士顿|Level3
 | 
			
		||||
8.192.2.0|8.207.255.255|美国|0|0|0|Level3
 | 
			
		||||
8.208.0.0|8.208.127.255|英国|0|伦敦|伦敦|阿里云
 | 
			
		||||
8.208.128.0|8.208.255.255|英国|0|伦敦|伦敦|阿里巴巴
 | 
			
		||||
8.209.0.0|8.209.15.255|俄罗斯|0|莫斯科|莫斯科|阿里云
 | 
			
		||||
8.209.16.0|8.209.31.255|俄罗斯|0|莫斯科|莫斯科|阿里巴巴
 | 
			
		||||
8.209.32.0|8.209.32.15|中国|0|台湾省|台北|阿里云
 | 
			
		||||
8.209.32.16|8.209.32.255|中国|0|台湾省|台北|阿里巴巴
 | 
			
		||||
8.209.33.0|8.209.34.255|中国|0|台湾省|台北|阿里云
 | 
			
		||||
8.209.35.0|8.209.35.255|中国|0|台湾省|台北|阿里巴巴`)
 | 
			
		||||
 | 
			
		||||
	var count int
 | 
			
		||||
	parser, err := iplibrary.NewReaderParser(buf, &iplibrary.ParserConfig{
 | 
			
		||||
		Template:    template,
 | 
			
		||||
		EmptyValues: []string{"0"},
 | 
			
		||||
		Iterator: func(values map[string]string) error {
 | 
			
		||||
			count++
 | 
			
		||||
			t.Log(count, values)
 | 
			
		||||
			return nil
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	err = parser.Parse()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								pkg/iplibrary/parser_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								pkg/iplibrary/parser_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewParser(t *testing.T) {
 | 
			
		||||
	template, err := iplibrary.NewTemplate("${ipFrom}|${ipTo}|${country}|${any}|${province}|${city}|${provider}")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	parser, err := iplibrary.NewParser(&iplibrary.ParserConfig{
 | 
			
		||||
		Template:    template,
 | 
			
		||||
		EmptyValues: []string{"0"},
 | 
			
		||||
		Iterator: func(values map[string]string) error {
 | 
			
		||||
			t.Log(values)
 | 
			
		||||
			return nil
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	parser.Write([]byte(`0.0.0.0|0.255.255.255|0|0|0|内网IP|内网IP
 | 
			
		||||
1.0.0.0|1.0.0.255|澳大利亚|0|0|0|0
 | 
			
		||||
1.0.1.0|1.0.3.255|中国|0|福建省|福州市|电信
 | 
			
		||||
1.0.4.0|1.0.7.255|澳大利亚|0|维多利亚|墨尔本|0
 | 
			
		||||
1.0.8.0|1.0.15.255|中国|0|广东省|广州市|电信
 | 
			
		||||
1.0.16.0|1.0.31.255|日本|0|0|0|0
 | 
			
		||||
1.0.32.0|1.0.63.255|中国|0|广东省|广州市|电信
 | 
			
		||||
1.0.64.0|1.0.79.255|日本|0|广岛县|0|0
 | 
			
		||||
1.0.80.0|1.0.127.255|日本|0|冈山县|0|0
 | 
			
		||||
1.0.128.0|1.0.128.255|泰国|0|清莱府|0|TOT
 | 
			
		||||
1.0.129.0|1.0.132.191|泰国|0|曼谷|曼谷|TOT`))
 | 
			
		||||
 | 
			
		||||
	err = parser.Parse()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										211
									
								
								pkg/iplibrary/reader.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								pkg/iplibrary/reader.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,211 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Reader struct {
 | 
			
		||||
	meta *Meta
 | 
			
		||||
 | 
			
		||||
	ipV4Items []*ipItem
 | 
			
		||||
	ipV6Items []*ipItem
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewReader(reader io.Reader) (*Reader, error) {
 | 
			
		||||
	var libReader = &Reader{}
 | 
			
		||||
	err := libReader.load(reader)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return libReader, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) load(reader io.Reader) error {
 | 
			
		||||
	var buf = make([]byte, 1024)
 | 
			
		||||
	var metaLine = []byte{}
 | 
			
		||||
	var metaLineFound = false
 | 
			
		||||
	var dataBuf = []byte{}
 | 
			
		||||
	for {
 | 
			
		||||
		n, err := reader.Read(buf)
 | 
			
		||||
		if n > 0 {
 | 
			
		||||
			var data = buf[:n]
 | 
			
		||||
			dataBuf = append(dataBuf, data...)
 | 
			
		||||
			if metaLineFound {
 | 
			
		||||
				left, err := this.parse(dataBuf)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
				dataBuf = left
 | 
			
		||||
			} else {
 | 
			
		||||
				var index = bytes.IndexByte(dataBuf, '\n')
 | 
			
		||||
				if index > 0 {
 | 
			
		||||
					metaLine = dataBuf[:index]
 | 
			
		||||
					dataBuf = dataBuf[index+1:]
 | 
			
		||||
					metaLineFound = true
 | 
			
		||||
					var meta = &Meta{}
 | 
			
		||||
					err = json.Unmarshal(metaLine, &meta)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						return err
 | 
			
		||||
					}
 | 
			
		||||
					this.meta = meta
 | 
			
		||||
 | 
			
		||||
					left, err := this.parse(dataBuf)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						return err
 | 
			
		||||
					}
 | 
			
		||||
					dataBuf = left
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if err != io.EOF {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sort.Slice(this.ipV4Items, func(i, j int) bool {
 | 
			
		||||
		var from0 = this.ipV4Items[i].ipFrom
 | 
			
		||||
		var to0 = this.ipV4Items[i].ipTo
 | 
			
		||||
		var from1 = this.ipV4Items[j].ipFrom
 | 
			
		||||
		var to1 = this.ipV4Items[j].ipTo
 | 
			
		||||
		if from0 == from1 {
 | 
			
		||||
			return to0 < to1
 | 
			
		||||
		}
 | 
			
		||||
		return from0 < from1
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	sort.Slice(this.ipV6Items, func(i, j int) bool {
 | 
			
		||||
		var from0 = this.ipV6Items[i].ipFrom
 | 
			
		||||
		var to0 = this.ipV6Items[i].ipTo
 | 
			
		||||
		var from1 = this.ipV6Items[j].ipFrom
 | 
			
		||||
		var to1 = this.ipV6Items[j].ipTo
 | 
			
		||||
		if from0 == from1 {
 | 
			
		||||
			return to0 < to1
 | 
			
		||||
		}
 | 
			
		||||
		return from0 < from1
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) Lookup(ip net.IP) *QueryResult {
 | 
			
		||||
	var ipLong = configutils.IP2Long(ip)
 | 
			
		||||
	var isV4 = configutils.IsIPv4(ip)
 | 
			
		||||
	var resultItem *ipItem
 | 
			
		||||
	if isV4 {
 | 
			
		||||
		sort.Search(len(this.ipV4Items), func(i int) bool {
 | 
			
		||||
			var item = this.ipV4Items[i]
 | 
			
		||||
			if item.ipFrom <= ipLong {
 | 
			
		||||
				if item.ipTo >= ipLong {
 | 
			
		||||
					resultItem = item
 | 
			
		||||
					return false
 | 
			
		||||
				}
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			return true
 | 
			
		||||
		})
 | 
			
		||||
	} else {
 | 
			
		||||
		sort.Search(len(this.ipV6Items), func(i int) bool {
 | 
			
		||||
			var item = this.ipV6Items[i]
 | 
			
		||||
			if item.ipFrom <= ipLong {
 | 
			
		||||
				if item.ipTo >= ipLong {
 | 
			
		||||
					resultItem = item
 | 
			
		||||
					return false
 | 
			
		||||
				}
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			return true
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &QueryResult{
 | 
			
		||||
		item: resultItem,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) Meta() *Meta {
 | 
			
		||||
	return this.meta
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) IPv4Items() []*ipItem {
 | 
			
		||||
	return this.ipV4Items
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) IPv6Items() []*ipItem {
 | 
			
		||||
	return this.ipV6Items
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Reader) parse(data []byte) (left []byte, err error) {
 | 
			
		||||
	if len(data) == 0 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	for {
 | 
			
		||||
		var index = bytes.IndexByte(data, '\n')
 | 
			
		||||
		if index >= 0 {
 | 
			
		||||
			var line = data[:index]
 | 
			
		||||
			var pieces = strings.Split(string(line), "|")
 | 
			
		||||
			if len(pieces) != 8 {
 | 
			
		||||
				return nil, errors.New("invalid ip definition '" + string(line) + "'")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var version = pieces[0]
 | 
			
		||||
			if len(version) == 0 {
 | 
			
		||||
				version = "4"
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if version != "4" && version != "6" {
 | 
			
		||||
				return nil, errors.New("invalid ip version '" + string(line) + "'")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if len(pieces[2]) == 0 {
 | 
			
		||||
				pieces[2] = pieces[1]
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var ipFrom = types.Uint64(pieces[1])
 | 
			
		||||
			var ipTo = types.Uint64(pieces[2])
 | 
			
		||||
			if ipFrom > ipTo {
 | 
			
		||||
				ipFrom, ipTo = ipTo, ipFrom
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if version == "4" {
 | 
			
		||||
				this.ipV4Items = append(this.ipV4Items, &ipItem{
 | 
			
		||||
					ipFrom:     ipFrom,
 | 
			
		||||
					ipTo:       ipTo,
 | 
			
		||||
					countryId:  types.Int64(pieces[3]),
 | 
			
		||||
					provinceId: types.Int64(pieces[4]),
 | 
			
		||||
					cityId:     types.Int64(pieces[5]),
 | 
			
		||||
					townId:     types.Int64(pieces[6]),
 | 
			
		||||
					providerId: types.Int64(pieces[7]),
 | 
			
		||||
				})
 | 
			
		||||
			} else {
 | 
			
		||||
				this.ipV6Items = append(this.ipV6Items, &ipItem{
 | 
			
		||||
					ipFrom:     ipFrom,
 | 
			
		||||
					ipTo:       ipTo,
 | 
			
		||||
					countryId:  types.Int64(pieces[3]),
 | 
			
		||||
					provinceId: types.Int64(pieces[4]),
 | 
			
		||||
					cityId:     types.Int64(pieces[5]),
 | 
			
		||||
					townId:     types.Int64(pieces[6]),
 | 
			
		||||
					providerId: types.Int64(pieces[7]),
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			data = data[index+1:]
 | 
			
		||||
		} else {
 | 
			
		||||
			left = data
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								pkg/iplibrary/reader_file.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								pkg/iplibrary/reader_file.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"compress/gzip"
 | 
			
		||||
	"net"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type FileReader struct {
 | 
			
		||||
	rawReader *Reader
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewFileReader(path string) (*FileReader, error) {
 | 
			
		||||
	fp, err := os.Open(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	defer func() {
 | 
			
		||||
		_ = fp.Close()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	gzReader, err := gzip.NewReader(fp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	reader, err := NewReader(gzReader)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &FileReader{
 | 
			
		||||
		rawReader: reader,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *FileReader) Lookup(ip net.IP) *QueryResult {
 | 
			
		||||
	return this.rawReader.Lookup(ip)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								pkg/iplibrary/reader_file_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								pkg/iplibrary/reader_file_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"net"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewFileReader(t *testing.T) {
 | 
			
		||||
	reader, err := iplibrary.NewFileReader("./ip.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, ip := range []string{
 | 
			
		||||
		"127.0.0.1",
 | 
			
		||||
		"192.168.0.1",
 | 
			
		||||
		"192.168.0.150",
 | 
			
		||||
		"192.168.1.100",
 | 
			
		||||
		"192.168.2.100",
 | 
			
		||||
		"192.168.3.50",
 | 
			
		||||
		"192.168.0.150",
 | 
			
		||||
		"192.168.4.80",
 | 
			
		||||
		"8.8.8.8",
 | 
			
		||||
		"111.197.165.199",
 | 
			
		||||
		"175.178.206.125",
 | 
			
		||||
	} {
 | 
			
		||||
		var result = reader.Lookup(net.ParseIP(ip))
 | 
			
		||||
		if result.IsOk() {
 | 
			
		||||
			t.Log(ip+":", "countryId:", result.CountryId(), "provinceId:", result.ProvinceId(), "cityId:", result.CityId(), "provider:", result.ProviderId())
 | 
			
		||||
		} else {
 | 
			
		||||
			t.Log(ip+":", "not found")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								pkg/iplibrary/reader_result.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								pkg/iplibrary/reader_result.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
type QueryResult struct {
 | 
			
		||||
	item *ipItem
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) IsOk() bool {
 | 
			
		||||
	return this.item != nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) CountryId() int64 {
 | 
			
		||||
	if this.item != nil {
 | 
			
		||||
		return this.item.countryId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) ProvinceId() int64 {
 | 
			
		||||
	if this.item != nil {
 | 
			
		||||
		return this.item.provinceId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) CityId() int64 {
 | 
			
		||||
	if this.item != nil {
 | 
			
		||||
		return this.item.cityId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) TownId() int64 {
 | 
			
		||||
	if this.item != nil {
 | 
			
		||||
		return this.item.townId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *QueryResult) ProviderId() int64 {
 | 
			
		||||
	if this.item != nil {
 | 
			
		||||
		return this.item.providerId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										149
									
								
								pkg/iplibrary/reader_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								pkg/iplibrary/reader_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,149 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"github.com/iwind/TeaGo/rands"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
			
		||||
	"net"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewReader(t *testing.T) {
 | 
			
		||||
	var buf = &bytes.Buffer{}
 | 
			
		||||
	var writer = iplibrary.NewWriter(buf, &iplibrary.Meta{
 | 
			
		||||
		Author: "GoEdge <https://goedge.cn>",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	err := writer.WriteMeta()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.1.100", "192.168.1.100", 1, 200, 300, 400, 500)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.2.100", "192.168.3.100", 2, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.3.101", "192.168.3.101", 3, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.0.101", "192.168.0.200", 4, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("::1", "::5", 5, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**var n = func() string {
 | 
			
		||||
		return types.String(rands.Int(0, 255))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < 1_000_000; i++ {
 | 
			
		||||
		err = writer.Write(n()+"."+n()+"."+n()+"."+n(), n()+"."+n()+"."+n()+"."+n(), int64(i)+100, 201, 301, 401, 501)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
	}**/
 | 
			
		||||
 | 
			
		||||
	var stat = &runtime.MemStats{}
 | 
			
		||||
	runtime.ReadMemStats(stat)
 | 
			
		||||
	reader, err := iplibrary.NewReader(buf)
 | 
			
		||||
 | 
			
		||||
	var stat2 = &runtime.MemStats{}
 | 
			
		||||
	runtime.ReadMemStats(stat2)
 | 
			
		||||
	t.Log((stat2.Alloc-stat.Alloc)/1024/1024, "M")
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	t.Log("version:", reader.Meta().Version, "author:", reader.Meta().Author, "createdTime:", timeutil.FormatTime("Y-m-d H:i:s", reader.Meta().CreatedAt))
 | 
			
		||||
 | 
			
		||||
	if len(reader.IPv4Items()) < 10 {
 | 
			
		||||
		t.Log("===")
 | 
			
		||||
		for _, item := range reader.IPv4Items() {
 | 
			
		||||
			t.Logf("%+v", item)
 | 
			
		||||
		}
 | 
			
		||||
		t.Log("===")
 | 
			
		||||
	}
 | 
			
		||||
	if len(reader.IPv6Items()) < 10 {
 | 
			
		||||
		t.Log("===")
 | 
			
		||||
		for _, item := range reader.IPv6Items() {
 | 
			
		||||
			t.Logf("%+v", item)
 | 
			
		||||
		}
 | 
			
		||||
		t.Log("===")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var before = time.Now()
 | 
			
		||||
	for _, ip := range []string{
 | 
			
		||||
		"192.168.0.1",
 | 
			
		||||
		"192.168.0.150",
 | 
			
		||||
		"192.168.1.100",
 | 
			
		||||
		"192.168.2.100",
 | 
			
		||||
		"192.168.3.50",
 | 
			
		||||
		"192.168.0.150",
 | 
			
		||||
		"192.168.4.80",
 | 
			
		||||
		"::3",
 | 
			
		||||
		"::8",
 | 
			
		||||
	} {
 | 
			
		||||
		var result = reader.Lookup(net.ParseIP(ip))
 | 
			
		||||
		if result.IsOk() {
 | 
			
		||||
			t.Log(ip+":", "countryId:", result.CountryId())
 | 
			
		||||
		} else {
 | 
			
		||||
			t.Log(ip+":", "not found")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(time.Since(before).Seconds()*1000, "ms")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func BenchmarkNewReader(b *testing.B) {
 | 
			
		||||
	runtime.GOMAXPROCS(1)
 | 
			
		||||
 | 
			
		||||
	var buf = &bytes.Buffer{}
 | 
			
		||||
	var writer = iplibrary.NewWriter(buf, &iplibrary.Meta{
 | 
			
		||||
		Author: "GoEdge <https://goedge.cn>",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	err := writer.WriteMeta()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		b.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var n = func() string {
 | 
			
		||||
		return types.String(rands.Int(0, 255))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < 1_000_000; i++ {
 | 
			
		||||
		err = writer.Write(n()+"."+n()+"."+n()+"."+n(), n()+"."+n()+"."+n()+"."+n(), int64(i)+100, 201, 301, 401, 501)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	reader, err := iplibrary.NewReader(buf)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		b.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	b.ResetTimer()
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		var ip = "192.168.1.100"
 | 
			
		||||
		reader.Lookup(net.ParseIP(ip))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										75
									
								
								pkg/iplibrary/template.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								pkg/iplibrary/template.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/iwind/TeaGo/lists"
 | 
			
		||||
	"regexp"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Template struct {
 | 
			
		||||
	templateString string
 | 
			
		||||
	reg            *regexp.Regexp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewTemplate(templateString string) (*Template, error) {
 | 
			
		||||
	var t = &Template{
 | 
			
		||||
		templateString: templateString,
 | 
			
		||||
	}
 | 
			
		||||
	err := t.init()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return t, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Template) init() error {
 | 
			
		||||
	var template = regexp.QuoteMeta(this.templateString)
 | 
			
		||||
	var keywordReg = regexp.MustCompile(`\\\$\\{(\w+)\\}`)
 | 
			
		||||
	template = keywordReg.ReplaceAllStringFunc(template, func(keyword string) string {
 | 
			
		||||
		var matches = keywordReg.FindStringSubmatch(keyword)
 | 
			
		||||
		if len(matches) > 1 {
 | 
			
		||||
			switch matches[1] {
 | 
			
		||||
			case "ipFrom", "ipTo", "country", "province", "city", "town", "provider":
 | 
			
		||||
				return "(?P<" + matches[1] + ">.*)"
 | 
			
		||||
			}
 | 
			
		||||
			return ".*"
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return keyword
 | 
			
		||||
	})
 | 
			
		||||
	reg, err := regexp.Compile(template)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	this.reg = reg
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Template) Extract(text string, emptyValues []string) (values map[string]string, ok bool) {
 | 
			
		||||
	var matches = this.reg.FindStringSubmatch(text)
 | 
			
		||||
	if len(matches) == 0 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	values = map[string]string{}
 | 
			
		||||
	for index, name := range this.reg.SubexpNames() {
 | 
			
		||||
		if len(name) == 0 {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		var v = matches[index]
 | 
			
		||||
		if name != "ipFrom" && name != "ipTo" && (v == "0" || v == "无" || lists.ContainsString(emptyValues, v)) {
 | 
			
		||||
			v = ""
 | 
			
		||||
		}
 | 
			
		||||
		values[name] = v
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, keyword := range []string{"ipFrom", "ipTo", "country", "province", "city", "town", "provider"} {
 | 
			
		||||
		_, hasKeyword := values[keyword]
 | 
			
		||||
		if !hasKeyword {
 | 
			
		||||
			values[keyword] = ""
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ok = true
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								pkg/iplibrary/template_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								pkg/iplibrary/template_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewTemplate(t *testing.T) {
 | 
			
		||||
	template, err := iplibrary.NewTemplate("${ipFrom}|${ipTo}|${country}|${any}|${province}|${city}|${provider}")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	for _, s := range []string{
 | 
			
		||||
		"42.0.32.0|42.0.63.255|中国|0|广东省|广州市|电信",
 | 
			
		||||
		"42.0.32.0|42.0.63.255|中国|0|广东省|广州市|电信\n123",
 | 
			
		||||
		"42.0.32.0|42.0.63.255|中国||广东省|广州市|电信",
 | 
			
		||||
		"42.0.32.0|42.0.63.255|中国|0||广州市|电信",
 | 
			
		||||
		"42.0.32.0|42.0.63.255|中国|0|广东省|广州市",
 | 
			
		||||
	} {
 | 
			
		||||
		values, _ := template.Extract(s, []string{})
 | 
			
		||||
		t.Log(s, "=>\n", values)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								pkg/iplibrary/version.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								pkg/iplibrary/version.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
type Version = int
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	Version1 Version = 1
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										154
									
								
								pkg/iplibrary/writer.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								pkg/iplibrary/writer.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,154 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"crypto/md5"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	"hash"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type hashWriter struct {
 | 
			
		||||
	rawWriter io.Writer
 | 
			
		||||
	hash      hash.Hash
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func newHashWriter(writer io.Writer) *hashWriter {
 | 
			
		||||
	return &hashWriter{
 | 
			
		||||
		rawWriter: writer,
 | 
			
		||||
		hash:      md5.New(),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *hashWriter) Write(p []byte) (n int, err error) {
 | 
			
		||||
	n, err = this.rawWriter.Write(p)
 | 
			
		||||
	this.hash.Write(p)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *hashWriter) Sum() string {
 | 
			
		||||
	return fmt.Sprintf("%x", this.hash.Sum(nil))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Writer struct {
 | 
			
		||||
	writer *hashWriter
 | 
			
		||||
	meta   *Meta
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewWriter(writer io.Writer, meta *Meta) *Writer {
 | 
			
		||||
	if meta == nil {
 | 
			
		||||
		meta = &Meta{}
 | 
			
		||||
	}
 | 
			
		||||
	meta.Version = Version1
 | 
			
		||||
	meta.CreatedAt = time.Now().Unix()
 | 
			
		||||
 | 
			
		||||
	var libWriter = &Writer{
 | 
			
		||||
		writer: newHashWriter(writer),
 | 
			
		||||
		meta:   meta,
 | 
			
		||||
	}
 | 
			
		||||
	return libWriter
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Writer) WriteMeta() error {
 | 
			
		||||
	metaJSON, err := json.Marshal(this.meta)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = this.writer.Write(metaJSON)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = this.writer.Write([]byte("\n"))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceId int64, cityId int64, townId int64, providerId int64) error {
 | 
			
		||||
	// validate IP
 | 
			
		||||
	var fromIP = net.ParseIP(ipFrom)
 | 
			
		||||
	if fromIP == nil {
 | 
			
		||||
		return errors.New("invalid 'ipFrom': '" + ipFrom + "'")
 | 
			
		||||
	}
 | 
			
		||||
	var fromIsIPv4 = configutils.IsIPv4(fromIP)
 | 
			
		||||
	var toIP = net.ParseIP(ipTo)
 | 
			
		||||
	if toIP == nil {
 | 
			
		||||
		return errors.New("invalid 'ipTo': " + ipTo)
 | 
			
		||||
	}
 | 
			
		||||
	var toIsIPv4 = configutils.IsIPv4(toIP)
 | 
			
		||||
	if fromIsIPv4 != toIsIPv4 {
 | 
			
		||||
		return errors.New("'ipFrom(" + ipFrom + ")' and 'ipTo(" + ipTo + ")' should have the same IP version")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var pieces = []string{}
 | 
			
		||||
 | 
			
		||||
	// 0
 | 
			
		||||
	if fromIsIPv4 {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "6")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 1
 | 
			
		||||
	pieces = append(pieces, types.String(configutils.IP2Long(fromIP)))
 | 
			
		||||
	if ipFrom == ipTo {
 | 
			
		||||
		// 2
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	} else {
 | 
			
		||||
		// 2
 | 
			
		||||
		pieces = append(pieces, types.String(configutils.IP2Long(toIP)))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 3
 | 
			
		||||
	if countryId > 0 {
 | 
			
		||||
		pieces = append(pieces, types.String(countryId))
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 4
 | 
			
		||||
	if provinceId > 0 {
 | 
			
		||||
		pieces = append(pieces, types.String(provinceId))
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 5
 | 
			
		||||
	if cityId > 0 {
 | 
			
		||||
		pieces = append(pieces, types.String(cityId))
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 6
 | 
			
		||||
	if townId > 0 {
 | 
			
		||||
		pieces = append(pieces, types.String(townId))
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 7
 | 
			
		||||
	if providerId > 0 {
 | 
			
		||||
		pieces = append(pieces, types.String(providerId))
 | 
			
		||||
	} else {
 | 
			
		||||
		pieces = append(pieces, "")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err := this.writer.Write([]byte(strings.Join(pieces, "|")))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = this.writer.Write([]byte("\n"))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *Writer) Sum() string {
 | 
			
		||||
	return this.writer.Sum()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										58
									
								
								pkg/iplibrary/writer_file.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								pkg/iplibrary/writer_file.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"compress/gzip"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type FileWriter struct {
 | 
			
		||||
	fp       *os.File
 | 
			
		||||
	gzWriter *gzip.Writer
 | 
			
		||||
 | 
			
		||||
	rawWriter *Writer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewFileWriter(path string, meta *Meta) (*FileWriter, error) {
 | 
			
		||||
	fp, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	gzWriter, err := gzip.NewWriterLevel(fp, gzip.BestCompression)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var writer = &FileWriter{
 | 
			
		||||
		fp:        fp,
 | 
			
		||||
		gzWriter:  gzWriter,
 | 
			
		||||
		rawWriter: NewWriter(gzWriter, meta),
 | 
			
		||||
	}
 | 
			
		||||
	return writer, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *FileWriter) WriteMeta() error {
 | 
			
		||||
	return this.rawWriter.WriteMeta()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *FileWriter) Write(ipFrom string, ipTo string, countryId int64, provinceId int64, cityId int64, townId int64, providerId int64) error {
 | 
			
		||||
	return this.rawWriter.Write(ipFrom, ipTo, countryId, provinceId, cityId, townId, providerId)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *FileWriter) Sum() string {
 | 
			
		||||
	return this.rawWriter.Sum()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *FileWriter) Close() error {
 | 
			
		||||
	err1 := this.gzWriter.Close()
 | 
			
		||||
	err2 := this.fp.Close()
 | 
			
		||||
	if err1 != nil {
 | 
			
		||||
		return err1
 | 
			
		||||
	}
 | 
			
		||||
	if err2 != nil {
 | 
			
		||||
		return err2
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										56
									
								
								pkg/iplibrary/writer_file_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								pkg/iplibrary/writer_file_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"github.com/iwind/TeaGo/rands"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewFileWriter(t *testing.T) {
 | 
			
		||||
	writer, err := iplibrary.NewFileWriter("./ip.db", &iplibrary.Meta{
 | 
			
		||||
		Author: "GoEdge",
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.WriteMeta()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.1.100", "192.168.1.100", 100, 200, 300, 400, 500)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.2.100", "192.168.3.100", 101, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.3.101", "192.168.3.101", 101, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var n = func() string {
 | 
			
		||||
		return types.String(rands.Int(0, 255))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < 1_000_000; i++ {
 | 
			
		||||
		err = writer.Write(n()+"."+n()+"."+n()+"."+n(), n()+"."+n()+"."+n()+"."+n(), int64(i)+100, 201, 301, 401, 501)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Close()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	t.Log("ok", writer.Sum())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								pkg/iplibrary/writer_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								pkg/iplibrary/writer_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package iplibrary_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNewWriter(t *testing.T) {
 | 
			
		||||
	var buf = &bytes.Buffer{}
 | 
			
		||||
	var writer = iplibrary.NewWriter(buf, &iplibrary.Meta{
 | 
			
		||||
		Author: "GoEdge <https://goedge.cn>",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	err := writer.WriteMeta()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.1.100", "192.168.1.100", 100, 200, 300, 400, 500)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.2.100", "192.168.3.100", 101, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("192.168.3.101", "192.168.3.101", 101, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = writer.Write("::1", "::2", 101, 201, 301, 401, 501)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t.Log(buf.String())
 | 
			
		||||
	t.Log("sum:", writer.Sum())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										482
									
								
								pkg/rpc/pb/model_ip_library_file.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										482
									
								
								pkg/rpc/pb/model_ip_library_file.pb.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,482 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.25.0
 | 
			
		||||
// 	protoc        v3.19.4
 | 
			
		||||
// source: models/model_ip_library_file.proto
 | 
			
		||||
 | 
			
		||||
package pb
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	proto "github.com/golang/protobuf/proto"
 | 
			
		||||
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
			
		||||
	reflect "reflect"
 | 
			
		||||
	sync "sync"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// This is a compile-time assertion that a sufficiently up-to-date version
 | 
			
		||||
// of the legacy proto package is being used.
 | 
			
		||||
const _ = proto.ProtoPackageIsVersion4
 | 
			
		||||
 | 
			
		||||
type IPLibraryFile struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id            int64                     `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	FileId        int64                     `protobuf:"varint,2,opt,name=fileId,proto3" json:"fileId,omitempty"`
 | 
			
		||||
	IsFinished    bool                      `protobuf:"varint,3,opt,name=isFinished,proto3" json:"isFinished,omitempty"`
 | 
			
		||||
	CreatedAt     int64                     `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
 | 
			
		||||
	CountryNames  []string                  `protobuf:"bytes,5,rep,name=countryNames,proto3" json:"countryNames,omitempty"`
 | 
			
		||||
	Provinces     []*IPLibraryFile_Province `protobuf:"bytes,6,rep,name=provinces,proto3" json:"provinces,omitempty"`
 | 
			
		||||
	Cities        []*IPLibraryFile_City     `protobuf:"bytes,7,rep,name=cities,proto3" json:"cities,omitempty"`
 | 
			
		||||
	Towns         []*IPLibraryFile_Town     `protobuf:"bytes,8,rep,name=towns,proto3" json:"towns,omitempty"`
 | 
			
		||||
	ProviderNames []string                  `protobuf:"bytes,9,rep,name=providerNames,proto3" json:"providerNames,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) Reset() {
 | 
			
		||||
	*x = IPLibraryFile{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_models_model_ip_library_file_proto_msgTypes[0]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*IPLibraryFile) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_models_model_ip_library_file_proto_msgTypes[0]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use IPLibraryFile.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*IPLibraryFile) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_models_model_ip_library_file_proto_rawDescGZIP(), []int{0}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Id
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetFileId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.FileId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetIsFinished() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.IsFinished
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetCreatedAt() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CreatedAt
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetCountryNames() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CountryNames
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetProvinces() []*IPLibraryFile_Province {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Provinces
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetCities() []*IPLibraryFile_City {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Cities
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetTowns() []*IPLibraryFile_Town {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Towns
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile) GetProviderNames() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.ProviderNames
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type IPLibraryFile_Province struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	CountryName  string `protobuf:"bytes,1,opt,name=countryName,proto3" json:"countryName,omitempty"`
 | 
			
		||||
	ProvinceName string `protobuf:"bytes,2,opt,name=provinceName,proto3" json:"provinceName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Province) Reset() {
 | 
			
		||||
	*x = IPLibraryFile_Province{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_models_model_ip_library_file_proto_msgTypes[1]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Province) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*IPLibraryFile_Province) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Province) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_models_model_ip_library_file_proto_msgTypes[1]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use IPLibraryFile_Province.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*IPLibraryFile_Province) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_models_model_ip_library_file_proto_rawDescGZIP(), []int{0, 0}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Province) GetCountryName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CountryName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Province) GetProvinceName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.ProvinceName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type IPLibraryFile_City struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	CountryName  string `protobuf:"bytes,1,opt,name=countryName,proto3" json:"countryName,omitempty"`
 | 
			
		||||
	ProvinceName string `protobuf:"bytes,2,opt,name=provinceName,proto3" json:"provinceName,omitempty"`
 | 
			
		||||
	CityName     string `protobuf:"bytes,3,opt,name=cityName,proto3" json:"cityName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) Reset() {
 | 
			
		||||
	*x = IPLibraryFile_City{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_models_model_ip_library_file_proto_msgTypes[2]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*IPLibraryFile_City) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_models_model_ip_library_file_proto_msgTypes[2]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use IPLibraryFile_City.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*IPLibraryFile_City) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_models_model_ip_library_file_proto_rawDescGZIP(), []int{0, 1}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) GetCountryName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CountryName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) GetProvinceName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.ProvinceName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_City) GetCityName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CityName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type IPLibraryFile_Town struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	CountryName  string `protobuf:"bytes,1,opt,name=countryName,proto3" json:"countryName,omitempty"`
 | 
			
		||||
	ProvinceName string `protobuf:"bytes,2,opt,name=provinceName,proto3" json:"provinceName,omitempty"`
 | 
			
		||||
	CityName     string `protobuf:"bytes,3,opt,name=cityName,proto3" json:"cityName,omitempty"`
 | 
			
		||||
	TownName     string `protobuf:"bytes,4,opt,name=townName,proto3" json:"townName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) Reset() {
 | 
			
		||||
	*x = IPLibraryFile_Town{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_models_model_ip_library_file_proto_msgTypes[3]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*IPLibraryFile_Town) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_models_model_ip_library_file_proto_msgTypes[3]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use IPLibraryFile_Town.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*IPLibraryFile_Town) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_models_model_ip_library_file_proto_rawDescGZIP(), []int{0, 2}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) GetCountryName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CountryName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) GetProvinceName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.ProvinceName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) GetCityName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CityName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *IPLibraryFile_Town) GetTownName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.TownName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_models_model_ip_library_file_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_models_model_ip_library_file_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69,
 | 
			
		||||
	0x70, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x9a, 0x05, 0x0a, 0x0d, 0x49, 0x50, 0x4c,
 | 
			
		||||
	0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
 | 
			
		||||
	0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65,
 | 
			
		||||
	0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
 | 
			
		||||
	0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
 | 
			
		||||
	0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
 | 
			
		||||
	0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
 | 
			
		||||
	0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73,
 | 
			
		||||
	0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
 | 
			
		||||
	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x50, 0x4c,
 | 
			
		||||
	0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2e,
 | 
			
		||||
	0x0a, 0x06, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x06, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c,
 | 
			
		||||
	0x0a, 0x05, 0x74, 0x6f, 0x77, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x54, 0x6f, 0x77, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x77, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20,
 | 
			
		||||
	0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x73, 0x1a, 0x50, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x20,
 | 
			
		||||
	0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x68, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b,
 | 
			
		||||
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22,
 | 
			
		||||
	0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x84,
 | 
			
		||||
	0x01, 0x0a, 0x04, 0x54, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
	0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a,
 | 
			
		||||
	0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
	0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x77,
 | 
			
		||||
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x77,
 | 
			
		||||
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	file_models_model_ip_library_file_proto_rawDescOnce sync.Once
 | 
			
		||||
	file_models_model_ip_library_file_proto_rawDescData = file_models_model_ip_library_file_proto_rawDesc
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func file_models_model_ip_library_file_proto_rawDescGZIP() []byte {
 | 
			
		||||
	file_models_model_ip_library_file_proto_rawDescOnce.Do(func() {
 | 
			
		||||
		file_models_model_ip_library_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_ip_library_file_proto_rawDescData)
 | 
			
		||||
	})
 | 
			
		||||
	return file_models_model_ip_library_file_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_models_model_ip_library_file_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 | 
			
		||||
var file_models_model_ip_library_file_proto_goTypes = []interface{}{
 | 
			
		||||
	(*IPLibraryFile)(nil),          // 0: pb.IPLibraryFile
 | 
			
		||||
	(*IPLibraryFile_Province)(nil), // 1: pb.IPLibraryFile.Province
 | 
			
		||||
	(*IPLibraryFile_City)(nil),     // 2: pb.IPLibraryFile.City
 | 
			
		||||
	(*IPLibraryFile_Town)(nil),     // 3: pb.IPLibraryFile.Town
 | 
			
		||||
}
 | 
			
		||||
var file_models_model_ip_library_file_proto_depIdxs = []int32{
 | 
			
		||||
	1, // 0: pb.IPLibraryFile.provinces:type_name -> pb.IPLibraryFile.Province
 | 
			
		||||
	2, // 1: pb.IPLibraryFile.cities:type_name -> pb.IPLibraryFile.City
 | 
			
		||||
	3, // 2: pb.IPLibraryFile.towns:type_name -> pb.IPLibraryFile.Town
 | 
			
		||||
	3, // [3:3] is the sub-list for method output_type
 | 
			
		||||
	3, // [3:3] is the sub-list for method input_type
 | 
			
		||||
	3, // [3:3] is the sub-list for extension type_name
 | 
			
		||||
	3, // [3:3] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:3] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_models_model_ip_library_file_proto_init() }
 | 
			
		||||
func file_models_model_ip_library_file_proto_init() {
 | 
			
		||||
	if File_models_model_ip_library_file_proto != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_models_model_ip_library_file_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*IPLibraryFile); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_models_model_ip_library_file_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*IPLibraryFile_Province); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_models_model_ip_library_file_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*IPLibraryFile_City); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_models_model_ip_library_file_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*IPLibraryFile_Town); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
		File: protoimpl.DescBuilder{
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_models_model_ip_library_file_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   4,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   0,
 | 
			
		||||
		},
 | 
			
		||||
		GoTypes:           file_models_model_ip_library_file_proto_goTypes,
 | 
			
		||||
		DependencyIndexes: file_models_model_ip_library_file_proto_depIdxs,
 | 
			
		||||
		MessageInfos:      file_models_model_ip_library_file_proto_msgTypes,
 | 
			
		||||
	}.Build()
 | 
			
		||||
	File_models_model_ip_library_file_proto = out.File
 | 
			
		||||
	file_models_model_ip_library_file_proto_rawDesc = nil
 | 
			
		||||
	file_models_model_ip_library_file_proto_goTypes = nil
 | 
			
		||||
	file_models_model_ip_library_file_proto_depIdxs = nil
 | 
			
		||||
}
 | 
			
		||||
@@ -34,6 +34,9 @@ type RegionCity struct {
 | 
			
		||||
	Name             string          `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes            []string        `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	RegionProvinceId int64           `protobuf:"varint,4,opt,name=regionProvinceId,proto3" json:"regionProvinceId,omitempty"`
 | 
			
		||||
	CustomName       string          `protobuf:"bytes,5,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes      []string        `protobuf:"bytes,6,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
	DisplayName      string          `protobuf:"bytes,7,opt,name=displayName,proto3" json:"displayName,omitempty"`
 | 
			
		||||
	RegionProvince   *RegionProvince `protobuf:"bytes,30,opt,name=regionProvince,proto3" json:"regionProvince,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -97,6 +100,27 @@ func (x *RegionCity) GetRegionProvinceId() int64 {
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCity) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCity) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCity) GetDisplayName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.DisplayName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCity) GetRegionProvince() *RegionProvince {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvince
 | 
			
		||||
@@ -111,19 +135,25 @@ var file_models_model_region_city_proto_rawDesc = []byte{
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x12, 0x02, 0x70, 0x62, 0x1a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64,
 | 
			
		||||
	0x65, 0x6c, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
 | 
			
		||||
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x73, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a,
 | 
			
		||||
	0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18,
 | 
			
		||||
	0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
 | 
			
		||||
	0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a,
 | 
			
		||||
	0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
 | 
			
		||||
	0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12,
 | 
			
		||||
	0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x06, 0x5a,
 | 
			
		||||
	0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
@@ -30,10 +30,13 @@ type RegionCountry struct {
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id     int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name   string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes  []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	Pinyin []string `protobuf:"bytes,4,rep,name=pinyin,proto3" json:"pinyin,omitempty"`
 | 
			
		||||
	Id          int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name        string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes       []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	Pinyin      []string `protobuf:"bytes,4,rep,name=pinyin,proto3" json:"pinyin,omitempty"`
 | 
			
		||||
	CustomName  string   `protobuf:"bytes,5,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes []string `protobuf:"bytes,6,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
	DisplayName string   `protobuf:"bytes,7,opt,name=displayName,proto3" json:"displayName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCountry) Reset() {
 | 
			
		||||
@@ -96,19 +99,46 @@ func (x *RegionCountry) GetPinyin() []string {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCountry) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCountry) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionCountry) GetDisplayName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.DisplayName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_models_model_region_country_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_models_model_region_country_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x21, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x61, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
 | 
			
		||||
	0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64,
 | 
			
		||||
	0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f,
 | 
			
		||||
	0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
 | 
			
		||||
	0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f,
 | 
			
		||||
	0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x18, 0x04, 0x20,
 | 
			
		||||
	0x03, 0x28, 0x09, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
	0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
 | 
			
		||||
	0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a,
 | 
			
		||||
	0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x42,
 | 
			
		||||
	0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,12 @@ type RegionProvider struct {
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id    int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name  string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	Id          int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name        string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes       []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	CustomName  string   `protobuf:"bytes,4,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes []string `protobuf:"bytes,5,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
	DisplayName string   `protobuf:"bytes,6,opt,name=displayName,proto3" json:"displayName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvider) Reset() {
 | 
			
		||||
@@ -88,18 +91,45 @@ func (x *RegionProvider) GetCodes() []string {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvider) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvider) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvider) GetDisplayName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.DisplayName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_models_model_region_provider_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_models_model_region_provider_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14,
 | 
			
		||||
	0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69,
 | 
			
		||||
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
 | 
			
		||||
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
 | 
			
		||||
	0x63, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f,
 | 
			
		||||
	0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c,
 | 
			
		||||
	0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69,
 | 
			
		||||
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
 | 
			
		||||
	0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,13 @@ type RegionProvince struct {
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id    int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name  string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	Id              int64    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Name            string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Codes           []string `protobuf:"bytes,3,rep,name=codes,proto3" json:"codes,omitempty"`
 | 
			
		||||
	RegionCountryId int64    `protobuf:"varint,4,opt,name=regionCountryId,proto3" json:"regionCountryId,omitempty"`
 | 
			
		||||
	CustomName      string   `protobuf:"bytes,5,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes     []string `protobuf:"bytes,6,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
	DisplayName     string   `protobuf:"bytes,7,opt,name=displayName,proto3" json:"displayName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvince) Reset() {
 | 
			
		||||
@@ -88,18 +92,55 @@ func (x *RegionProvince) GetCodes() []string {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvince) GetRegionCountryId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountryId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvince) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvince) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *RegionProvince) GetDisplayName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.DisplayName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_models_model_region_province_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_models_model_region_province_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x2e, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14,
 | 
			
		||||
	0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
 | 
			
		||||
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
 | 
			
		||||
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
 | 
			
		||||
	0x63, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
 | 
			
		||||
	0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12,
 | 
			
		||||
	0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12,
 | 
			
		||||
	0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06,
 | 
			
		||||
	0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1935
									
								
								pkg/rpc/pb/service_ip_library_file.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1935
									
								
								pkg/rpc/pb/service_ip_library_file.pb.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -219,49 +219,464 @@ func (x *FindEnabledRegionCityResponse) GetRegionCity() *RegionCity {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有城市
 | 
			
		||||
type FindAllRegionCitiesRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	IncludeRegionProvince bool `protobuf:"varint,1,opt,name=includeRegionProvince,proto3" json:"includeRegionProvince,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesRequest) Reset() {
 | 
			
		||||
	*x = FindAllRegionCitiesRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[4]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCitiesRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[4]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCitiesRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCitiesRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{4}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesRequest) GetIncludeRegionProvince() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.IncludeRegionProvince
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindAllRegionCitiesResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCities []*RegionCity `protobuf:"bytes,1,rep,name=regionCities,proto3" json:"regionCities,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesResponse) Reset() {
 | 
			
		||||
	*x = FindAllRegionCitiesResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[5]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCitiesResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[5]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCitiesResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCitiesResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{5}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesResponse) GetRegionCities() []*RegionCity {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCities
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找某个省份的所有城市
 | 
			
		||||
type FindAllRegionCitiesWithRegionProvinceIdRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvinceId int64 `protobuf:"varint,1,opt,name=regionProvinceId,proto3" json:"regionProvinceId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdRequest) Reset() {
 | 
			
		||||
	*x = FindAllRegionCitiesWithRegionProvinceIdRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[6]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCitiesWithRegionProvinceIdRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[6]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCitiesWithRegionProvinceIdRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCitiesWithRegionProvinceIdRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{6}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdRequest) GetRegionProvinceId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvinceId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindAllRegionCitiesWithRegionProvinceIdResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCities []*RegionCity `protobuf:"bytes,1,rep,name=regionCities,proto3" json:"regionCities,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdResponse) Reset() {
 | 
			
		||||
	*x = FindAllRegionCitiesWithRegionProvinceIdResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[7]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCitiesWithRegionProvinceIdResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[7]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCitiesWithRegionProvinceIdResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCitiesWithRegionProvinceIdResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{7}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCitiesWithRegionProvinceIdResponse) GetRegionCities() []*RegionCity {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCities
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个城市信息
 | 
			
		||||
type FindRegionCityRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCityId int64 `protobuf:"varint,1,opt,name=regionCityId,proto3" json:"regionCityId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityRequest) Reset() {
 | 
			
		||||
	*x = FindRegionCityRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[8]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionCityRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[8]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionCityRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionCityRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{8}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityRequest) GetRegionCityId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCityId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindRegionCityResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCity *RegionCity `protobuf:"bytes,1,opt,name=regionCity,proto3" json:"regionCity,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityResponse) Reset() {
 | 
			
		||||
	*x = FindRegionCityResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[9]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionCityResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[9]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionCityResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionCityResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{9}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCityResponse) GetRegionCity() *RegionCity {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCity
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改城市定制信息
 | 
			
		||||
type UpdateRegionCityCustomRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCityId int64    `protobuf:"varint,1,opt,name=regionCityId,proto3" json:"regionCityId,omitempty"`
 | 
			
		||||
	CustomName   string   `protobuf:"bytes,2,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes  []string `protobuf:"bytes,3,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) Reset() {
 | 
			
		||||
	*x = UpdateRegionCityCustomRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_city_proto_msgTypes[10]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateRegionCityCustomRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_city_proto_msgTypes[10]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateRegionCityCustomRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateRegionCityCustomRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_city_proto_rawDescGZIP(), []int{10}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) GetRegionCityId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCityId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCityCustomRequest) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_service_region_city_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_service_region_city_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x19, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x5f, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a,
 | 
			
		||||
	0x1e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
 | 
			
		||||
	0x59, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x22, 0x46, 0x69,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
 | 
			
		||||
	0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73,
 | 
			
		||||
	0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x21, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x12, 0x32, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x69, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
 | 
			
		||||
	0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15,
 | 
			
		||||
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74,
 | 
			
		||||
	0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x32, 0xde, 0x01, 0x0a, 0x11, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
 | 
			
		||||
	0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15,
 | 
			
		||||
	0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45,
 | 
			
		||||
	0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0c, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74,
 | 
			
		||||
	0x79, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22,
 | 
			
		||||
	0x42, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
 | 
			
		||||
	0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74,
 | 
			
		||||
	0x79, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c,
 | 
			
		||||
	0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x69, 0x74, 0x79, 0x22, 0x52, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x08, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x51, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69,
 | 
			
		||||
	0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a,
 | 
			
		||||
	0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49,
 | 
			
		||||
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x2f, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
 | 
			
		||||
	0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0c,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
 | 
			
		||||
	0x22, 0x3b, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
 | 
			
		||||
	0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x48, 0x0a,
 | 
			
		||||
	0x16, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x22, 0x85, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61,
 | 
			
		||||
	0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
 | 
			
		||||
	0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a,
 | 
			
		||||
	0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
 | 
			
		||||
	0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x32,
 | 
			
		||||
	0xeb, 0x04, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x53, 0x65,
 | 
			
		||||
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x70, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74,
 | 
			
		||||
	0x69, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74,
 | 
			
		||||
	0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x45,
 | 
			
		||||
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
 | 
			
		||||
	0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f,
 | 
			
		||||
	0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x56, 0x0a, 0x13, 0x66, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65,
 | 
			
		||||
	0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x27, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x32,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79,
 | 
			
		||||
	0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a,
 | 
			
		||||
	0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -276,26 +691,45 @@ func file_service_region_city_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_region_city_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_region_city_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 | 
			
		||||
var file_service_region_city_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
 | 
			
		||||
var file_service_region_city_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindAllEnabledRegionCitiesRequest)(nil),  // 0: pb.FindAllEnabledRegionCitiesRequest
 | 
			
		||||
	(*FindAllEnabledRegionCitiesResponse)(nil), // 1: pb.FindAllEnabledRegionCitiesResponse
 | 
			
		||||
	(*FindEnabledRegionCityRequest)(nil),       // 2: pb.FindEnabledRegionCityRequest
 | 
			
		||||
	(*FindEnabledRegionCityResponse)(nil),      // 3: pb.FindEnabledRegionCityResponse
 | 
			
		||||
	(*RegionCity)(nil),                         // 4: pb.RegionCity
 | 
			
		||||
	(*FindAllEnabledRegionCitiesRequest)(nil),               // 0: pb.FindAllEnabledRegionCitiesRequest
 | 
			
		||||
	(*FindAllEnabledRegionCitiesResponse)(nil),              // 1: pb.FindAllEnabledRegionCitiesResponse
 | 
			
		||||
	(*FindEnabledRegionCityRequest)(nil),                    // 2: pb.FindEnabledRegionCityRequest
 | 
			
		||||
	(*FindEnabledRegionCityResponse)(nil),                   // 3: pb.FindEnabledRegionCityResponse
 | 
			
		||||
	(*FindAllRegionCitiesRequest)(nil),                      // 4: pb.FindAllRegionCitiesRequest
 | 
			
		||||
	(*FindAllRegionCitiesResponse)(nil),                     // 5: pb.FindAllRegionCitiesResponse
 | 
			
		||||
	(*FindAllRegionCitiesWithRegionProvinceIdRequest)(nil),  // 6: pb.FindAllRegionCitiesWithRegionProvinceIdRequest
 | 
			
		||||
	(*FindAllRegionCitiesWithRegionProvinceIdResponse)(nil), // 7: pb.FindAllRegionCitiesWithRegionProvinceIdResponse
 | 
			
		||||
	(*FindRegionCityRequest)(nil),                           // 8: pb.FindRegionCityRequest
 | 
			
		||||
	(*FindRegionCityResponse)(nil),                          // 9: pb.FindRegionCityResponse
 | 
			
		||||
	(*UpdateRegionCityCustomRequest)(nil),                   // 10: pb.UpdateRegionCityCustomRequest
 | 
			
		||||
	(*RegionCity)(nil),                                      // 11: pb.RegionCity
 | 
			
		||||
	(*RPCSuccess)(nil),                                      // 12: pb.RPCSuccess
 | 
			
		||||
}
 | 
			
		||||
var file_service_region_city_proto_depIdxs = []int32{
 | 
			
		||||
	4, // 0: pb.FindAllEnabledRegionCitiesResponse.regionCities:type_name -> pb.RegionCity
 | 
			
		||||
	4, // 1: pb.FindEnabledRegionCityResponse.regionCity:type_name -> pb.RegionCity
 | 
			
		||||
	0, // 2: pb.RegionCityService.findAllEnabledRegionCities:input_type -> pb.FindAllEnabledRegionCitiesRequest
 | 
			
		||||
	2, // 3: pb.RegionCityService.findEnabledRegionCity:input_type -> pb.FindEnabledRegionCityRequest
 | 
			
		||||
	1, // 4: pb.RegionCityService.findAllEnabledRegionCities:output_type -> pb.FindAllEnabledRegionCitiesResponse
 | 
			
		||||
	3, // 5: pb.RegionCityService.findEnabledRegionCity:output_type -> pb.FindEnabledRegionCityResponse
 | 
			
		||||
	4, // [4:6] is the sub-list for method output_type
 | 
			
		||||
	2, // [2:4] is the sub-list for method input_type
 | 
			
		||||
	2, // [2:2] is the sub-list for extension type_name
 | 
			
		||||
	2, // [2:2] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:2] is the sub-list for field type_name
 | 
			
		||||
	11, // 0: pb.FindAllEnabledRegionCitiesResponse.regionCities:type_name -> pb.RegionCity
 | 
			
		||||
	11, // 1: pb.FindEnabledRegionCityResponse.regionCity:type_name -> pb.RegionCity
 | 
			
		||||
	11, // 2: pb.FindAllRegionCitiesResponse.regionCities:type_name -> pb.RegionCity
 | 
			
		||||
	11, // 3: pb.FindAllRegionCitiesWithRegionProvinceIdResponse.regionCities:type_name -> pb.RegionCity
 | 
			
		||||
	11, // 4: pb.FindRegionCityResponse.regionCity:type_name -> pb.RegionCity
 | 
			
		||||
	0,  // 5: pb.RegionCityService.findAllEnabledRegionCities:input_type -> pb.FindAllEnabledRegionCitiesRequest
 | 
			
		||||
	2,  // 6: pb.RegionCityService.findEnabledRegionCity:input_type -> pb.FindEnabledRegionCityRequest
 | 
			
		||||
	4,  // 7: pb.RegionCityService.findAllRegionCities:input_type -> pb.FindAllRegionCitiesRequest
 | 
			
		||||
	6,  // 8: pb.RegionCityService.findAllRegionCitiesWithRegionProvinceId:input_type -> pb.FindAllRegionCitiesWithRegionProvinceIdRequest
 | 
			
		||||
	8,  // 9: pb.RegionCityService.findRegionCity:input_type -> pb.FindRegionCityRequest
 | 
			
		||||
	10, // 10: pb.RegionCityService.updateRegionCityCustom:input_type -> pb.UpdateRegionCityCustomRequest
 | 
			
		||||
	1,  // 11: pb.RegionCityService.findAllEnabledRegionCities:output_type -> pb.FindAllEnabledRegionCitiesResponse
 | 
			
		||||
	3,  // 12: pb.RegionCityService.findEnabledRegionCity:output_type -> pb.FindEnabledRegionCityResponse
 | 
			
		||||
	5,  // 13: pb.RegionCityService.findAllRegionCities:output_type -> pb.FindAllRegionCitiesResponse
 | 
			
		||||
	7,  // 14: pb.RegionCityService.findAllRegionCitiesWithRegionProvinceId:output_type -> pb.FindAllRegionCitiesWithRegionProvinceIdResponse
 | 
			
		||||
	9,  // 15: pb.RegionCityService.findRegionCity:output_type -> pb.FindRegionCityResponse
 | 
			
		||||
	12, // 16: pb.RegionCityService.updateRegionCityCustom:output_type -> pb.RPCSuccess
 | 
			
		||||
	11, // [11:17] is the sub-list for method output_type
 | 
			
		||||
	5,  // [5:11] is the sub-list for method input_type
 | 
			
		||||
	5,  // [5:5] is the sub-list for extension type_name
 | 
			
		||||
	5,  // [5:5] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:5] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_service_region_city_proto_init() }
 | 
			
		||||
@@ -304,6 +738,7 @@ func file_service_region_city_proto_init() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_models_model_region_city_proto_init()
 | 
			
		||||
	file_models_rpc_messages_proto_init()
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_service_region_city_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllEnabledRegionCitiesRequest); i {
 | 
			
		||||
@@ -353,6 +788,90 @@ func file_service_region_city_proto_init() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCitiesRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCitiesResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCitiesWithRegionProvinceIdRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCitiesWithRegionProvinceIdResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionCityRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionCityResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_city_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateRegionCityCustomRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
@@ -360,7 +879,7 @@ func file_service_region_city_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_region_city_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   4,
 | 
			
		||||
			NumMessages:   11,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -386,10 +905,20 @@ const _ = grpc.SupportPackageIsVersion6
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 | 
			
		||||
type RegionCityServiceClient interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	FindAllEnabledRegionCities(ctx context.Context, in *FindAllEnabledRegionCitiesRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionCitiesResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	FindEnabledRegionCity(ctx context.Context, in *FindEnabledRegionCityRequest, opts ...grpc.CallOption) (*FindEnabledRegionCityResponse, error)
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	FindAllRegionCities(ctx context.Context, in *FindAllRegionCitiesRequest, opts ...grpc.CallOption) (*FindAllRegionCitiesResponse, error)
 | 
			
		||||
	// 查找某个省份的所有城市
 | 
			
		||||
	FindAllRegionCitiesWithRegionProvinceId(ctx context.Context, in *FindAllRegionCitiesWithRegionProvinceIdRequest, opts ...grpc.CallOption) (*FindAllRegionCitiesWithRegionProvinceIdResponse, error)
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	FindRegionCity(ctx context.Context, in *FindRegionCityRequest, opts ...grpc.CallOption) (*FindRegionCityResponse, error)
 | 
			
		||||
	// 修改城市定制信息
 | 
			
		||||
	UpdateRegionCityCustom(ctx context.Context, in *UpdateRegionCityCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type regionCityServiceClient struct {
 | 
			
		||||
@@ -400,6 +929,7 @@ func NewRegionCityServiceClient(cc grpc.ClientConnInterface) RegionCityServiceCl
 | 
			
		||||
	return ®ionCityServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionCityServiceClient) FindAllEnabledRegionCities(ctx context.Context, in *FindAllEnabledRegionCitiesRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionCitiesResponse, error) {
 | 
			
		||||
	out := new(FindAllEnabledRegionCitiesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/findAllEnabledRegionCities", in, out, opts...)
 | 
			
		||||
@@ -409,6 +939,7 @@ func (c *regionCityServiceClient) FindAllEnabledRegionCities(ctx context.Context
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionCityServiceClient) FindEnabledRegionCity(ctx context.Context, in *FindEnabledRegionCityRequest, opts ...grpc.CallOption) (*FindEnabledRegionCityResponse, error) {
 | 
			
		||||
	out := new(FindEnabledRegionCityResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/findEnabledRegionCity", in, out, opts...)
 | 
			
		||||
@@ -418,12 +949,58 @@ func (c *regionCityServiceClient) FindEnabledRegionCity(ctx context.Context, in
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCityServiceClient) FindAllRegionCities(ctx context.Context, in *FindAllRegionCitiesRequest, opts ...grpc.CallOption) (*FindAllRegionCitiesResponse, error) {
 | 
			
		||||
	out := new(FindAllRegionCitiesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/findAllRegionCities", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCityServiceClient) FindAllRegionCitiesWithRegionProvinceId(ctx context.Context, in *FindAllRegionCitiesWithRegionProvinceIdRequest, opts ...grpc.CallOption) (*FindAllRegionCitiesWithRegionProvinceIdResponse, error) {
 | 
			
		||||
	out := new(FindAllRegionCitiesWithRegionProvinceIdResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/findAllRegionCitiesWithRegionProvinceId", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCityServiceClient) FindRegionCity(ctx context.Context, in *FindRegionCityRequest, opts ...grpc.CallOption) (*FindRegionCityResponse, error) {
 | 
			
		||||
	out := new(FindRegionCityResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/findRegionCity", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCityServiceClient) UpdateRegionCityCustom(ctx context.Context, in *UpdateRegionCityCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCityService/updateRegionCityCustom", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegionCityServiceServer is the server API for RegionCityService service.
 | 
			
		||||
type RegionCityServiceServer interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	FindAllEnabledRegionCities(context.Context, *FindAllEnabledRegionCitiesRequest) (*FindAllEnabledRegionCitiesResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	FindEnabledRegionCity(context.Context, *FindEnabledRegionCityRequest) (*FindEnabledRegionCityResponse, error)
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	FindAllRegionCities(context.Context, *FindAllRegionCitiesRequest) (*FindAllRegionCitiesResponse, error)
 | 
			
		||||
	// 查找某个省份的所有城市
 | 
			
		||||
	FindAllRegionCitiesWithRegionProvinceId(context.Context, *FindAllRegionCitiesWithRegionProvinceIdRequest) (*FindAllRegionCitiesWithRegionProvinceIdResponse, error)
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	FindRegionCity(context.Context, *FindRegionCityRequest) (*FindRegionCityResponse, error)
 | 
			
		||||
	// 修改城市定制信息
 | 
			
		||||
	UpdateRegionCityCustom(context.Context, *UpdateRegionCityCustomRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedRegionCityServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -436,6 +1013,18 @@ func (*UnimplementedRegionCityServiceServer) FindAllEnabledRegionCities(context.
 | 
			
		||||
func (*UnimplementedRegionCityServiceServer) FindEnabledRegionCity(context.Context, *FindEnabledRegionCityRequest) (*FindEnabledRegionCityResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindEnabledRegionCity not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCityServiceServer) FindAllRegionCities(context.Context, *FindAllRegionCitiesRequest) (*FindAllRegionCitiesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindAllRegionCities not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCityServiceServer) FindAllRegionCitiesWithRegionProvinceId(context.Context, *FindAllRegionCitiesWithRegionProvinceIdRequest) (*FindAllRegionCitiesWithRegionProvinceIdResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindAllRegionCitiesWithRegionProvinceId not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCityServiceServer) FindRegionCity(context.Context, *FindRegionCityRequest) (*FindRegionCityResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindRegionCity not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCityServiceServer) UpdateRegionCityCustom(context.Context, *UpdateRegionCityCustomRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRegionCityCustom not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterRegionCityServiceServer(s *grpc.Server, srv RegionCityServiceServer) {
 | 
			
		||||
	s.RegisterService(&_RegionCityService_serviceDesc, srv)
 | 
			
		||||
@@ -477,6 +1066,78 @@ func _RegionCityService_FindEnabledRegionCity_Handler(srv interface{}, ctx conte
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCityService_FindAllRegionCities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindAllRegionCitiesRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindAllRegionCities(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCityService/FindAllRegionCities",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindAllRegionCities(ctx, req.(*FindAllRegionCitiesRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCityService_FindAllRegionCitiesWithRegionProvinceId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindAllRegionCitiesWithRegionProvinceIdRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindAllRegionCitiesWithRegionProvinceId(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCityService/FindAllRegionCitiesWithRegionProvinceId",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindAllRegionCitiesWithRegionProvinceId(ctx, req.(*FindAllRegionCitiesWithRegionProvinceIdRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCityService_FindRegionCity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindRegionCityRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindRegionCity(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCityService/FindRegionCity",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCityServiceServer).FindRegionCity(ctx, req.(*FindRegionCityRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCityService_UpdateRegionCityCustom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateRegionCityCustomRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCityServiceServer).UpdateRegionCityCustom(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCityService/UpdateRegionCityCustom",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCityServiceServer).UpdateRegionCityCustom(ctx, req.(*UpdateRegionCityCustomRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _RegionCityService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.RegionCityService",
 | 
			
		||||
	HandlerType: (*RegionCityServiceServer)(nil),
 | 
			
		||||
@@ -489,6 +1150,22 @@ var _RegionCityService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "findEnabledRegionCity",
 | 
			
		||||
			Handler:    _RegionCityService_FindEnabledRegionCity_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findAllRegionCities",
 | 
			
		||||
			Handler:    _RegionCityService_FindAllRegionCities_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findAllRegionCitiesWithRegionProvinceId",
 | 
			
		||||
			Handler:    _RegionCityService_FindAllRegionCitiesWithRegionProvinceId_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findRegionCity",
 | 
			
		||||
			Handler:    _RegionCityService_FindRegionCity_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateRegionCityCustom",
 | 
			
		||||
			Handler:    _RegionCityService_UpdateRegionCityCustom_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_region_city.proto",
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ const (
 | 
			
		||||
// of the legacy proto package is being used.
 | 
			
		||||
const _ = proto.ProtoPackageIsVersion4
 | 
			
		||||
 | 
			
		||||
// 查找所有的国家列表
 | 
			
		||||
// 查找所有的国家/地区列表
 | 
			
		||||
type FindAllEnabledRegionCountriesRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
@@ -115,7 +115,7 @@ func (x *FindAllEnabledRegionCountriesResponse) GetRegionCountries() []*RegionCo
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个国家信息
 | 
			
		||||
// 查找单个国家/地区信息
 | 
			
		||||
type FindEnabledRegionCountryRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
@@ -210,6 +210,251 @@ func (x *FindEnabledRegionCountryResponse) GetRegionCountry() *RegionCountry {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有的国家/地区列表
 | 
			
		||||
type FindAllRegionCountriesRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesRequest) Reset() {
 | 
			
		||||
	*x = FindAllRegionCountriesRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_country_proto_msgTypes[4]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCountriesRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_country_proto_msgTypes[4]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCountriesRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCountriesRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_country_proto_rawDescGZIP(), []int{4}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindAllRegionCountriesResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCountries []*RegionCountry `protobuf:"bytes,1,rep,name=regionCountries,proto3" json:"regionCountries,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesResponse) Reset() {
 | 
			
		||||
	*x = FindAllRegionCountriesResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_country_proto_msgTypes[5]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionCountriesResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_country_proto_msgTypes[5]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionCountriesResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionCountriesResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_country_proto_rawDescGZIP(), []int{5}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionCountriesResponse) GetRegionCountries() []*RegionCountry {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountries
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个国家/地区信息
 | 
			
		||||
type FindRegionCountryRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCountryId int64 `protobuf:"varint,1,opt,name=regionCountryId,proto3" json:"regionCountryId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryRequest) Reset() {
 | 
			
		||||
	*x = FindRegionCountryRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_country_proto_msgTypes[6]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionCountryRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_country_proto_msgTypes[6]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionCountryRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionCountryRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_country_proto_rawDescGZIP(), []int{6}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryRequest) GetRegionCountryId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountryId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindRegionCountryResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCountry *RegionCountry `protobuf:"bytes,1,opt,name=regionCountry,proto3" json:"regionCountry,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryResponse) Reset() {
 | 
			
		||||
	*x = FindRegionCountryResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_country_proto_msgTypes[7]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionCountryResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_country_proto_msgTypes[7]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionCountryResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionCountryResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_country_proto_rawDescGZIP(), []int{7}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionCountryResponse) GetRegionCountry() *RegionCountry {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountry
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改国家/地区定制信息
 | 
			
		||||
type UpdateRegionCountryCustomRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCountryId int64    `protobuf:"varint,1,opt,name=regionCountryId,proto3" json:"regionCountryId,omitempty"`
 | 
			
		||||
	CustomName      string   `protobuf:"bytes,2,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes     []string `protobuf:"bytes,3,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) Reset() {
 | 
			
		||||
	*x = UpdateRegionCountryCustomRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_country_proto_msgTypes[8]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateRegionCountryCustomRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_country_proto_msgTypes[8]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateRegionCountryCustomRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateRegionCountryCustomRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_country_proto_rawDescGZIP(), []int{8}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) GetRegionCountryId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountryId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionCountryCustomRequest) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_service_region_country_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_service_region_country_proto_rawDesc = []byte{
 | 
			
		||||
@@ -217,43 +462,88 @@ var file_service_region_country_proto_rawDesc = []byte{
 | 
			
		||||
	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02,
 | 
			
		||||
	0x70, 0x62, 0x1a, 0x21, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
 | 
			
		||||
	0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x2e,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75,
 | 
			
		||||
	0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a,
 | 
			
		||||
	0x25, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70,
 | 
			
		||||
	0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x22, 0x26, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c,
 | 
			
		||||
	0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x12, 0x3b, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x4b,
 | 
			
		||||
	0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x20, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
 | 
			
		||||
	0x37, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69,
 | 
			
		||||
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x1e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
 | 
			
		||||
	0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
 | 
			
		||||
	0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x22, 0x54,
 | 
			
		||||
	0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
 | 
			
		||||
	0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75,
 | 
			
		||||
	0x6e, 0x74, 0x72, 0x79, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
 | 
			
		||||
	0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64,
 | 
			
		||||
	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
 | 
			
		||||
	0x43, 0x6f, 0x64, 0x65, 0x73, 0x32, 0x83, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x79,
 | 
			
		||||
	0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12,
 | 
			
		||||
	0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69,
 | 
			
		||||
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6a, 0x0a, 0x18, 0x66, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45,
 | 
			
		||||
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
 | 
			
		||||
	0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12,
 | 
			
		||||
	0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
 | 
			
		||||
	0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
 | 
			
		||||
	0x69, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c,
 | 
			
		||||
	0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
 | 
			
		||||
	0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64,
 | 
			
		||||
	0x22, 0x5b, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x32, 0xf3, 0x01,
 | 
			
		||||
	0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53,
 | 
			
		||||
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e,
 | 
			
		||||
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18,
 | 
			
		||||
	0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
 | 
			
		||||
	0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x74, 0x6f, 0x33,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
 | 
			
		||||
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61,
 | 
			
		||||
	0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x75,
 | 
			
		||||
	0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e,
 | 
			
		||||
	0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -268,26 +558,40 @@ func file_service_region_country_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_region_country_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_region_country_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 | 
			
		||||
var file_service_region_country_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 | 
			
		||||
var file_service_region_country_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindAllEnabledRegionCountriesRequest)(nil),  // 0: pb.FindAllEnabledRegionCountriesRequest
 | 
			
		||||
	(*FindAllEnabledRegionCountriesResponse)(nil), // 1: pb.FindAllEnabledRegionCountriesResponse
 | 
			
		||||
	(*FindEnabledRegionCountryRequest)(nil),       // 2: pb.FindEnabledRegionCountryRequest
 | 
			
		||||
	(*FindEnabledRegionCountryResponse)(nil),      // 3: pb.FindEnabledRegionCountryResponse
 | 
			
		||||
	(*RegionCountry)(nil),                         // 4: pb.RegionCountry
 | 
			
		||||
	(*FindAllRegionCountriesRequest)(nil),         // 4: pb.FindAllRegionCountriesRequest
 | 
			
		||||
	(*FindAllRegionCountriesResponse)(nil),        // 5: pb.FindAllRegionCountriesResponse
 | 
			
		||||
	(*FindRegionCountryRequest)(nil),              // 6: pb.FindRegionCountryRequest
 | 
			
		||||
	(*FindRegionCountryResponse)(nil),             // 7: pb.FindRegionCountryResponse
 | 
			
		||||
	(*UpdateRegionCountryCustomRequest)(nil),      // 8: pb.UpdateRegionCountryCustomRequest
 | 
			
		||||
	(*RegionCountry)(nil),                         // 9: pb.RegionCountry
 | 
			
		||||
	(*RPCSuccess)(nil),                            // 10: pb.RPCSuccess
 | 
			
		||||
}
 | 
			
		||||
var file_service_region_country_proto_depIdxs = []int32{
 | 
			
		||||
	4, // 0: pb.FindAllEnabledRegionCountriesResponse.regionCountries:type_name -> pb.RegionCountry
 | 
			
		||||
	4, // 1: pb.FindEnabledRegionCountryResponse.regionCountry:type_name -> pb.RegionCountry
 | 
			
		||||
	0, // 2: pb.RegionCountryService.findAllEnabledRegionCountries:input_type -> pb.FindAllEnabledRegionCountriesRequest
 | 
			
		||||
	2, // 3: pb.RegionCountryService.findEnabledRegionCountry:input_type -> pb.FindEnabledRegionCountryRequest
 | 
			
		||||
	1, // 4: pb.RegionCountryService.findAllEnabledRegionCountries:output_type -> pb.FindAllEnabledRegionCountriesResponse
 | 
			
		||||
	3, // 5: pb.RegionCountryService.findEnabledRegionCountry:output_type -> pb.FindEnabledRegionCountryResponse
 | 
			
		||||
	4, // [4:6] is the sub-list for method output_type
 | 
			
		||||
	2, // [2:4] is the sub-list for method input_type
 | 
			
		||||
	2, // [2:2] is the sub-list for extension type_name
 | 
			
		||||
	2, // [2:2] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:2] is the sub-list for field type_name
 | 
			
		||||
	9,  // 0: pb.FindAllEnabledRegionCountriesResponse.regionCountries:type_name -> pb.RegionCountry
 | 
			
		||||
	9,  // 1: pb.FindEnabledRegionCountryResponse.regionCountry:type_name -> pb.RegionCountry
 | 
			
		||||
	9,  // 2: pb.FindAllRegionCountriesResponse.regionCountries:type_name -> pb.RegionCountry
 | 
			
		||||
	9,  // 3: pb.FindRegionCountryResponse.regionCountry:type_name -> pb.RegionCountry
 | 
			
		||||
	0,  // 4: pb.RegionCountryService.findAllEnabledRegionCountries:input_type -> pb.FindAllEnabledRegionCountriesRequest
 | 
			
		||||
	2,  // 5: pb.RegionCountryService.findEnabledRegionCountry:input_type -> pb.FindEnabledRegionCountryRequest
 | 
			
		||||
	4,  // 6: pb.RegionCountryService.findAllRegionCountries:input_type -> pb.FindAllRegionCountriesRequest
 | 
			
		||||
	6,  // 7: pb.RegionCountryService.findRegionCountry:input_type -> pb.FindRegionCountryRequest
 | 
			
		||||
	8,  // 8: pb.RegionCountryService.updateRegionCountryCustom:input_type -> pb.UpdateRegionCountryCustomRequest
 | 
			
		||||
	1,  // 9: pb.RegionCountryService.findAllEnabledRegionCountries:output_type -> pb.FindAllEnabledRegionCountriesResponse
 | 
			
		||||
	3,  // 10: pb.RegionCountryService.findEnabledRegionCountry:output_type -> pb.FindEnabledRegionCountryResponse
 | 
			
		||||
	5,  // 11: pb.RegionCountryService.findAllRegionCountries:output_type -> pb.FindAllRegionCountriesResponse
 | 
			
		||||
	7,  // 12: pb.RegionCountryService.findRegionCountry:output_type -> pb.FindRegionCountryResponse
 | 
			
		||||
	10, // 13: pb.RegionCountryService.updateRegionCountryCustom:output_type -> pb.RPCSuccess
 | 
			
		||||
	9,  // [9:14] is the sub-list for method output_type
 | 
			
		||||
	4,  // [4:9] is the sub-list for method input_type
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension type_name
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:4] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_service_region_country_proto_init() }
 | 
			
		||||
@@ -296,6 +600,7 @@ func file_service_region_country_proto_init() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_models_model_region_country_proto_init()
 | 
			
		||||
	file_models_rpc_messages_proto_init()
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_service_region_country_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllEnabledRegionCountriesRequest); i {
 | 
			
		||||
@@ -345,6 +650,66 @@ func file_service_region_country_proto_init() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_country_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCountriesRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_country_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionCountriesResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_country_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionCountryRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_country_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionCountryResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_country_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateRegionCountryCustomRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
@@ -352,7 +717,7 @@ func file_service_region_country_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_region_country_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   4,
 | 
			
		||||
			NumMessages:   9,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -378,10 +743,18 @@ const _ = grpc.SupportPackageIsVersion6
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 | 
			
		||||
type RegionCountryServiceClient interface {
 | 
			
		||||
	// 查找所有的国家列表
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	FindAllEnabledRegionCountries(ctx context.Context, in *FindAllEnabledRegionCountriesRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionCountriesResponse, error)
 | 
			
		||||
	// 查找单个国家信息
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	FindEnabledRegionCountry(ctx context.Context, in *FindEnabledRegionCountryRequest, opts ...grpc.CallOption) (*FindEnabledRegionCountryResponse, error)
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	FindAllRegionCountries(ctx context.Context, in *FindAllRegionCountriesRequest, opts ...grpc.CallOption) (*FindAllRegionCountriesResponse, error)
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	FindRegionCountry(ctx context.Context, in *FindRegionCountryRequest, opts ...grpc.CallOption) (*FindRegionCountryResponse, error)
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	UpdateRegionCountryCustom(ctx context.Context, in *UpdateRegionCountryCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type regionCountryServiceClient struct {
 | 
			
		||||
@@ -392,6 +765,7 @@ func NewRegionCountryServiceClient(cc grpc.ClientConnInterface) RegionCountrySer
 | 
			
		||||
	return ®ionCountryServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionCountryServiceClient) FindAllEnabledRegionCountries(ctx context.Context, in *FindAllEnabledRegionCountriesRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionCountriesResponse, error) {
 | 
			
		||||
	out := new(FindAllEnabledRegionCountriesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCountryService/findAllEnabledRegionCountries", in, out, opts...)
 | 
			
		||||
@@ -401,6 +775,7 @@ func (c *regionCountryServiceClient) FindAllEnabledRegionCountries(ctx context.C
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionCountryServiceClient) FindEnabledRegionCountry(ctx context.Context, in *FindEnabledRegionCountryRequest, opts ...grpc.CallOption) (*FindEnabledRegionCountryResponse, error) {
 | 
			
		||||
	out := new(FindEnabledRegionCountryResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCountryService/findEnabledRegionCountry", in, out, opts...)
 | 
			
		||||
@@ -410,12 +785,47 @@ func (c *regionCountryServiceClient) FindEnabledRegionCountry(ctx context.Contex
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCountryServiceClient) FindAllRegionCountries(ctx context.Context, in *FindAllRegionCountriesRequest, opts ...grpc.CallOption) (*FindAllRegionCountriesResponse, error) {
 | 
			
		||||
	out := new(FindAllRegionCountriesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCountryService/findAllRegionCountries", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCountryServiceClient) FindRegionCountry(ctx context.Context, in *FindRegionCountryRequest, opts ...grpc.CallOption) (*FindRegionCountryResponse, error) {
 | 
			
		||||
	out := new(FindRegionCountryResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCountryService/findRegionCountry", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionCountryServiceClient) UpdateRegionCountryCustom(ctx context.Context, in *UpdateRegionCountryCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionCountryService/updateRegionCountryCustom", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegionCountryServiceServer is the server API for RegionCountryService service.
 | 
			
		||||
type RegionCountryServiceServer interface {
 | 
			
		||||
	// 查找所有的国家列表
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	FindAllEnabledRegionCountries(context.Context, *FindAllEnabledRegionCountriesRequest) (*FindAllEnabledRegionCountriesResponse, error)
 | 
			
		||||
	// 查找单个国家信息
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	FindEnabledRegionCountry(context.Context, *FindEnabledRegionCountryRequest) (*FindEnabledRegionCountryResponse, error)
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	FindAllRegionCountries(context.Context, *FindAllRegionCountriesRequest) (*FindAllRegionCountriesResponse, error)
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	FindRegionCountry(context.Context, *FindRegionCountryRequest) (*FindRegionCountryResponse, error)
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	UpdateRegionCountryCustom(context.Context, *UpdateRegionCountryCustomRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedRegionCountryServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -428,6 +838,15 @@ func (*UnimplementedRegionCountryServiceServer) FindAllEnabledRegionCountries(co
 | 
			
		||||
func (*UnimplementedRegionCountryServiceServer) FindEnabledRegionCountry(context.Context, *FindEnabledRegionCountryRequest) (*FindEnabledRegionCountryResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindEnabledRegionCountry not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCountryServiceServer) FindAllRegionCountries(context.Context, *FindAllRegionCountriesRequest) (*FindAllRegionCountriesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindAllRegionCountries not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCountryServiceServer) FindRegionCountry(context.Context, *FindRegionCountryRequest) (*FindRegionCountryResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindRegionCountry not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionCountryServiceServer) UpdateRegionCountryCustom(context.Context, *UpdateRegionCountryCustomRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRegionCountryCustom not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterRegionCountryServiceServer(s *grpc.Server, srv RegionCountryServiceServer) {
 | 
			
		||||
	s.RegisterService(&_RegionCountryService_serviceDesc, srv)
 | 
			
		||||
@@ -469,6 +888,60 @@ func _RegionCountryService_FindEnabledRegionCountry_Handler(srv interface{}, ctx
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCountryService_FindAllRegionCountries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindAllRegionCountriesRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).FindAllRegionCountries(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCountryService/FindAllRegionCountries",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).FindAllRegionCountries(ctx, req.(*FindAllRegionCountriesRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCountryService_FindRegionCountry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindRegionCountryRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).FindRegionCountry(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCountryService/FindRegionCountry",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).FindRegionCountry(ctx, req.(*FindRegionCountryRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionCountryService_UpdateRegionCountryCustom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateRegionCountryCustomRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).UpdateRegionCountryCustom(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionCountryService/UpdateRegionCountryCustom",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionCountryServiceServer).UpdateRegionCountryCustom(ctx, req.(*UpdateRegionCountryCustomRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _RegionCountryService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.RegionCountryService",
 | 
			
		||||
	HandlerType: (*RegionCountryServiceServer)(nil),
 | 
			
		||||
@@ -481,6 +954,18 @@ var _RegionCountryService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "findEnabledRegionCountry",
 | 
			
		||||
			Handler:    _RegionCountryService_FindEnabledRegionCountry_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findAllRegionCountries",
 | 
			
		||||
			Handler:    _RegionCountryService_FindAllRegionCountries_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findRegionCountry",
 | 
			
		||||
			Handler:    _RegionCountryService_FindRegionCountry_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateRegionCountryCustom",
 | 
			
		||||
			Handler:    _RegionCountryService_UpdateRegionCountryCustom_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_region_country.proto",
 | 
			
		||||
 
 | 
			
		||||
@@ -210,6 +210,251 @@ func (x *FindEnabledRegionProviderResponse) GetRegionProvider() *RegionProvider
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有ISP
 | 
			
		||||
type FindAllRegionProvidersRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersRequest) Reset() {
 | 
			
		||||
	*x = FindAllRegionProvidersRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_provider_proto_msgTypes[4]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionProvidersRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_provider_proto_msgTypes[4]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionProvidersRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionProvidersRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescGZIP(), []int{4}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindAllRegionProvidersResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProviders []*RegionProvider `protobuf:"bytes,1,rep,name=regionProviders,proto3" json:"regionProviders,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersResponse) Reset() {
 | 
			
		||||
	*x = FindAllRegionProvidersResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_provider_proto_msgTypes[5]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionProvidersResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_provider_proto_msgTypes[5]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionProvidersResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionProvidersResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescGZIP(), []int{5}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvidersResponse) GetRegionProviders() []*RegionProvider {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProviders
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个ISP信息
 | 
			
		||||
type FindRegionProviderRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProviderId int64 `protobuf:"varint,1,opt,name=regionProviderId,proto3" json:"regionProviderId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderRequest) Reset() {
 | 
			
		||||
	*x = FindRegionProviderRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_provider_proto_msgTypes[6]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionProviderRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_provider_proto_msgTypes[6]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionProviderRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionProviderRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescGZIP(), []int{6}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderRequest) GetRegionProviderId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProviderId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindRegionProviderResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvider *RegionProvider `protobuf:"bytes,1,opt,name=regionProvider,proto3" json:"regionProvider,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderResponse) Reset() {
 | 
			
		||||
	*x = FindRegionProviderResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_provider_proto_msgTypes[7]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionProviderResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_provider_proto_msgTypes[7]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionProviderResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionProviderResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescGZIP(), []int{7}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProviderResponse) GetRegionProvider() *RegionProvider {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvider
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改ISP定制信息
 | 
			
		||||
type UpdateRegionProviderCustomRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProviderId int64    `protobuf:"varint,1,opt,name=regionProviderId,proto3" json:"regionProviderId,omitempty"`
 | 
			
		||||
	CustomName       string   `protobuf:"bytes,2,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes      []string `protobuf:"bytes,3,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) Reset() {
 | 
			
		||||
	*x = UpdateRegionProviderCustomRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_provider_proto_msgTypes[8]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateRegionProviderCustomRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_provider_proto_msgTypes[8]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateRegionProviderCustomRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateRegionProviderCustomRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescGZIP(), []int{8}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) GetRegionProviderId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProviderId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProviderCustomRequest) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_service_region_provider_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_service_region_provider_proto_rawDesc = []byte{
 | 
			
		||||
@@ -217,44 +462,90 @@ var file_service_region_provider_proto_rawDesc = []byte{
 | 
			
		||||
	0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
 | 
			
		||||
	0x02, 0x70, 0x62, 0x1a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x6c, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
 | 
			
		||||
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x41,
 | 
			
		||||
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f,
 | 
			
		||||
	0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x74, 0x6f, 0x22, 0x26, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x25, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
 | 
			
		||||
	0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
 | 
			
		||||
	0x73, 0x22, 0x4e, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
 | 
			
		||||
	0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49,
 | 
			
		||||
	0x64, 0x22, 0x5f, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x73, 0x22, 0x47, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x1a,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
 | 
			
		||||
	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x72, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75,
 | 
			
		||||
	0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x32, 0x8c, 0x04, 0x0a, 0x15, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72,
 | 
			
		||||
	0x76, 0x69, 0x63, 0x65, 0x12, 0x79, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45,
 | 
			
		||||
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41,
 | 
			
		||||
	0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
 | 
			
		||||
	0x65, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x22, 0x4e, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e,
 | 
			
		||||
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e,
 | 
			
		||||
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x72,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x32, 0xf7, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
 | 
			
		||||
	0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
 | 
			
		||||
	0x72, 0x73, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45,
 | 
			
		||||
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45,
 | 
			
		||||
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x64, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e,
 | 
			
		||||
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x33,
 | 
			
		||||
	0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12,
 | 
			
		||||
	0x6d, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
 | 
			
		||||
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5f,
 | 
			
		||||
	0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
 | 
			
		||||
	0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74,
 | 
			
		||||
	0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
 | 
			
		||||
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
 | 
			
		||||
	0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -269,26 +560,40 @@ func file_service_region_provider_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_region_provider_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_region_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 | 
			
		||||
var file_service_region_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 | 
			
		||||
var file_service_region_provider_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindAllEnabledRegionProvidersRequest)(nil),  // 0: pb.FindAllEnabledRegionProvidersRequest
 | 
			
		||||
	(*FindAllEnabledRegionProvidersResponse)(nil), // 1: pb.FindAllEnabledRegionProvidersResponse
 | 
			
		||||
	(*FindEnabledRegionProviderRequest)(nil),      // 2: pb.FindEnabledRegionProviderRequest
 | 
			
		||||
	(*FindEnabledRegionProviderResponse)(nil),     // 3: pb.FindEnabledRegionProviderResponse
 | 
			
		||||
	(*RegionProvider)(nil),                        // 4: pb.RegionProvider
 | 
			
		||||
	(*FindAllRegionProvidersRequest)(nil),         // 4: pb.FindAllRegionProvidersRequest
 | 
			
		||||
	(*FindAllRegionProvidersResponse)(nil),        // 5: pb.FindAllRegionProvidersResponse
 | 
			
		||||
	(*FindRegionProviderRequest)(nil),             // 6: pb.FindRegionProviderRequest
 | 
			
		||||
	(*FindRegionProviderResponse)(nil),            // 7: pb.FindRegionProviderResponse
 | 
			
		||||
	(*UpdateRegionProviderCustomRequest)(nil),     // 8: pb.UpdateRegionProviderCustomRequest
 | 
			
		||||
	(*RegionProvider)(nil),                        // 9: pb.RegionProvider
 | 
			
		||||
	(*RPCSuccess)(nil),                            // 10: pb.RPCSuccess
 | 
			
		||||
}
 | 
			
		||||
var file_service_region_provider_proto_depIdxs = []int32{
 | 
			
		||||
	4, // 0: pb.FindAllEnabledRegionProvidersResponse.regionProviders:type_name -> pb.RegionProvider
 | 
			
		||||
	4, // 1: pb.FindEnabledRegionProviderResponse.regionProvider:type_name -> pb.RegionProvider
 | 
			
		||||
	0, // 2: pb.RegionProviderService.findAllEnabledRegionProviders:input_type -> pb.FindAllEnabledRegionProvidersRequest
 | 
			
		||||
	2, // 3: pb.RegionProviderService.findEnabledRegionProvider:input_type -> pb.FindEnabledRegionProviderRequest
 | 
			
		||||
	1, // 4: pb.RegionProviderService.findAllEnabledRegionProviders:output_type -> pb.FindAllEnabledRegionProvidersResponse
 | 
			
		||||
	3, // 5: pb.RegionProviderService.findEnabledRegionProvider:output_type -> pb.FindEnabledRegionProviderResponse
 | 
			
		||||
	4, // [4:6] is the sub-list for method output_type
 | 
			
		||||
	2, // [2:4] is the sub-list for method input_type
 | 
			
		||||
	2, // [2:2] is the sub-list for extension type_name
 | 
			
		||||
	2, // [2:2] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:2] is the sub-list for field type_name
 | 
			
		||||
	9,  // 0: pb.FindAllEnabledRegionProvidersResponse.regionProviders:type_name -> pb.RegionProvider
 | 
			
		||||
	9,  // 1: pb.FindEnabledRegionProviderResponse.regionProvider:type_name -> pb.RegionProvider
 | 
			
		||||
	9,  // 2: pb.FindAllRegionProvidersResponse.regionProviders:type_name -> pb.RegionProvider
 | 
			
		||||
	9,  // 3: pb.FindRegionProviderResponse.regionProvider:type_name -> pb.RegionProvider
 | 
			
		||||
	0,  // 4: pb.RegionProviderService.findAllEnabledRegionProviders:input_type -> pb.FindAllEnabledRegionProvidersRequest
 | 
			
		||||
	2,  // 5: pb.RegionProviderService.findEnabledRegionProvider:input_type -> pb.FindEnabledRegionProviderRequest
 | 
			
		||||
	4,  // 6: pb.RegionProviderService.findAllRegionProviders:input_type -> pb.FindAllRegionProvidersRequest
 | 
			
		||||
	6,  // 7: pb.RegionProviderService.findRegionProvider:input_type -> pb.FindRegionProviderRequest
 | 
			
		||||
	8,  // 8: pb.RegionProviderService.updateRegionProviderCustom:input_type -> pb.UpdateRegionProviderCustomRequest
 | 
			
		||||
	1,  // 9: pb.RegionProviderService.findAllEnabledRegionProviders:output_type -> pb.FindAllEnabledRegionProvidersResponse
 | 
			
		||||
	3,  // 10: pb.RegionProviderService.findEnabledRegionProvider:output_type -> pb.FindEnabledRegionProviderResponse
 | 
			
		||||
	5,  // 11: pb.RegionProviderService.findAllRegionProviders:output_type -> pb.FindAllRegionProvidersResponse
 | 
			
		||||
	7,  // 12: pb.RegionProviderService.findRegionProvider:output_type -> pb.FindRegionProviderResponse
 | 
			
		||||
	10, // 13: pb.RegionProviderService.updateRegionProviderCustom:output_type -> pb.RPCSuccess
 | 
			
		||||
	9,  // [9:14] is the sub-list for method output_type
 | 
			
		||||
	4,  // [4:9] is the sub-list for method input_type
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension type_name
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:4] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_service_region_provider_proto_init() }
 | 
			
		||||
@@ -297,6 +602,7 @@ func file_service_region_provider_proto_init() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_models_model_region_provider_proto_init()
 | 
			
		||||
	file_models_rpc_messages_proto_init()
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllEnabledRegionProvidersRequest); i {
 | 
			
		||||
@@ -346,6 +652,66 @@ func file_service_region_provider_proto_init() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionProvidersRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionProvidersResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionProviderRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionProviderResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_provider_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateRegionProviderCustomRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
@@ -353,7 +719,7 @@ func file_service_region_provider_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_region_provider_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   4,
 | 
			
		||||
			NumMessages:   9,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -379,10 +745,18 @@ const _ = grpc.SupportPackageIsVersion6
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 | 
			
		||||
type RegionProviderServiceClient interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	FindAllEnabledRegionProviders(ctx context.Context, in *FindAllEnabledRegionProvidersRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionProvidersResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	FindEnabledRegionProvider(ctx context.Context, in *FindEnabledRegionProviderRequest, opts ...grpc.CallOption) (*FindEnabledRegionProviderResponse, error)
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	FindAllRegionProviders(ctx context.Context, in *FindAllRegionProvidersRequest, opts ...grpc.CallOption) (*FindAllRegionProvidersResponse, error)
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	FindRegionProvider(ctx context.Context, in *FindRegionProviderRequest, opts ...grpc.CallOption) (*FindRegionProviderResponse, error)
 | 
			
		||||
	// 修改ISP定制信息
 | 
			
		||||
	UpdateRegionProviderCustom(ctx context.Context, in *UpdateRegionProviderCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type regionProviderServiceClient struct {
 | 
			
		||||
@@ -393,6 +767,7 @@ func NewRegionProviderServiceClient(cc grpc.ClientConnInterface) RegionProviderS
 | 
			
		||||
	return ®ionProviderServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionProviderServiceClient) FindAllEnabledRegionProviders(ctx context.Context, in *FindAllEnabledRegionProvidersRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionProvidersResponse, error) {
 | 
			
		||||
	out := new(FindAllEnabledRegionProvidersResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProviderService/findAllEnabledRegionProviders", in, out, opts...)
 | 
			
		||||
@@ -402,6 +777,7 @@ func (c *regionProviderServiceClient) FindAllEnabledRegionProviders(ctx context.
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionProviderServiceClient) FindEnabledRegionProvider(ctx context.Context, in *FindEnabledRegionProviderRequest, opts ...grpc.CallOption) (*FindEnabledRegionProviderResponse, error) {
 | 
			
		||||
	out := new(FindEnabledRegionProviderResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProviderService/findEnabledRegionProvider", in, out, opts...)
 | 
			
		||||
@@ -411,12 +787,47 @@ func (c *regionProviderServiceClient) FindEnabledRegionProvider(ctx context.Cont
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProviderServiceClient) FindAllRegionProviders(ctx context.Context, in *FindAllRegionProvidersRequest, opts ...grpc.CallOption) (*FindAllRegionProvidersResponse, error) {
 | 
			
		||||
	out := new(FindAllRegionProvidersResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProviderService/findAllRegionProviders", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProviderServiceClient) FindRegionProvider(ctx context.Context, in *FindRegionProviderRequest, opts ...grpc.CallOption) (*FindRegionProviderResponse, error) {
 | 
			
		||||
	out := new(FindRegionProviderResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProviderService/findRegionProvider", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProviderServiceClient) UpdateRegionProviderCustom(ctx context.Context, in *UpdateRegionProviderCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProviderService/updateRegionProviderCustom", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegionProviderServiceServer is the server API for RegionProviderService service.
 | 
			
		||||
type RegionProviderServiceServer interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	FindAllEnabledRegionProviders(context.Context, *FindAllEnabledRegionProvidersRequest) (*FindAllEnabledRegionProvidersResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	FindEnabledRegionProvider(context.Context, *FindEnabledRegionProviderRequest) (*FindEnabledRegionProviderResponse, error)
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	FindAllRegionProviders(context.Context, *FindAllRegionProvidersRequest) (*FindAllRegionProvidersResponse, error)
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	FindRegionProvider(context.Context, *FindRegionProviderRequest) (*FindRegionProviderResponse, error)
 | 
			
		||||
	// 修改ISP定制信息
 | 
			
		||||
	UpdateRegionProviderCustom(context.Context, *UpdateRegionProviderCustomRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedRegionProviderServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -429,6 +840,15 @@ func (*UnimplementedRegionProviderServiceServer) FindAllEnabledRegionProviders(c
 | 
			
		||||
func (*UnimplementedRegionProviderServiceServer) FindEnabledRegionProvider(context.Context, *FindEnabledRegionProviderRequest) (*FindEnabledRegionProviderResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindEnabledRegionProvider not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProviderServiceServer) FindAllRegionProviders(context.Context, *FindAllRegionProvidersRequest) (*FindAllRegionProvidersResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindAllRegionProviders not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProviderServiceServer) FindRegionProvider(context.Context, *FindRegionProviderRequest) (*FindRegionProviderResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindRegionProvider not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProviderServiceServer) UpdateRegionProviderCustom(context.Context, *UpdateRegionProviderCustomRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRegionProviderCustom not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterRegionProviderServiceServer(s *grpc.Server, srv RegionProviderServiceServer) {
 | 
			
		||||
	s.RegisterService(&_RegionProviderService_serviceDesc, srv)
 | 
			
		||||
@@ -470,6 +890,60 @@ func _RegionProviderService_FindEnabledRegionProvider_Handler(srv interface{}, c
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProviderService_FindAllRegionProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindAllRegionProvidersRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).FindAllRegionProviders(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProviderService/FindAllRegionProviders",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).FindAllRegionProviders(ctx, req.(*FindAllRegionProvidersRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProviderService_FindRegionProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindRegionProviderRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).FindRegionProvider(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProviderService/FindRegionProvider",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).FindRegionProvider(ctx, req.(*FindRegionProviderRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProviderService_UpdateRegionProviderCustom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateRegionProviderCustomRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).UpdateRegionProviderCustom(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProviderService/UpdateRegionProviderCustom",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProviderServiceServer).UpdateRegionProviderCustom(ctx, req.(*UpdateRegionProviderCustomRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _RegionProviderService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.RegionProviderService",
 | 
			
		||||
	HandlerType: (*RegionProviderServiceServer)(nil),
 | 
			
		||||
@@ -482,6 +956,18 @@ var _RegionProviderService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "findEnabledRegionProvider",
 | 
			
		||||
			Handler:    _RegionProviderService_FindEnabledRegionProvider_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findAllRegionProviders",
 | 
			
		||||
			Handler:    _RegionProviderService_FindAllRegionProviders_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findRegionProvider",
 | 
			
		||||
			Handler:    _RegionProviderService_FindRegionProvider_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateRegionProviderCustom",
 | 
			
		||||
			Handler:    _RegionProviderService_UpdateRegionProviderCustom_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_region_provider.proto",
 | 
			
		||||
 
 | 
			
		||||
@@ -219,6 +219,260 @@ func (x *FindEnabledRegionProvinceResponse) GetRegionProvince() *RegionProvince
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有省份
 | 
			
		||||
type FindAllRegionProvincesWithRegionCountryIdRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionCountryId int64 `protobuf:"varint,1,opt,name=regionCountryId,proto3" json:"regionCountryId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdRequest) Reset() {
 | 
			
		||||
	*x = FindAllRegionProvincesWithRegionCountryIdRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_province_proto_msgTypes[4]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionProvincesWithRegionCountryIdRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_province_proto_msgTypes[4]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionProvincesWithRegionCountryIdRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionProvincesWithRegionCountryIdRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_province_proto_rawDescGZIP(), []int{4}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdRequest) GetRegionCountryId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionCountryId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindAllRegionProvincesWithRegionCountryIdResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvinces []*RegionProvince `protobuf:"bytes,1,rep,name=regionProvinces,proto3" json:"regionProvinces,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdResponse) Reset() {
 | 
			
		||||
	*x = FindAllRegionProvincesWithRegionCountryIdResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_province_proto_msgTypes[5]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindAllRegionProvincesWithRegionCountryIdResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_province_proto_msgTypes[5]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindAllRegionProvincesWithRegionCountryIdResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindAllRegionProvincesWithRegionCountryIdResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_province_proto_rawDescGZIP(), []int{5}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindAllRegionProvincesWithRegionCountryIdResponse) GetRegionProvinces() []*RegionProvince {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvinces
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个省份信息
 | 
			
		||||
type FindRegionProvinceRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvinceId int64 `protobuf:"varint,1,opt,name=regionProvinceId,proto3" json:"regionProvinceId,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceRequest) Reset() {
 | 
			
		||||
	*x = FindRegionProvinceRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_province_proto_msgTypes[6]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionProvinceRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_province_proto_msgTypes[6]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionProvinceRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionProvinceRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_province_proto_rawDescGZIP(), []int{6}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceRequest) GetRegionProvinceId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvinceId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindRegionProvinceResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvince *RegionProvince `protobuf:"bytes,1,opt,name=regionProvince,proto3" json:"regionProvince,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceResponse) Reset() {
 | 
			
		||||
	*x = FindRegionProvinceResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_province_proto_msgTypes[7]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindRegionProvinceResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_province_proto_msgTypes[7]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindRegionProvinceResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindRegionProvinceResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_province_proto_rawDescGZIP(), []int{7}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindRegionProvinceResponse) GetRegionProvince() *RegionProvince {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvince
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改省份定制信息
 | 
			
		||||
type UpdateRegionProvinceCustomRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	RegionProvinceId int64    `protobuf:"varint,1,opt,name=regionProvinceId,proto3" json:"regionProvinceId,omitempty"`
 | 
			
		||||
	CustomName       string   `protobuf:"bytes,2,opt,name=customName,proto3" json:"customName,omitempty"`
 | 
			
		||||
	CustomCodes      []string `protobuf:"bytes,3,rep,name=customCodes,proto3" json:"customCodes,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) Reset() {
 | 
			
		||||
	*x = UpdateRegionProvinceCustomRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_region_province_proto_msgTypes[8]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateRegionProvinceCustomRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_region_province_proto_msgTypes[8]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateRegionProvinceCustomRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateRegionProvinceCustomRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_region_province_proto_rawDescGZIP(), []int{8}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) GetRegionProvinceId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RegionProvinceId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) GetCustomName() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomName
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateRegionProvinceCustomRequest) GetCustomCodes() []string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CustomCodes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_service_region_province_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_service_region_province_proto_rawDesc = []byte{
 | 
			
		||||
@@ -226,50 +480,105 @@ var file_service_region_province_proto_rawDesc = []byte{
 | 
			
		||||
	0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
 | 
			
		||||
	0x02, 0x70, 0x62, 0x1a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x6c, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
 | 
			
		||||
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41,
 | 
			
		||||
	0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e,
 | 
			
		||||
	0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75,
 | 
			
		||||
	0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x32, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x20, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a,
 | 
			
		||||
	0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
 | 
			
		||||
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
 | 
			
		||||
	0x3a, 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
 | 
			
		||||
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x32, 0x9f, 0x02, 0x0a, 0x15,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x53, 0x65,
 | 
			
		||||
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x2a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f,
 | 
			
		||||
	0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
 | 
			
		||||
	0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49,
 | 
			
		||||
	0x64, 0x22, 0x72, 0x0a, 0x32, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
 | 
			
		||||
	0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
 | 
			
		||||
	0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x72, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x5c, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
 | 
			
		||||
	0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73,
 | 
			
		||||
	0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
 | 
			
		||||
	0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x72, 0x79, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69,
 | 
			
		||||
	0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c,
 | 
			
		||||
	0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x72, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10,
 | 
			
		||||
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64,
 | 
			
		||||
	0x22, 0x58, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72,
 | 
			
		||||
	0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a,
 | 
			
		||||
	0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x21, 0x55,
 | 
			
		||||
	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
 | 
			
		||||
	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
 | 
			
		||||
	0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b,
 | 
			
		||||
	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x32, 0xee,
 | 
			
		||||
	0x04, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
 | 
			
		||||
	0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x2a, 0x66, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c,
 | 
			
		||||
	0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
 | 
			
		||||
	0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
 | 
			
		||||
	0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a,
 | 
			
		||||
	0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6d, 0x0a, 0x19, 0x66,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
 | 
			
		||||
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50,
 | 
			
		||||
	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x29, 0x66,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
 | 
			
		||||
	0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
 | 
			
		||||
	0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
 | 
			
		||||
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f,
 | 
			
		||||
	0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65,
 | 
			
		||||
	0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67,
 | 
			
		||||
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
 | 
			
		||||
	0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70,
 | 
			
		||||
	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70,
 | 
			
		||||
	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
 | 
			
		||||
	0x63, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42,
 | 
			
		||||
	0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -284,26 +593,40 @@ func file_service_region_province_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_region_province_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_region_province_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 | 
			
		||||
var file_service_region_province_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 | 
			
		||||
var file_service_region_province_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindAllEnabledRegionProvincesWithCountryIdRequest)(nil),  // 0: pb.FindAllEnabledRegionProvincesWithCountryIdRequest
 | 
			
		||||
	(*FindAllEnabledRegionProvincesWithCountryIdResponse)(nil), // 1: pb.FindAllEnabledRegionProvincesWithCountryIdResponse
 | 
			
		||||
	(*FindEnabledRegionProvinceRequest)(nil),                   // 2: pb.FindEnabledRegionProvinceRequest
 | 
			
		||||
	(*FindEnabledRegionProvinceResponse)(nil),                  // 3: pb.FindEnabledRegionProvinceResponse
 | 
			
		||||
	(*RegionProvince)(nil),                                     // 4: pb.RegionProvince
 | 
			
		||||
	(*FindAllRegionProvincesWithRegionCountryIdRequest)(nil),   // 4: pb.FindAllRegionProvincesWithRegionCountryIdRequest
 | 
			
		||||
	(*FindAllRegionProvincesWithRegionCountryIdResponse)(nil),  // 5: pb.FindAllRegionProvincesWithRegionCountryIdResponse
 | 
			
		||||
	(*FindRegionProvinceRequest)(nil),                          // 6: pb.FindRegionProvinceRequest
 | 
			
		||||
	(*FindRegionProvinceResponse)(nil),                         // 7: pb.FindRegionProvinceResponse
 | 
			
		||||
	(*UpdateRegionProvinceCustomRequest)(nil),                  // 8: pb.UpdateRegionProvinceCustomRequest
 | 
			
		||||
	(*RegionProvince)(nil),                                     // 9: pb.RegionProvince
 | 
			
		||||
	(*RPCSuccess)(nil),                                         // 10: pb.RPCSuccess
 | 
			
		||||
}
 | 
			
		||||
var file_service_region_province_proto_depIdxs = []int32{
 | 
			
		||||
	4, // 0: pb.FindAllEnabledRegionProvincesWithCountryIdResponse.regionProvinces:type_name -> pb.RegionProvince
 | 
			
		||||
	4, // 1: pb.FindEnabledRegionProvinceResponse.regionProvince:type_name -> pb.RegionProvince
 | 
			
		||||
	0, // 2: pb.RegionProvinceService.findAllEnabledRegionProvincesWithCountryId:input_type -> pb.FindAllEnabledRegionProvincesWithCountryIdRequest
 | 
			
		||||
	2, // 3: pb.RegionProvinceService.findEnabledRegionProvince:input_type -> pb.FindEnabledRegionProvinceRequest
 | 
			
		||||
	1, // 4: pb.RegionProvinceService.findAllEnabledRegionProvincesWithCountryId:output_type -> pb.FindAllEnabledRegionProvincesWithCountryIdResponse
 | 
			
		||||
	3, // 5: pb.RegionProvinceService.findEnabledRegionProvince:output_type -> pb.FindEnabledRegionProvinceResponse
 | 
			
		||||
	4, // [4:6] is the sub-list for method output_type
 | 
			
		||||
	2, // [2:4] is the sub-list for method input_type
 | 
			
		||||
	2, // [2:2] is the sub-list for extension type_name
 | 
			
		||||
	2, // [2:2] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:2] is the sub-list for field type_name
 | 
			
		||||
	9,  // 0: pb.FindAllEnabledRegionProvincesWithCountryIdResponse.regionProvinces:type_name -> pb.RegionProvince
 | 
			
		||||
	9,  // 1: pb.FindEnabledRegionProvinceResponse.regionProvince:type_name -> pb.RegionProvince
 | 
			
		||||
	9,  // 2: pb.FindAllRegionProvincesWithRegionCountryIdResponse.regionProvinces:type_name -> pb.RegionProvince
 | 
			
		||||
	9,  // 3: pb.FindRegionProvinceResponse.regionProvince:type_name -> pb.RegionProvince
 | 
			
		||||
	0,  // 4: pb.RegionProvinceService.findAllEnabledRegionProvincesWithCountryId:input_type -> pb.FindAllEnabledRegionProvincesWithCountryIdRequest
 | 
			
		||||
	2,  // 5: pb.RegionProvinceService.findEnabledRegionProvince:input_type -> pb.FindEnabledRegionProvinceRequest
 | 
			
		||||
	4,  // 6: pb.RegionProvinceService.findAllRegionProvincesWithRegionCountryId:input_type -> pb.FindAllRegionProvincesWithRegionCountryIdRequest
 | 
			
		||||
	6,  // 7: pb.RegionProvinceService.findRegionProvince:input_type -> pb.FindRegionProvinceRequest
 | 
			
		||||
	8,  // 8: pb.RegionProvinceService.updateRegionProvinceCustom:input_type -> pb.UpdateRegionProvinceCustomRequest
 | 
			
		||||
	1,  // 9: pb.RegionProvinceService.findAllEnabledRegionProvincesWithCountryId:output_type -> pb.FindAllEnabledRegionProvincesWithCountryIdResponse
 | 
			
		||||
	3,  // 10: pb.RegionProvinceService.findEnabledRegionProvince:output_type -> pb.FindEnabledRegionProvinceResponse
 | 
			
		||||
	5,  // 11: pb.RegionProvinceService.findAllRegionProvincesWithRegionCountryId:output_type -> pb.FindAllRegionProvincesWithRegionCountryIdResponse
 | 
			
		||||
	7,  // 12: pb.RegionProvinceService.findRegionProvince:output_type -> pb.FindRegionProvinceResponse
 | 
			
		||||
	10, // 13: pb.RegionProvinceService.updateRegionProvinceCustom:output_type -> pb.RPCSuccess
 | 
			
		||||
	9,  // [9:14] is the sub-list for method output_type
 | 
			
		||||
	4,  // [4:9] is the sub-list for method input_type
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension type_name
 | 
			
		||||
	4,  // [4:4] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:4] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_service_region_province_proto_init() }
 | 
			
		||||
@@ -312,6 +635,7 @@ func file_service_region_province_proto_init() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_models_model_region_province_proto_init()
 | 
			
		||||
	file_models_rpc_messages_proto_init()
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_service_region_province_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllEnabledRegionProvincesWithCountryIdRequest); i {
 | 
			
		||||
@@ -361,6 +685,66 @@ func file_service_region_province_proto_init() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_province_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionProvincesWithRegionCountryIdRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_province_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindAllRegionProvincesWithRegionCountryIdResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_province_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionProvinceRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_province_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindRegionProvinceResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_region_province_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateRegionProvinceCustomRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
@@ -368,7 +752,7 @@ func file_service_region_province_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_region_province_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   4,
 | 
			
		||||
			NumMessages:   9,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -394,10 +778,18 @@ const _ = grpc.SupportPackageIsVersion6
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 | 
			
		||||
type RegionProvinceServiceClient interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	FindAllEnabledRegionProvincesWithCountryId(ctx context.Context, in *FindAllEnabledRegionProvincesWithCountryIdRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionProvincesWithCountryIdResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	FindEnabledRegionProvince(ctx context.Context, in *FindEnabledRegionProvinceRequest, opts ...grpc.CallOption) (*FindEnabledRegionProvinceResponse, error)
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	FindAllRegionProvincesWithRegionCountryId(ctx context.Context, in *FindAllRegionProvincesWithRegionCountryIdRequest, opts ...grpc.CallOption) (*FindAllRegionProvincesWithRegionCountryIdResponse, error)
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	FindRegionProvince(ctx context.Context, in *FindRegionProvinceRequest, opts ...grpc.CallOption) (*FindRegionProvinceResponse, error)
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	UpdateRegionProvinceCustom(ctx context.Context, in *UpdateRegionProvinceCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type regionProvinceServiceClient struct {
 | 
			
		||||
@@ -408,6 +800,7 @@ func NewRegionProvinceServiceClient(cc grpc.ClientConnInterface) RegionProvinceS
 | 
			
		||||
	return ®ionProvinceServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionProvinceServiceClient) FindAllEnabledRegionProvincesWithCountryId(ctx context.Context, in *FindAllEnabledRegionProvincesWithCountryIdRequest, opts ...grpc.CallOption) (*FindAllEnabledRegionProvincesWithCountryIdResponse, error) {
 | 
			
		||||
	out := new(FindAllEnabledRegionProvincesWithCountryIdResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProvinceService/findAllEnabledRegionProvincesWithCountryId", in, out, opts...)
 | 
			
		||||
@@ -417,6 +810,7 @@ func (c *regionProvinceServiceClient) FindAllEnabledRegionProvincesWithCountryId
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Do not use.
 | 
			
		||||
func (c *regionProvinceServiceClient) FindEnabledRegionProvince(ctx context.Context, in *FindEnabledRegionProvinceRequest, opts ...grpc.CallOption) (*FindEnabledRegionProvinceResponse, error) {
 | 
			
		||||
	out := new(FindEnabledRegionProvinceResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProvinceService/findEnabledRegionProvince", in, out, opts...)
 | 
			
		||||
@@ -426,12 +820,47 @@ func (c *regionProvinceServiceClient) FindEnabledRegionProvince(ctx context.Cont
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProvinceServiceClient) FindAllRegionProvincesWithRegionCountryId(ctx context.Context, in *FindAllRegionProvincesWithRegionCountryIdRequest, opts ...grpc.CallOption) (*FindAllRegionProvincesWithRegionCountryIdResponse, error) {
 | 
			
		||||
	out := new(FindAllRegionProvincesWithRegionCountryIdResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProvinceService/findAllRegionProvincesWithRegionCountryId", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProvinceServiceClient) FindRegionProvince(ctx context.Context, in *FindRegionProvinceRequest, opts ...grpc.CallOption) (*FindRegionProvinceResponse, error) {
 | 
			
		||||
	out := new(FindRegionProvinceResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProvinceService/findRegionProvince", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *regionProvinceServiceClient) UpdateRegionProvinceCustom(ctx context.Context, in *UpdateRegionProvinceCustomRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.RegionProvinceService/updateRegionProvinceCustom", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegionProvinceServiceServer is the server API for RegionProvinceService service.
 | 
			
		||||
type RegionProvinceServiceServer interface {
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	FindAllEnabledRegionProvincesWithCountryId(context.Context, *FindAllEnabledRegionProvincesWithCountryIdRequest) (*FindAllEnabledRegionProvincesWithCountryIdResponse, error)
 | 
			
		||||
	// Deprecated: Do not use.
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	FindEnabledRegionProvince(context.Context, *FindEnabledRegionProvinceRequest) (*FindEnabledRegionProvinceResponse, error)
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	FindAllRegionProvincesWithRegionCountryId(context.Context, *FindAllRegionProvincesWithRegionCountryIdRequest) (*FindAllRegionProvincesWithRegionCountryIdResponse, error)
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	FindRegionProvince(context.Context, *FindRegionProvinceRequest) (*FindRegionProvinceResponse, error)
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	UpdateRegionProvinceCustom(context.Context, *UpdateRegionProvinceCustomRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedRegionProvinceServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -444,6 +873,15 @@ func (*UnimplementedRegionProvinceServiceServer) FindAllEnabledRegionProvincesWi
 | 
			
		||||
func (*UnimplementedRegionProvinceServiceServer) FindEnabledRegionProvince(context.Context, *FindEnabledRegionProvinceRequest) (*FindEnabledRegionProvinceResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindEnabledRegionProvince not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProvinceServiceServer) FindAllRegionProvincesWithRegionCountryId(context.Context, *FindAllRegionProvincesWithRegionCountryIdRequest) (*FindAllRegionProvincesWithRegionCountryIdResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindAllRegionProvincesWithRegionCountryId not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProvinceServiceServer) FindRegionProvince(context.Context, *FindRegionProvinceRequest) (*FindRegionProvinceResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindRegionProvince not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedRegionProvinceServiceServer) UpdateRegionProvinceCustom(context.Context, *UpdateRegionProvinceCustomRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRegionProvinceCustom not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterRegionProvinceServiceServer(s *grpc.Server, srv RegionProvinceServiceServer) {
 | 
			
		||||
	s.RegisterService(&_RegionProvinceService_serviceDesc, srv)
 | 
			
		||||
@@ -485,6 +923,60 @@ func _RegionProvinceService_FindEnabledRegionProvince_Handler(srv interface{}, c
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProvinceService_FindAllRegionProvincesWithRegionCountryId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindAllRegionProvincesWithRegionCountryIdRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).FindAllRegionProvincesWithRegionCountryId(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProvinceService/FindAllRegionProvincesWithRegionCountryId",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).FindAllRegionProvincesWithRegionCountryId(ctx, req.(*FindAllRegionProvincesWithRegionCountryIdRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProvinceService_FindRegionProvince_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindRegionProvinceRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).FindRegionProvince(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProvinceService/FindRegionProvince",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).FindRegionProvince(ctx, req.(*FindRegionProvinceRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _RegionProvinceService_UpdateRegionProvinceCustom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateRegionProvinceCustomRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).UpdateRegionProvinceCustom(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.RegionProvinceService/UpdateRegionProvinceCustom",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(RegionProvinceServiceServer).UpdateRegionProvinceCustom(ctx, req.(*UpdateRegionProvinceCustomRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _RegionProvinceService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.RegionProvinceService",
 | 
			
		||||
	HandlerType: (*RegionProvinceServiceServer)(nil),
 | 
			
		||||
@@ -497,6 +989,18 @@ var _RegionProvinceService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "findEnabledRegionProvince",
 | 
			
		||||
			Handler:    _RegionProvinceService_FindEnabledRegionProvince_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findAllRegionProvincesWithRegionCountryId",
 | 
			
		||||
			Handler:    _RegionProvinceService_FindAllRegionProvincesWithRegionCountryId_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findRegionProvince",
 | 
			
		||||
			Handler:    _RegionProvinceService_FindRegionProvince_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateRegionProvinceCustom",
 | 
			
		||||
			Handler:    _RegionProvinceService_UpdateRegionProvinceCustom_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_region_province.proto",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								pkg/rpc/protos/models/model_ip_library_file.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								pkg/rpc/protos/models/model_ip_library_file.proto
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
syntax = "proto3";
 | 
			
		||||
option go_package = "./pb";
 | 
			
		||||
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
message IPLibraryFile {
 | 
			
		||||
	int64 id = 1;
 | 
			
		||||
	int64 fileId = 2;
 | 
			
		||||
	bool isFinished = 3;
 | 
			
		||||
	int64 createdAt = 4;
 | 
			
		||||
	repeated string countryNames = 5;
 | 
			
		||||
	repeated Province provinces = 6;
 | 
			
		||||
	repeated City cities = 7;
 | 
			
		||||
	repeated Town towns = 8;
 | 
			
		||||
	repeated string providerNames = 9;
 | 
			
		||||
 | 
			
		||||
	message Province {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		string provinceName = 2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	message City {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		string provinceName = 2;
 | 
			
		||||
		string cityName = 3;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	message Town {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		string provinceName = 2;
 | 
			
		||||
		string cityName = 3;
 | 
			
		||||
		string townName = 4;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -10,6 +10,9 @@ message RegionCity {
 | 
			
		||||
	string name = 2;
 | 
			
		||||
	repeated string codes = 3;
 | 
			
		||||
	int64 regionProvinceId = 4;
 | 
			
		||||
	string customName = 5;
 | 
			
		||||
	repeated string customCodes = 6;
 | 
			
		||||
	string displayName = 7;
 | 
			
		||||
 | 
			
		||||
	RegionProvince regionProvince = 30;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +8,7 @@ message RegionCountry {
 | 
			
		||||
	string name = 2;
 | 
			
		||||
	repeated string codes = 3;
 | 
			
		||||
	repeated string pinyin = 4;
 | 
			
		||||
	string customName = 5;
 | 
			
		||||
	repeated string customCodes = 6;
 | 
			
		||||
	string displayName = 7;
 | 
			
		||||
}
 | 
			
		||||
@@ -7,4 +7,7 @@ message RegionProvider {
 | 
			
		||||
	int64 id = 1;
 | 
			
		||||
	string name = 2;
 | 
			
		||||
	repeated string codes = 3;
 | 
			
		||||
	string customName = 4;
 | 
			
		||||
	repeated string customCodes = 5;
 | 
			
		||||
	string displayName = 6;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,4 +7,8 @@ message RegionProvince {
 | 
			
		||||
	int64 id = 1;
 | 
			
		||||
	string name = 2;
 | 
			
		||||
	repeated string codes = 3;
 | 
			
		||||
	int64 regionCountryId = 4;
 | 
			
		||||
	string customName = 5;
 | 
			
		||||
	repeated string customCodes = 6;
 | 
			
		||||
	string displayName = 7;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										138
									
								
								pkg/rpc/protos/service_ip_library_file.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								pkg/rpc/protos/service_ip_library_file.proto
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,138 @@
 | 
			
		||||
syntax = "proto3";
 | 
			
		||||
option go_package = "./pb";
 | 
			
		||||
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
import "models/rpc_messages.proto";
 | 
			
		||||
import "models/model_ip_library_file.proto";
 | 
			
		||||
import "models/model_region_country.proto";
 | 
			
		||||
import "models/model_region_province.proto";
 | 
			
		||||
import "models/model_region_city.proto";
 | 
			
		||||
import "models/model_region_provider.proto";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// IP库文件管理
 | 
			
		||||
service IPLibraryFileService {
 | 
			
		||||
	// 查找所有未完成的IP库文件
 | 
			
		||||
	rpc findAllUnfinishedIPLibraryFiles(FindAllUnfinishedIPLibraryFilesRequest) returns (FindAllUnfinishedIPLibraryFilesResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找单个IP库文件
 | 
			
		||||
	rpc findIPLibraryFile(FindIPLibraryFileRequest) returns (FindIPLibraryFileResponse);
 | 
			
		||||
 | 
			
		||||
	// 创建IP库文件
 | 
			
		||||
	rpc createIPLibraryFile(CreateIPLibraryFileRequest) returns (CreateIPLibraryFileResponse);
 | 
			
		||||
 | 
			
		||||
	// 检查国家/地区
 | 
			
		||||
	rpc checkCountriesWithIPLibraryFileId(CheckCountriesWithIPLibraryFileIdRequest) returns (CheckCountriesWithIPLibraryFileIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 检查省份/州
 | 
			
		||||
	rpc checkProvincesWithIPLibraryFileId(CheckProvincesWithIPLibraryFileIdRequest) returns (CheckProvincesWithIPLibraryFileIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 检查城市/市
 | 
			
		||||
	rpc checkCitiesWithIPLibraryFileId(CheckCitiesWithIPLibraryFileIdRequest) returns (CheckCitiesWithIPLibraryFileIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 检查ISP运营商
 | 
			
		||||
	rpc checkProvidersWithIPLibraryFileId(CheckProvidersWithIPLibraryFileIdRequest) returns (CheckProvidersWithIPLibraryFileIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 生成IP库文件
 | 
			
		||||
	rpc generateIPLibraryFile(GenerateIPLibraryFileRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有未完成的IP库文件
 | 
			
		||||
message FindAllUnfinishedIPLibraryFilesRequest {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllUnfinishedIPLibraryFilesResponse {
 | 
			
		||||
	repeated IPLibraryFile ipLibraryFiles = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个IP库文件
 | 
			
		||||
message FindIPLibraryFileRequest {
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindIPLibraryFileResponse {
 | 
			
		||||
	IPLibraryFile ipLibraryFile = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建IP库文件
 | 
			
		||||
message CreateIPLibraryFileRequest {
 | 
			
		||||
	string template = 1;
 | 
			
		||||
	repeated string emptyValues = 2;
 | 
			
		||||
	int64 fileId = 3;
 | 
			
		||||
	bytes countriesJSON = 4;
 | 
			
		||||
	bytes provincesJSON = 5;
 | 
			
		||||
	bytes citiesJSON = 6;
 | 
			
		||||
	bytes townsJSON = 7;
 | 
			
		||||
	bytes providersJSON = 8;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message CreateIPLibraryFileResponse {
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查国家/地区
 | 
			
		||||
message CheckCountriesWithIPLibraryFileIdRequest {
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message CheckCountriesWithIPLibraryFileIdResponse {
 | 
			
		||||
	repeated MissingCountry missingCountries = 1;
 | 
			
		||||
 | 
			
		||||
	message MissingCountry {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		repeated RegionCountry similarCountries = 2;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查省份/州
 | 
			
		||||
message CheckProvincesWithIPLibraryFileIdRequest{
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message CheckProvincesWithIPLibraryFileIdResponse {
 | 
			
		||||
	repeated MissingProvince missingProvinces = 1;
 | 
			
		||||
 | 
			
		||||
	message MissingProvince {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		string provinceName = 2;
 | 
			
		||||
		repeated RegionProvince similarProvinces = 3;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// 检查城市/市
 | 
			
		||||
message CheckCitiesWithIPLibraryFileIdRequest{
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message CheckCitiesWithIPLibraryFileIdResponse {
 | 
			
		||||
	repeated MissingCity missingCities = 1;
 | 
			
		||||
 | 
			
		||||
	message MissingCity {
 | 
			
		||||
		string countryName = 1;
 | 
			
		||||
		string provinceName = 2;
 | 
			
		||||
		string cityName = 3;
 | 
			
		||||
		repeated RegionCity similarCities = 4;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查ISP运营商
 | 
			
		||||
message CheckProvidersWithIPLibraryFileIdRequest{
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message CheckProvidersWithIPLibraryFileIdResponse {
 | 
			
		||||
	repeated MissingProvider missingProviders = 1;
 | 
			
		||||
 | 
			
		||||
	message MissingProvider {
 | 
			
		||||
		string providerName = 1;
 | 
			
		||||
		repeated RegionProvider similarProviders = 2;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 生成IP库文件
 | 
			
		||||
message GenerateIPLibraryFileRequest {
 | 
			
		||||
	int64 ipLibraryFileId = 1;
 | 
			
		||||
}
 | 
			
		||||
@@ -4,14 +4,31 @@ option go_package = "./pb";
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
import "models/model_region_city.proto";
 | 
			
		||||
import "models/rpc_messages.proto";
 | 
			
		||||
 | 
			
		||||
// 城市相关服务
 | 
			
		||||
service RegionCityService {
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	rpc findAllEnabledRegionCities (FindAllEnabledRegionCitiesRequest) returns (FindAllEnabledRegionCitiesResponse);
 | 
			
		||||
	rpc findAllEnabledRegionCities (FindAllEnabledRegionCitiesRequest) returns (FindAllEnabledRegionCitiesResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	rpc findEnabledRegionCity (FindEnabledRegionCityRequest) returns (FindEnabledRegionCityResponse);
 | 
			
		||||
	rpc findEnabledRegionCity (FindEnabledRegionCityRequest) returns (FindEnabledRegionCityResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找所有城市
 | 
			
		||||
	rpc findAllRegionCities (FindAllRegionCitiesRequest) returns (FindAllRegionCitiesResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找某个省份的所有城市
 | 
			
		||||
	rpc findAllRegionCitiesWithRegionProvinceId(FindAllRegionCitiesWithRegionProvinceIdRequest) returns (FindAllRegionCitiesWithRegionProvinceIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找单个城市信息
 | 
			
		||||
	rpc findRegionCity (FindRegionCityRequest) returns (FindRegionCityResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改城市定制信息
 | 
			
		||||
	rpc updateRegionCityCustom(UpdateRegionCityCustomRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有城市
 | 
			
		||||
@@ -31,3 +48,37 @@ message FindEnabledRegionCityRequest {
 | 
			
		||||
message FindEnabledRegionCityResponse {
 | 
			
		||||
	RegionCity regionCity = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有城市
 | 
			
		||||
message FindAllRegionCitiesRequest {
 | 
			
		||||
	bool includeRegionProvince = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllRegionCitiesResponse {
 | 
			
		||||
	repeated RegionCity regionCities = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找某个省份的所有城市
 | 
			
		||||
message FindAllRegionCitiesWithRegionProvinceIdRequest {
 | 
			
		||||
	int64 regionProvinceId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllRegionCitiesWithRegionProvinceIdResponse {
 | 
			
		||||
	repeated RegionCity regionCities = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个城市信息
 | 
			
		||||
message FindRegionCityRequest {
 | 
			
		||||
	int64 regionCityId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindRegionCityResponse {
 | 
			
		||||
	RegionCity regionCity = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改城市定制信息
 | 
			
		||||
message UpdateRegionCityCustomRequest {
 | 
			
		||||
	int64 regionCityId = 1;
 | 
			
		||||
	string customName = 2;
 | 
			
		||||
	repeated string customCodes = 3;
 | 
			
		||||
}
 | 
			
		||||
@@ -4,17 +4,31 @@ option go_package = "./pb";
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
import "models/model_region_country.proto";
 | 
			
		||||
import "models/rpc_messages.proto";
 | 
			
		||||
 | 
			
		||||
// 国家相关服务
 | 
			
		||||
service RegionCountryService {
 | 
			
		||||
	// 查找所有的国家列表
 | 
			
		||||
	rpc findAllEnabledRegionCountries (FindAllEnabledRegionCountriesRequest) returns (FindAllEnabledRegionCountriesResponse);
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	rpc findAllEnabledRegionCountries (FindAllEnabledRegionCountriesRequest) returns (FindAllEnabledRegionCountriesResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找单个国家信息
 | 
			
		||||
	rpc findEnabledRegionCountry (FindEnabledRegionCountryRequest) returns (FindEnabledRegionCountryResponse);
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	rpc findEnabledRegionCountry (FindEnabledRegionCountryRequest) returns (FindEnabledRegionCountryResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找所有的国家/地区列表
 | 
			
		||||
	rpc findAllRegionCountries (FindAllRegionCountriesRequest) returns (FindAllRegionCountriesResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找单个国家/地区信息
 | 
			
		||||
	rpc findRegionCountry (FindRegionCountryRequest) returns (FindRegionCountryResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	rpc updateRegionCountryCustom(UpdateRegionCountryCustomRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有的国家列表
 | 
			
		||||
// 查找所有的国家/地区列表
 | 
			
		||||
message FindAllEnabledRegionCountriesRequest {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -23,7 +37,7 @@ message FindAllEnabledRegionCountriesResponse {
 | 
			
		||||
	repeated RegionCountry regionCountries = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个国家信息
 | 
			
		||||
// 查找单个国家/地区信息
 | 
			
		||||
message FindEnabledRegionCountryRequest {
 | 
			
		||||
	int64 regionCountryId = 1;
 | 
			
		||||
}
 | 
			
		||||
@@ -31,3 +45,28 @@ message FindEnabledRegionCountryRequest {
 | 
			
		||||
message FindEnabledRegionCountryResponse {
 | 
			
		||||
	RegionCountry regionCountry = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有的国家/地区列表
 | 
			
		||||
message FindAllRegionCountriesRequest {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllRegionCountriesResponse {
 | 
			
		||||
	repeated RegionCountry regionCountries = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个国家/地区信息
 | 
			
		||||
message FindRegionCountryRequest {
 | 
			
		||||
	int64 regionCountryId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindRegionCountryResponse {
 | 
			
		||||
	RegionCountry regionCountry = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改国家/地区定制信息
 | 
			
		||||
message UpdateRegionCountryCustomRequest {
 | 
			
		||||
	int64 regionCountryId = 1;
 | 
			
		||||
	string customName = 2;
 | 
			
		||||
	repeated string customCodes = 3;
 | 
			
		||||
}
 | 
			
		||||
@@ -4,14 +4,28 @@ option go_package = "./pb";
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
import "models/model_region_provider.proto";
 | 
			
		||||
import "models/rpc_messages.proto";
 | 
			
		||||
 | 
			
		||||
// ISP相关服务
 | 
			
		||||
service RegionProviderService {
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	rpc findAllEnabledRegionProviders (FindAllEnabledRegionProvidersRequest) returns (FindAllEnabledRegionProvidersResponse);
 | 
			
		||||
	rpc findAllEnabledRegionProviders (FindAllEnabledRegionProvidersRequest) returns (FindAllEnabledRegionProvidersResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	rpc findEnabledRegionProvider (FindEnabledRegionProviderRequest) returns (FindEnabledRegionProviderResponse);
 | 
			
		||||
	rpc findEnabledRegionProvider (FindEnabledRegionProviderRequest) returns (FindEnabledRegionProviderResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找所有ISP
 | 
			
		||||
	rpc findAllRegionProviders (FindAllRegionProvidersRequest) returns (FindAllRegionProvidersResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找单个ISP信息
 | 
			
		||||
	rpc findRegionProvider (FindRegionProviderRequest) returns (FindRegionProviderResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改ISP定制信息
 | 
			
		||||
	rpc updateRegionProviderCustom(UpdateRegionProviderCustomRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有ISP
 | 
			
		||||
@@ -31,3 +45,28 @@ message FindEnabledRegionProviderRequest {
 | 
			
		||||
message FindEnabledRegionProviderResponse {
 | 
			
		||||
	RegionProvider regionProvider = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有ISP
 | 
			
		||||
message FindAllRegionProvidersRequest {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllRegionProvidersResponse {
 | 
			
		||||
	repeated RegionProvider regionProviders = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个ISP信息
 | 
			
		||||
message FindRegionProviderRequest {
 | 
			
		||||
	int64 regionProviderId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindRegionProviderResponse {
 | 
			
		||||
	RegionProvider regionProvider = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改ISP定制信息
 | 
			
		||||
message UpdateRegionProviderCustomRequest {
 | 
			
		||||
	int64 regionProviderId = 1;
 | 
			
		||||
	string customName = 2;
 | 
			
		||||
	repeated string customCodes = 3;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,14 +4,28 @@ option go_package = "./pb";
 | 
			
		||||
package pb;
 | 
			
		||||
 | 
			
		||||
import "models/model_region_province.proto";
 | 
			
		||||
import "models/rpc_messages.proto";
 | 
			
		||||
 | 
			
		||||
// 省份相关服务
 | 
			
		||||
service RegionProvinceService {
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	rpc findAllEnabledRegionProvincesWithCountryId (FindAllEnabledRegionProvincesWithCountryIdRequest) returns (FindAllEnabledRegionProvincesWithCountryIdResponse);
 | 
			
		||||
	rpc findAllEnabledRegionProvincesWithCountryId (FindAllEnabledRegionProvincesWithCountryIdRequest) returns (FindAllEnabledRegionProvincesWithCountryIdResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	rpc findEnabledRegionProvince (FindEnabledRegionProvinceRequest) returns (FindEnabledRegionProvinceResponse);
 | 
			
		||||
	rpc findEnabledRegionProvince (FindEnabledRegionProvinceRequest) returns (FindEnabledRegionProvinceResponse) {
 | 
			
		||||
		option deprecated = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// 查找所有省份
 | 
			
		||||
	rpc findAllRegionProvincesWithRegionCountryId (FindAllRegionProvincesWithRegionCountryIdRequest) returns (FindAllRegionProvincesWithRegionCountryIdResponse);
 | 
			
		||||
 | 
			
		||||
	// 查找单个省份信息
 | 
			
		||||
	rpc findRegionProvince (FindRegionProvinceRequest) returns (FindRegionProvinceResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改国家/地区定制信息
 | 
			
		||||
	rpc updateRegionProvinceCustom(UpdateRegionProvinceCustomRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有省份
 | 
			
		||||
@@ -31,3 +45,28 @@ message FindEnabledRegionProvinceRequest {
 | 
			
		||||
message FindEnabledRegionProvinceResponse {
 | 
			
		||||
	RegionProvince regionProvince = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找所有省份
 | 
			
		||||
message FindAllRegionProvincesWithRegionCountryIdRequest {
 | 
			
		||||
	int64 regionCountryId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindAllRegionProvincesWithRegionCountryIdResponse {
 | 
			
		||||
	repeated RegionProvince regionProvinces = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找单个省份信息
 | 
			
		||||
message FindRegionProvinceRequest {
 | 
			
		||||
	int64 regionProvinceId = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindRegionProvinceResponse {
 | 
			
		||||
	RegionProvince regionProvince = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改省份定制信息
 | 
			
		||||
message UpdateRegionProvinceCustomRequest {
 | 
			
		||||
	int64 regionProvinceId = 1;
 | 
			
		||||
	string customName = 2;
 | 
			
		||||
	repeated string customCodes = 3;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user