tank/code/rest/preference_model.go
2022-03-15 02:17:26 +08:00

66 lines
2.3 KiB
Go

package rest
import (
jsoniter "github.com/json-iterator/go"
"time"
)
type Preference struct {
Uuid string `json:"uuid" gorm:"type:char(36);primary_key;unique"`
Sort int64 `json:"sort" gorm:"type:bigint(20) not null"`
UpdateTime time.Time `json:"updateTime" gorm:"type:timestamp not null;default:CURRENT_TIMESTAMP"`
CreateTime time.Time `json:"createTime" gorm:"type:timestamp not null;default:'2018-01-01 00:00:00'"`
Name string `json:"name" gorm:"type:varchar(45)"`
LogoUrl string `json:"logoUrl" gorm:"type:varchar(255)"`
FaviconUrl string `json:"faviconUrl" gorm:"type:varchar(255)"`
Copyright string `json:"copyright" gorm:"type:varchar(1024)"`
Record string `json:"record" gorm:"type:varchar(1024)"`
DownloadDirMaxSize int64 `json:"downloadDirMaxSize" gorm:"type:bigint(20) not null;default:-1"`
DownloadDirMaxNum int64 `json:"downloadDirMaxNum" gorm:"type:bigint(20) not null;default:-1"`
DefaultTotalSizeLimit int64 `json:"defaultTotalSizeLimit" gorm:"type:bigint(20) not null;default:-1"`
AllowRegister bool `json:"allowRegister" gorm:"type:tinyint(1) not null;default:0"`
PreviewConfig string `json:"previewConfig" gorm:"type:text"`
ScanConfig string `json:"scanConfig" gorm:"type:text"`
DeletedKeepDays int64 `json:"deletedKeepDays" gorm:"type:bigint(20) not null;default:7"`
Version string `json:"version" gorm:"-"`
}
const (
//scan scope all.
SCAN_SCOPE_ALL = "ALL"
//scan scope custom.
SCAN_SCOPE_CUSTOM = "CUSTOM"
)
//scan config struct.
type ScanConfig struct {
//whether enable the scan task.
Enable bool `json:"enable"`
//when to process the task. five fields. @every 1s
Cron string `json:"cron"`
//username
Usernames []string `json:"usernames"`
//scan scope. see SCAN_SCOPE
Scope string `json:"scope"`
}
//fetch the scan config
func (this *Preference) FetchScanConfig() *ScanConfig {
json := this.ScanConfig
if json == "" || json == EMPTY_JSON_MAP {
return &ScanConfig{
Enable: false,
}
} else {
m := &ScanConfig{}
err := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal([]byte(json), &m)
if err != nil {
panic(err)
}
return m
}
}