У меня есть 2 различных типа платежей, один должен получить бронирование, а другой - подписку.«Оплата бронирования принимается после того, как пользователь принимает бронирование», однако, «Оплата подписки» должна быть снята сразу после успешной проверки.Однако когда я попытался отобразить ожидающие платежи в своем приложении ANGULAR, я понял, что теперь у меня внутри одной и той же «Таблицы платежей» 2 разных типа платежей, некоторые из них недействительны, так как первая схема получает бронирование, а по другим платежам у меня естьподписка.
Я создал 2 разные схемы, но они слишком похожи, я хочу иметь хорошие методы кодирования, поэтому я хочу создать архитектуру наследования внутри своих схем Мангуста.Я также пытался использовать Schema.Types.Mixed
, но мне не нравится такой подход, поскольку я считаю его небезопасным.
СХЕМА ПЛАТЕЖЕЙ
const rentalPaymentSchema = new Schema({
fromUser: {type:Schema.Types.ObjectId, ref: 'User'},
toUser: {type:Schema.Types.ObjectId, ref: 'User'},
...
booking: {type:Schema.Types.ObjectId, ref: 'Booking'},
});
module.exports = mongoose.model('RentalPayment', rentalPaymentSchema );
СХЕМА ПОДПИСКИ
const subscriptionPaymentSchema = new Schema({
fromUser: {type:Schema.Types.ObjectId, ref: 'User'},
toUser: {type:Schema.Types.ObjectId, ref: 'User'},
...
susbscription: {type:Schema.Types.ObjectId, ref: 'Subscription'},
});
module.exports = mongoose.model('SubscriptionPayment', subscriptionPaymentSchema );
Как объединить обе схемы в одну, имеющую все общие атрибуты, а затем создать еще две схемы, которые наследуются от родительской?Заранее спасибо