package logmessage import ( "context" "gorm.io/gorm" ) type ( Model interface { logMessageModel customLogMessageModel } logMessageModel interface { Insert(ctx context.Context, data *LogMessage) error FindOne(ctx context.Context, id int64) (*LogMessage, error) Update(ctx context.Context, data *LogMessage) error Delete(ctx context.Context, id int64) error } customModel struct{ *defaultModel } defaultModel struct{ *gorm.DB } ) func newDefaultModel(db *gorm.DB) *defaultModel { return &defaultModel{DB: db} } func (m *defaultModel) Insert(ctx context.Context, data *LogMessage) error { return m.WithContext(ctx).Create(data).Error } func (m *defaultModel) FindOne(ctx context.Context, id int64) (*LogMessage, error) { var v LogMessage err := m.WithContext(ctx).Where("id = ?", id).First(&v).Error if err != nil { return nil, err } return &v, nil } func (m *defaultModel) Update(ctx context.Context, data *LogMessage) error { return m.WithContext(ctx).Where("`id` = ?", data.Id).Save(data).Error } func (m *defaultModel) Delete(ctx context.Context, id int64) error { return m.WithContext(ctx).Where("`id` = ?", id).Delete(&LogMessage{}).Error }