package repository import ( "context" "gorm.io/gorm" "github.com/gochat/gochat/internal/model" ) // WidgetTestRepo provides data access for WidgetTest. // Reference: Chatwoot WidgetTest — read-only resource for widget/UI integration testing. type WidgetTestRepo struct { db *gorm.DB } // NewWidgetTestRepo creates a new WidgetTestRepo. func NewWidgetTestRepo(db *gorm.DB) *WidgetTestRepo { return &WidgetTestRepo{db: db} } // ListAll returns all widget test scenarios, ordered by type then name. func (r *WidgetTestRepo) ListAll(ctx context.Context) ([]model.WidgetTest, error) { var tests []model.WidgetTest err := r.db.WithContext(ctx). Order("type ASC, name ASC"). Find(&tests).Error return tests, err } // ListByType returns widget test scenarios filtered by type. func (r *WidgetTestRepo) ListByType(ctx context.Context, typ string) ([]model.WidgetTest, error) { var tests []model.WidgetTest err := r.db.WithContext(ctx). Where("type = ?", typ). Order("name ASC"). Find(&tests).Error return tests, err }