Это все зависит от действий, которые ваши пользователи должны будут выполнять в соответствии с расписанием.
Если ваша цель - просто отобразить расписание, нет необходимости сохранять весь массив дат / платежей / и т. Д. Просто сохраните дату начала / окончания, интервал оплаты, сумму кредита, процентную ставку и сумму платежа. Построить фактический график с учетом этой информации несложно.
Если ваши пользователи должны иметь возможность комментировать определенные элементы в расписании, подумайте, какие свойства каждого элемента могли бы дать хорошие уникальные идентификаторы (подсказка: заем + дата элемента). Оттуда ваши модели должны легко всплыть:
class ScheduleItem
{
date dueDate;
float paymentAmount;
string annotations;
bool isPaid;
...
}
class Schedule
{
int loanId;
date startDate;
date endDate;
...
}
Если вы решили, что вам нужны модели (для сохранения или просто для генерации представлений), представляющие расписание , начните с самой простой возможной реализации и продолжите оттуда . Скорее всего, у вас проблемы с началом работы, потому что вы пытаетесь включить каждую переменную с самого начала. Будь проще. Бросай дела.