Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'database')
-rw-r--r--database/db.go4
-rw-r--r--database/model/model.go12
2 files changed, 14 insertions, 2 deletions
diff --git a/database/db.go b/database/db.go
index 6b579dd9..2e468587 100644
--- a/database/db.go
+++ b/database/db.go
@@ -38,6 +38,7 @@ func initModels() error {
&model.InboundClientIps{},
&xray.ClientTraffic{},
&model.HistoryOfSeeders{},
+ &model.CustomGeoResource{},
}
for _, model := range models {
if err := db.AutoMigrate(model); err != nil {
@@ -175,9 +176,8 @@ func GetDB() *gorm.DB {
return db
}
-// IsNotFound checks if the given error is a GORM record not found error.
func IsNotFound(err error) bool {
- return err == gorm.ErrRecordNotFound
+ return errors.Is(err, gorm.ErrRecordNotFound)
}
// IsSQLiteDB checks if the given file is a valid SQLite database by reading its signature.
diff --git a/database/model/model.go b/database/model/model.go
index 6225df52..63f4a1b4 100644
--- a/database/model/model.go
+++ b/database/model/model.go
@@ -104,6 +104,18 @@ type Setting struct {
Value string `json:"value" form:"value"`
}
+type CustomGeoResource struct {
+ Id int `json:"id" gorm:"primaryKey;autoIncrement"`
+ Type string `json:"type" gorm:"not null;uniqueIndex:idx_custom_geo_type_alias;column:geo_type"`
+ Alias string `json:"alias" gorm:"not null;uniqueIndex:idx_custom_geo_type_alias"`
+ Url string `json:"url" gorm:"not null"`
+ LocalPath string `json:"localPath" gorm:"column:local_path"`
+ LastUpdatedAt int64 `json:"lastUpdatedAt" gorm:"default:0;column:last_updated_at"`
+ LastModified string `json:"lastModified" gorm:"column:last_modified"`
+ CreatedAt int64 `json:"createdAt" gorm:"autoCreateTime;column:created_at"`
+ UpdatedAt int64 `json:"updatedAt" gorm:"autoUpdateTime;column:updated_at"`
+}
+
// Client represents a client configuration for Xray inbounds with traffic limits and settings.
type Client struct {
ID string `json:"id"` // Unique client identifier