🎨 Optimize storage logic
This commit is contained in:
63
internal/models/sync.go
Normal file
63
internal/models/sync.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// AuthMethod 定义Git认证方式
|
||||
type AuthMethod string
|
||||
|
||||
const (
|
||||
Token AuthMethod = "token" // 个人访问令牌
|
||||
SSHKey AuthMethod = "ssh_key" // SSH密钥
|
||||
UserPass AuthMethod = "user_pass" // 用户名密码
|
||||
)
|
||||
|
||||
// SyncStrategy 定义同步策略
|
||||
type SyncStrategy string
|
||||
|
||||
const (
|
||||
// LocalFirst 本地优先:如有冲突,保留本地修改
|
||||
LocalFirst SyncStrategy = "local_first"
|
||||
// RemoteFirst 远程优先:如有冲突,采用远程版本
|
||||
RemoteFirst SyncStrategy = "remote_first"
|
||||
)
|
||||
|
||||
// GitSyncConfig 保存Git同步的配置信息
|
||||
type GitSyncConfig struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
RepoURL string `json:"repo_url"`
|
||||
Branch string `json:"branch"`
|
||||
AuthMethod AuthMethod `json:"auth_method"`
|
||||
Username string `json:"username,omitempty"`
|
||||
Password string `json:"password,omitempty"`
|
||||
Token string `json:"token,omitempty"`
|
||||
SSHKeyPath string `json:"ssh_key_path,omitempty"`
|
||||
SSHKeyPassphrase string `json:"ssh_key_passphrase,omitempty"`
|
||||
SyncInterval int `json:"sync_interval"` // 同步间隔(分钟)
|
||||
LastSyncTime time.Time `json:"last_sync_time"`
|
||||
AutoSync bool `json:"auto_sync"` // 是否启用自动同步
|
||||
LocalRepoPath string `json:"local_repo_path"`
|
||||
SyncStrategy SyncStrategy `json:"sync_strategy"` // 合并冲突策略
|
||||
FilesToSync []string `json:"files_to_sync"` // 要同步的文件列表,默认为数据库文件
|
||||
}
|
||||
|
||||
// GitSyncStatus 保存同步状态信息
|
||||
type GitSyncStatus struct {
|
||||
IsSyncing bool `json:"is_syncing"`
|
||||
LastSyncTime time.Time `json:"last_sync_time"`
|
||||
LastSyncStatus string `json:"last_sync_status"` // success, failed, conflict
|
||||
LastErrorMsg string `json:"last_error_msg,omitempty"`
|
||||
LastCommitID string `json:"last_commit_id,omitempty"`
|
||||
RemoteCommitID string `json:"remote_commit_id,omitempty"`
|
||||
CommitAhead int `json:"commit_ahead"` // 本地领先远程的提交数
|
||||
CommitBehind int `json:"commit_behind"` // 本地落后远程的提交数
|
||||
}
|
||||
|
||||
// SyncLogEntry 记录每次同步操作的日志
|
||||
type SyncLogEntry struct {
|
||||
ID int64 `json:"id"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Action string `json:"action"` // push, pull, reset
|
||||
Status string `json:"status"` // success, failed
|
||||
Message string `json:"message,omitempty"`
|
||||
ChangedFiles int `json:"changed_files"`
|
||||
}
|
Reference in New Issue
Block a user