package repository import ( "context" "github.com/gochat/gochat/internal/model" "gorm.io/gorm" ) // CaptainPreferenceRepo provides data access for CaptainPreference. type CaptainPreferenceRepo struct { db *gorm.DB } func NewCaptainPreferenceRepo(db *gorm.DB) *CaptainPreferenceRepo { return &CaptainPreferenceRepo{db: db} } func (r *CaptainPreferenceRepo) Create(ctx context.Context, pref *model.CaptainPreference) error { return r.db.WithContext(ctx).Create(pref).Error } func (r *CaptainPreferenceRepo) GetByAccountID(ctx context.Context, accountID uint) (*model.CaptainPreference, error) { var pref model.CaptainPreference if err := r.db.WithContext(ctx).Where("account_id = ?", accountID).First(&pref).Error; err != nil { return nil, err } return &pref, nil } func (r *CaptainPreferenceRepo) Update(ctx context.Context, pref *model.CaptainPreference) error { return r.db.WithContext(ctx).Save(pref).Error } func (r *CaptainPreferenceRepo) Delete(ctx context.Context, accountID uint) error { return r.db.WithContext(ctx).Where("account_id = ?", accountID).Delete(&model.CaptainPreference{}).Error }