core/database/session.go
2024-07-04 10:06:46 +07:00

30 lines
929 B
Go

package database
import (
"context"
"time"
"github.com/uptrace/bun"
)
type Session struct {
ID int64 `bun:",pk,autoincrement"`
IssuerID int32 `bun:",notnull" json:"issuerId"`
Issuer *User `bun:"rel:belongs-to,join:issuer_id=id" json:"issuer"`
Configuration map[string]interface{} `bun:"type:jsonb" json:"configuration"`
CreatedAt time.Time `bun:",notnull,default:current_timestamp" json:"createdAt"`
FinishedAt time.Time `json:"finishedAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt time.Time `bun:",soft_delete,nullzero" json:"deletedAt"`
}
var _ bun.BeforeAppendModelHook = (*Session)(nil)
func (s *Session) BeforeAppendModel(ctx context.Context, query bun.Query) error {
switch query.(type) {
case *bun.UpdateQuery:
s.UpdatedAt = time.Now()
}
return nil
}