20 lines
596 B
Dart
20 lines
596 B
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'catalog_term.freezed.dart';
|
|
|
|
/// A controlled vocabulary entry (genre or mechanic) with both languages.
|
|
@freezed
|
|
abstract class CatalogTerm with _$CatalogTerm {
|
|
const factory CatalogTerm({
|
|
required String id,
|
|
required String nameDe,
|
|
required String nameEn,
|
|
}) = _CatalogTerm;
|
|
|
|
const CatalogTerm._();
|
|
|
|
/// German name for `de`, English for every other language (QUE-05 criterion
|
|
/// 4: English is the fallback).
|
|
String localizedName(String languageCode) =>
|
|
languageCode == 'de' ? nameDe : nameEn;
|
|
}
|