package model import ( "context" "gorm.io/gorm" ) type ( jobList2Model interface { Insert(ctx context.Context, data *JobList2) error Update(ctx context.Context, jobId string, updates map[string]any) error Delete(ctx context.Context, jobId string) error FindOne(ctx context.Context, jobId string) (*JobList2, error) FindTitle(ctx context.Context, title string) (*JobList2, error) } JobList2 struct { updates map[string]any JobId string `gorm:"column:job_id"` Title string `gorm:"column:title"` } defaultJobList2Model struct { db *gorm.DB } ) func (s *JobList2) TableName() string { return "job_list2" } func NewJobList2() *JobList2 { return &JobList2{ updates: make(map[string]any), } } func (s *JobList2) SetJobId(jobId string) *JobList2 { s.JobId = jobId s.set("job_id", jobId) return s } func (s *JobList2) SetTitle(title string) *JobList2 { s.Title = title s.set("title", title) return s } func (s *JobList2) set(key string, val any) { s.updates[key] = val } func (s *JobList2) UpdateColumn() map[string]any { return s.updates } func newJobList2DAO(db *gorm.DB) *defaultJobList2Model { return &defaultJobList2Model{ db: db, } } func (s *defaultJobList2Model) Insert(ctx context.Context, data *JobList2) error { return s.db.Create(data).Error } func (s *defaultJobList2Model) Update(ctx context.Context, jobId string, updates map[string]any) error { return s.db.Model(JobList2{}).Where("job_id=?", jobId).Updates(updates).Error } func (s *defaultJobList2Model) Delete(ctx context.Context, jobId string) error { return s.db.Where("job_id=?", jobId).Delete(&JobList2{}).Error } func (s *defaultJobList2Model) FindOne(ctx context.Context, jobId string) (*JobList2, error) { row := JobList2{} err := s.db.Where("job_id=?", jobId).Find(&row).Error return findResultWithError(&row, err) } func (s *defaultJobList2Model) FindTitle(ctx context.Context, title string) (*JobList2, error) { row := JobList2{} err := s.db.Where("title=?", title).Find(&row).Error return findResultWithError(&row, err) }