laravel — Где находится «Биллинг»? принадлежать к проекту DDD PHP?

Я создаю новое приложение SaaS и хочу следовать принципам DDD.

Я на этапе, когда я делаю наброски идей, и я столкнулся с этой проблемой. Я надеюсь, что люди могут дать мне некоторые мысли. Я не думаю, что это обязательно правильно или неправильно с этим. Но я хотел бы услышать ваши мысли …

По сути, я не уверен, куда относится биллинг и как его лучше всего реализовать.

Я не знаю, должен ли пользователь знать интерфейс биллинга. Ответственность за проведение выставления счетов лежит на пользователях?

Я думаю, что для пользователя справедливо знать, есть ли у него подписка, но не как она была реализована.

На этом этапе я думаю, что уровень домена будет указывать BillingInterace, а реализация будет жить на уровне инфраструктуры. (Я буду использовать Stripe для начала)

Вы бы создали службу биллинга и передали бы пользовательскую сущность, чтобы создать учетную запись клиента на полосе и выполнить функцию биллинга?

Или вы бы закодировали признак, который сбрасывается на сущность пользователя, чтобы пользователь мог выставлять счета самостоятельно ($ user-> charge () — или что-то еще).

Надеюсь, что это имеет смысл. Я просто собираюсь поделиться некоторыми идеями, поскольку я не могу найти приличного руководства онлайн с этим материалом.

Спасибо!!
подветренный

1

Решение

Ответственность за проведение выставления счетов лежит на пользователях?

Я так не думаю.

На этом этапе я думаю, что уровень домена будет указывать BillingInterace, а реализация будет жить на уровне инфраструктуры.

Является ли биллинг частью домена (бизнеса)? Если да, то это должно быть там.

Может быть, биллинг может быть совокупный корень или доменная служба. Заглянуть в этот пост, в котором Заказ на покупку (совокупность) может быть вашим биллингом. И в этот, это объясняет доменные службы.

2

Другие решения

Других решений пока нет …