One-click configuration: Vless Encryption + XHTTP

This commit is contained in:
心隨緣動 2025-09-19 19:36:15 +08:00 committed by GitHub
parent 9416c8edc2
commit 42541b3496
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

49
database/history.go Normal file
View File

@ -0,0 +1,49 @@
package database
import (
"time"
)
// LinkHistory GORM aodel for link_history table
type LinkHistory struct {
Id int `gorm:"primaryKey"`
Type string `gorm:"type:varchar(255);not null"`
Link string `gorm:"type:text;not null"`
CreatedAt time.Time `gorm:"not null"`
}
// AddLinkHistory adds a new link record and trims old ones
func AddLinkHistory(record *LinkHistory) error {
// 1. Add the new record
if err := db.Create(record).Error; err != nil {
return err
}
// 2. Trim old records, keeping only the 10 most recent
var count int64
db.Model(&LinkHistory{}).Count(&count)
if count > 10 {
limit := int(count) - 10
var recordsToDelete []LinkHistory
if err := db.Order("created_at asc").Limit(limit).Find(&recordsToDelete).Error; err != nil {
return err
}
if len(recordsToDelete) > 0 {
if err := db.Delete(&recordsToDelete).Error; err != nil {
return err
}
}
}
return nil
}
// GetLinkHistory retrieves the 10 most recent link records
func GetLinkHistory() ([]*LinkHistory, error) {
var histories []*LinkHistory
err := db.Order("created_at desc").Limit(10).Find(&histories).Error
if err != nil {
return nil, err
}
return histories, nil
}