109 lines
3.5 KiB
Go
109 lines
3.5 KiB
Go
package store
|
|
|
|
import "time"
|
|
|
|
type Subscription struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
Type string `json:"type"`
|
|
IntervalSec int `json:"interval_sec"`
|
|
Enabled bool `json:"enabled"`
|
|
LastFetchAt *time.Time `json:"last_fetch_at,omitempty"`
|
|
LastError string `json:"last_error,omitempty"`
|
|
NodeCount int `json:"node_count"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type APIKey struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
KeyPrefix string `json:"key_prefix"`
|
|
Enabled bool `json:"enabled"`
|
|
LastUsedAt *time.Time `json:"last_used_at,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type ProxyNode struct {
|
|
ID int64 `json:"id"`
|
|
SubscriptionID *int64 `json:"subscription_id,omitempty"`
|
|
Name string `json:"name"`
|
|
RuntimeName string `json:"runtime_name"`
|
|
Type string `json:"type"`
|
|
RawConfig string `json:"raw_config"`
|
|
Source string `json:"source"`
|
|
Enabled bool `json:"enabled"`
|
|
Country string `json:"country"`
|
|
LatencyMs int `json:"latency_ms"`
|
|
Alive bool `json:"alive"`
|
|
CheckedAt *time.Time `json:"checked_at,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type Rule struct {
|
|
ID int64 `json:"id"`
|
|
Priority int `json:"priority"`
|
|
RuleType string `json:"rule_type"`
|
|
Payload string `json:"payload"`
|
|
Target string `json:"target"`
|
|
Source string `json:"source"`
|
|
SubscriptionID *int64 `json:"subscription_id,omitempty"`
|
|
Enabled bool `json:"enabled"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ProxyGroup struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
RuntimeName string `json:"runtime_name"`
|
|
Type string `json:"type"`
|
|
Proxies string `json:"proxies"`
|
|
Source string `json:"source"`
|
|
SubscriptionID *int64 `json:"subscription_id,omitempty"`
|
|
Enabled bool `json:"enabled"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type AuditLog struct {
|
|
ID int64 `json:"id"`
|
|
Action string `json:"action"`
|
|
Resource string `json:"resource"`
|
|
Detail string `json:"detail"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type RequestLog struct {
|
|
ID int64 `json:"id"`
|
|
Level string `json:"level"`
|
|
Source string `json:"source"`
|
|
Message string `json:"message"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type MergedRule struct {
|
|
Priority int `json:"priority"`
|
|
Rule string `json:"rule"`
|
|
Source string `json:"source"`
|
|
}
|
|
|
|
type ProxyRequestLog struct {
|
|
ID int64 `json:"id"`
|
|
Host string `json:"host"`
|
|
Network string `json:"network"`
|
|
RuleType string `json:"rule_type"`
|
|
RulePayload string `json:"rule_payload"`
|
|
RuleLine string `json:"rule_line"`
|
|
OutboundNode string `json:"outbound_node"`
|
|
OutboundChain string `json:"outbound_chain"`
|
|
Upload int64 `json:"upload"`
|
|
Download int64 `json:"download"`
|
|
Success bool `json:"success"`
|
|
StartedAt time.Time `json:"started_at"`
|
|
EndedAt time.Time `json:"ended_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|