I need to save this Objects into a SQL/Drift DB, how can/should I design die Tables/Rows for an efficient mapping?
Here is are examples of a (deep)nested union class. It itself is a union class and also has a field which in itself is also a union class again.
What is the best way to deal with this?
@freezed
class TemplateDto with _$TemplateDto {
const factory TemplateDto({
required String templateID,
required String userID,
required String organisationID,
required bool shareWithOrg,
required bool shareGlobal,
required TemplateDataDto templateDataDto,
}) = _TemplateDto;
...
}
@freezed
class TemplateDataDto with _$TemplateDataDto {
const TemplateDataDto._();
const factory TemplateDataDto.templatePack({
required String templateName,
required List<String> templatesInPack,
}) = TemplatePackDto;
const factory TemplateDataDto.homeworkTemplate({
required String templateName,
required HomeworkDataDto homeworkDataDto,
}) = HomeworkTemplateDto;
const factory TemplateDataDto.XXXX({
...
}) = XXXTemplateDto;
...
}
@freezed
class HomeworkDataDto with _$HomeworkDataDto {
const HomeworkDataDto._();
const factory HomeworkDataDto.oneTimeHomework({
required String homeworkName,
required String homeworkDescription,
required bool isActive,
@JsonKey(
includeIfNull: true,
defaultValue: false,
)
required bool isPartOfMultiHomework,
required DateTime dueDate,
}) = _OneTimeHomeworkDto;
const factory HomeworkDataDto.multiOneTimeHomework({
...
}) = _MultiOneTimeHomeworkDto;
const factory HomeworkDataDto.recurringHomework({
...
}) = _RecurringHomeworkDto;
...
}