package rest import ( "context" "gorm.io/gorm" ) type ( Model interface { ModuleName() string TableName() string } FlexibleModel interface { Scenarios() []string } ActiveModel interface { OnBeforeQuery(ctx context.Context, query *Query) (err error) OnAfterQuery(ctx context.Context, query *Query) (err error) OnBeforeSave(ctx context.Context, model interface{}) (err error) OnAfterSave(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) OnBeforeCreate(ctx context.Context, model interface{}) (err error) OnAfterCreate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) OnBeforeUpdate(ctx context.Context, model interface{}) (err error) OnAfterUpdate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) OnBeforeDelete(ctx context.Context, model interface{}) (err error) OnAfterDelete(ctx context.Context, model interface{}) (err error) } BaseModel struct { ID string `json:"id" gorm:"primaryKey;size:20" comment:"ID"` CreatedAt int64 `json:"created_at" gorm:"autoCreateTime" comment:"创建时间"` UpdatedAt int64 `json:"updated_at" gorm:"autoUpdateTime" comment:"更新时间"` DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index" comment:"删除时间"` Namespace string `json:"namespace" gorm:"index;size:60;not null;default:'default'" comment:"域"` } ReadonlyModel struct { ID string `json:"id" gorm:"primaryKey;size:32" comment:"ID"` CreatedAt int64 `json:"created_at" gorm:"autoCreateTime" comment:"创建时间"` Namespace string `json:"namespace" gorm:"index;size:60;not null;default:'default'" comment:"域"` } ) func (rom *ReadonlyModel) OnBeforeQuery(ctx context.Context, query *Query) (err error) { return } func (rom *ReadonlyModel) OnAfterQuery(ctx context.Context, query *Query) (err error) { return } func (rom *ReadonlyModel) OnBeforeSave(ctx context.Context, model interface{}) (err error) { return } func (rom *ReadonlyModel) OnAfterSave(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (rom *ReadonlyModel) OnBeforeCreate(ctx context.Context, model interface{}) (err error) { return } func (rom *ReadonlyModel) OnAfterCreate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (rom *ReadonlyModel) OnBeforeUpdate(ctx context.Context, model interface{}) (err error) { return } func (rom *ReadonlyModel) OnAfterUpdate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (rom *ReadonlyModel) OnBeforeDelete(ctx context.Context, model interface{}) (err error) { return } func (rom *ReadonlyModel) OnAfterDelete(ctx context.Context, model interface{}) (err error) { return } func (bsm *BaseModel) OnBeforeQuery(ctx context.Context, query *Query) (err error) { return } func (bsm *BaseModel) OnAfterQuery(ctx context.Context, query *Query) (err error) { return } func (bsm *BaseModel) OnBeforeSave(ctx context.Context, model interface{}) (err error) { return } func (bsm *BaseModel) OnAfterSave(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (bsm *BaseModel) OnBeforeCreate(ctx context.Context, model interface{}) (err error) { return } func (bsm *BaseModel) OnAfterCreate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (bsm *BaseModel) OnBeforeUpdate(ctx context.Context, model interface{}) (err error) { return } func (bsm *BaseModel) OnAfterUpdate(ctx context.Context, model interface{}, diff []*DiffAttr) (err error) { return } func (bsm *BaseModel) OnBeforeDelete(ctx context.Context, model interface{}) (err error) { return } func (bsm *BaseModel) OnAfterDelete(ctx context.Context, model interface{}) (err error) { return }