}
// GetDatasetType returns the type of a dataset
// Returns: (type, exists, error)
func GetDatasetType(db *sql.DB, datasetID string) (string, bool, error) {
var datasetType string
err := db.QueryRow("SELECT type FROM dataset WHERE id = ?", datasetID).Scan(&datasetType)
if err == sql.ErrNoRows {
return "", false, nil
}
if err != nil {
return "", false, err
}
return datasetType, true, nil
}
// ValidateDatasetTypeForImport checks that a dataset is 'structured' type for file imports
// Returns error if dataset doesn't exist or is not 'structured'
func ValidateDatasetTypeForImport(db *sql.DB, datasetID string) error {
datasetType, exists, err := GetDatasetType(db, datasetID)
if err != nil {
return fmt.Errorf("failed to query dataset type: %w", err)
}
if !exists {
return fmt.Errorf("dataset not found: %s", datasetID)
}
if datasetType != "structured" {
return fmt.Errorf("dataset '%s' is type '%s' - file imports only support 'structured' datasets", datasetID, datasetType)
}
return nil