package merch import "context" type Tasks interface { getTaskData(ctx context.Context) ([]taskData, error) } func (r *repo) getTaskData(ctx context.Context) ([]taskData, error) { q := `SELECT m.merch_uuid, med.url, mo.name FROM merch AS m JOIN merch_extra_data AS med ON m.id = med.merch_id JOIN merch_origins AS mo ON mo.id = med.origin_id WHERE m.deleted_at IS NULL AND med.deleted_at IS NULL AND mo.deleted_at IS NULL ` rows, err := r.db.Query(ctx, q) if err != nil { return nil, err } var result []taskData for rows.Next() { var t taskData if err = rows.Scan(&t.MerchUuid, &t.Url, &t.OriginName); err != nil { return nil, err } result = append(result, t) } rows.Close() if err = rows.Err(); err != nil { return nil, err } return result, nil }