github.com/mysteriumnetwork/node@v0.0.0-20240516044423-365054f76801/market/location.go (about) 1 /* 2 * Copyright (C) 2017 The "MysteriumNetwork/node" Authors. 3 * 4 * This program is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 package market 19 20 import "github.com/mysteriumnetwork/node/core/location/locationstate" 21 22 // Location struct represents geographic location of service provider 23 type Location struct { 24 Continent string `json:"continent,omitempty"` 25 Country string `json:"country,omitempty"` 26 Region string `json:"region,omitempty"` 27 City string `json:"city,omitempty"` 28 ASN int `json:"asn,omitempty"` 29 ISP string `json:"isp,omitempty"` 30 IPType string `json:"ip_type,omitempty"` 31 } 32 33 // NewLocation creates a new Location. 34 func NewLocation(loc locationstate.Location) *Location { 35 return &Location{ 36 Continent: loc.Continent, 37 Country: loc.Country, 38 Region: loc.Region, 39 City: loc.City, 40 ASN: loc.ASN, 41 ISP: loc.ISP, 42 IPType: loc.IPType, 43 } 44 }