2024-10-17 21:03:03 +08:00
|
|
|
package model
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
2024-10-22 00:04:17 +08:00
|
|
|
ProviderDummy = "dummy"
|
|
|
|
ProviderWebHook = "webhook"
|
|
|
|
ProviderCloudflare = "cloudflare"
|
|
|
|
ProviderTencentCloud = "tencentcloud"
|
2024-10-17 21:03:03 +08:00
|
|
|
)
|
|
|
|
|
2024-10-22 00:04:17 +08:00
|
|
|
var ProviderList = []string{
|
|
|
|
ProviderDummy, ProviderWebHook, ProviderCloudflare, ProviderTencentCloud,
|
2024-10-17 21:03:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
type DDNSProfile struct {
|
|
|
|
Common
|
2024-10-22 00:04:17 +08:00
|
|
|
EnableIPv4 *bool `json:"enable_ipv4,omitempty"`
|
|
|
|
EnableIPv6 *bool `json:"enable_ipv6,omitempty"`
|
|
|
|
MaxRetries uint64 `json:"max_retries,omitempty"`
|
|
|
|
Name string `json:"name,omitempty"`
|
|
|
|
Provider string `json:"provider,omitempty"`
|
|
|
|
AccessID string `json:"access_id,omitempty"`
|
|
|
|
AccessSecret string `json:"access_secret,omitempty"`
|
|
|
|
WebhookURL string `json:"webhook_url,omitempty"`
|
|
|
|
WebhookMethod uint8 `json:"webhook_method,omitempty"`
|
|
|
|
WebhookRequestType uint8 `json:"webhook_request_type,omitempty"`
|
|
|
|
WebhookRequestBody string `json:"webhook_request_body,omitempty"`
|
|
|
|
WebhookHeaders string `json:"webhook_headers,omitempty"`
|
|
|
|
Domains []string `json:"domains,omitempty" gorm:"-"`
|
|
|
|
DomainsRaw string `json:"domains_raw,omitempty"`
|
2024-10-17 21:03:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func (d DDNSProfile) TableName() string {
|
|
|
|
return "ddns"
|
|
|
|
}
|
|
|
|
|
|
|
|
func (d *DDNSProfile) AfterFind(tx *gorm.DB) error {
|
|
|
|
if d.DomainsRaw != "" {
|
|
|
|
d.Domains = strings.Split(d.DomainsRaw, ",")
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-10-21 14:30:50 +08:00
|
|
|
type DDNSForm struct {
|
2024-10-22 00:04:17 +08:00
|
|
|
ID uint64 `json:"id,omitempty"`
|
|
|
|
MaxRetries uint64 `json:"max_retries,omitempty"`
|
2024-10-23 21:55:12 +08:00
|
|
|
EnableIPv4 bool `json:"enable_ipv4,omitempty"`
|
|
|
|
EnableIPv6 bool `json:"enable_ipv6,omitempty"`
|
2024-10-22 00:04:17 +08:00
|
|
|
Name string `json:"name,omitempty"`
|
|
|
|
Provider string `json:"provider,omitempty"`
|
|
|
|
DomainsRaw string `json:"domains_raw,omitempty"`
|
|
|
|
AccessID string `json:"access_id,omitempty"`
|
|
|
|
AccessSecret string `json:"access_secret,omitempty"`
|
|
|
|
WebhookURL string `json:"webhook_url,omitempty"`
|
|
|
|
WebhookMethod uint8 `json:"webhook_method,omitempty"`
|
|
|
|
WebhookRequestType uint8 `json:"webhook_request_type,omitempty"`
|
|
|
|
WebhookRequestBody string `json:"webhook_request_body,omitempty"`
|
|
|
|
WebhookHeaders string `json:"webhook_headers,omitempty"`
|
2024-10-21 14:30:50 +08:00
|
|
|
}
|