У меня есть веб-приложение dart, использующее SDK 1.24, и я использую dson: 0.11.0 для генерации сериализуемых классов / моделей для моих объектов, которые сохраняются в базе данных firestore.
Мне нравится, как dsonсгенерированные классы дают мне возможность создать объект dart из карты или сериализовать объект dart в карту для сохранения в firebase.
При этом генератору dson требуется, чтобы мой класс модели расширил сериализуемый рефератсгенерированный класс.
Мое приложение начинает расти довольно большим, и я борюсь с невозможностью использования наследования и разработки иерархии классов.
Если я не пропустил какую-то концепцию, которую сам по себе не смог бы раскрыть, я не могу понять, как использовать наследование классов с генератором dson.
Например, вотдействительно простой пример того, что я пытаюсь сделать.
class EmploymentIncome extends Object {
String employerName;
Address employerAddress;
DateTime hireDate;
}
class SalaryIncome extends EmploymentIncome {
double annualSalary;
}
class HourlyIncome extends EmploymentIncome {
double hourlyRate;
double hoursPerWeek;
}
class hourlyPaystub extends HourlyIncome {
double yearToDateHourlyEarnings;
double hoursWorked;
DateTime payDate;
DateTime periodEndingDate;
}
class salaryPaystub extends SalaryIncome {
double yearToDateSalaryEarnings;
DateTime payDate;
DateTime periodEndingDate;
}
Проблема в том, что генератор dson требует от моих моделей расширения сгенерированного абстрактного класса, см. ниже:
@serializable
class EmploymentIncome extends _$EmploymentIncomeSerializable {
class EmploymentIncome extends Object {
String employerName;
Address employerAddress;
DateTime hireDate;
}
проблема, очевидно, в том, что теперь я не могу расширить EmploymentIncome другим сериализуемым классом dson.
Мне не хватает фундаментальной концепции или техники, которая позволила бы мне расширить эти классы, сохраняя при этом возможность конвертировать объекты dart в ис карт?
Заранее спасибо за любые указания!