Order имеет много Contracts
initial Contract имеет много prolongation Contracts
initial Contract может иметь много StayPeriods, но по хорошему должен иметь только один StayPeriod
после создания initial Contract и вселения в пансионат создаётся StayPeriod, который впоследствии связан с initial Contract лишь внешним ключом: StayPeriod имеет свой pansion_id и contract_id, а initial Contract имеет свои и они могут быть изменены независимо друг от друга
prolongation Contract не имеет StayPeriods (в просмотре контракта отображается StayPeriod от initial Contract)