Построение сложной схемы пользователя для веб-сайта
Я создал свой первый сайт, используя Django. В настоящее время у меня есть простая пользовательская модель пользователя с именем, электронной почтой и т.д. Теперь я хочу интегрировать платежный шлюз, через который пользователи смогут платить, а затем получать доступ к сайту.
Оговорка: у меня есть два типа пользователей, допустим, A и B. Пользователи типа A платят сумму, которую я с ними согласовал, поэтому я должен вручную взимать с них плату. B платит сумму в соответствии с установленными мною планами подписки. Теперь я хочу, чтобы люди типа А могли "спонсировать" пользователей из своей фирмы или своих клиентов. Пользователи типа B должны иметь возможность коллективно подавать заявки на определенное количество аккаунтов и получать скидку в зависимости от количества аккаунтов, которые они приобретут. (Я знаю, что это немного слишком сложно, но это то, что мой босс попросил от меня)
Я использую систему токен-платежей, связанную со сторонним сервисом.
У кого-нибудь есть хорошая рекомендация по схеме для этой проблемы?
Моя текущая лучшая идея для этой схемы такова
User
- Подробности (имя адрес и т.д.)
- Is Sponsor (булево поле - если пользователь является спонсором)
- Sponsored by (если пользователь не является спонсором, кто спонсирует) - внешний ключ к self
- Renew - Следует ли продлить подписку?
- Renewal Date - Обновляется каждый раз, когда подписка обновляется .
Спонсоры
- User - внешний ключ
- Токен карты
- Id карты
- Продолжительность подписки
- Сумма
Сделки (запись истории всех сделок)
- User - внешний ключ
- Duration
- Дата
- Ответ от службы шлюза (поле JSON для хранения полного ответа)
Поэтому шлюз, по сути, будет применяться только к спонсорам.