upda/server/entity.go

57 lines
1.7 KiB
Go
Raw Normal View History

2023-12-21 16:04:04 +00:00
package server
import (
"github.com/google/uuid"
"gorm.io/gorm"
"time"
)
func (u *Update) BeforeCreate(tx *gorm.DB) (err error) {
u.ID = uuid.New()
return
}
func (wh *Webhook) BeforeCreate(tx *gorm.DB) (err error) {
wh.ID = uuid.New()
return
}
func (e *Event) BeforeCreate(tx *gorm.DB) (err error) {
e.ID = uuid.New()
return
}
// Update entity holding information for updates
type Update struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;unique;not null"`
Application string `gorm:"uniqueIndex:idx_a_p_h;not null"`
Provider string `gorm:"uniqueIndex:idx_a_p_h;not null"`
Host string `gorm:"uniqueIndex:idx_a_p_h;not null"`
Version string `gorm:"not null"`
State string `gorm:"not null"`
Metadata JSONMap `gorm:"jsonb"`
CreatedAt time.Time `gorm:"time;autoCreateTime;not null"`
UpdatedAt time.Time `gorm:"time;autoUpdateTime;not null"`
}
// Webhook entity holding information for webhooks
type Webhook struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;unique;not null"`
Type string `gorm:"not null"`
Label string `gorm:"not null"`
Token string `gorm:"not null"`
IgnoreHost bool `gorm:"default:false;not null"`
CreatedAt time.Time `gorm:"time;autoCreateTime;not null"`
UpdatedAt time.Time `gorm:"time;autoUpdateTime;not null"`
}
// Event entity holding information for events
type Event struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;unique;not null"`
Name string `gorm:"not null"`
State string `gorm:"not null"`
Payload JSONMap `gorm:"jsonb"`
CreatedAt time.Time `gorm:"time;autoCreateTime;not null"`
UpdatedAt time.Time `gorm:"time;autoUpdateTime;not null"`
}