mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 21:41:55 +00:00
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package entities
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
const (
|
|
IntegrationAPIKeyStatusActive = "active"
|
|
IntegrationAPIKeyStatusRevoked = "revoked"
|
|
)
|
|
|
|
type IntegrationAPIKey struct {
|
|
ID uint `gorm:"primaryKey"`
|
|
Name string `gorm:"type:varchar(100);not null"`
|
|
Environment string `gorm:"type:varchar(50);not null;uniqueIndex:idx_integration_api_keys_env_prefix,priority:1"`
|
|
Status string `gorm:"type:varchar(20);not null;default:active;index"`
|
|
KeyPrefix string `gorm:"type:varchar(64);not null;uniqueIndex:idx_integration_api_keys_env_prefix,priority:2"`
|
|
KeyHash string `gorm:"type:text;not null"`
|
|
PermissionCodes []string `gorm:"type:jsonb;serializer:json;not null"`
|
|
AllArea bool `gorm:"not null;default:false"`
|
|
AreaIDs []uint `gorm:"type:jsonb;serializer:json;not null"`
|
|
AllLocation bool `gorm:"not null;default:false"`
|
|
LocationIDs []uint `gorm:"type:jsonb;serializer:json;not null"`
|
|
LastUsedAt *time.Time
|
|
LastUsedFrom string `gorm:"type:varchar(128)"`
|
|
RevokedAt *time.Time
|
|
CreatedAt time.Time `gorm:"autoCreateTime"`
|
|
UpdatedAt time.Time `gorm:"autoUpdateTime"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
|
}
|
|
|
|
func (IntegrationAPIKey) TableName() string {
|
|
return "integration_api_keys"
|
|
}
|