Всем привет! Разрабатываю приложение на asp.core для работы с заявками. Пытаюсь применить DDD.
Возникает неуверенность в некоторых решениях. Попробую коротко описать сущности.
Есть два основных агрегата `User` и `Ticket`
```
```
public class User
{
public UserId Id { get; private set; }
public FullName FullName { get; private set; }
public DateTime BirthDate { get; private set; }
public Group Group { get; private set; }
...
}
public class Ticket
{
public TicketId { get; private set; }
public Group Group { get; private set; }
...
}
`Group` это справочник который хранится в другой БД и изменятся другим приложением. Его я сделал как Entity, содержит Id и Name. В `User` это поле определяет к какой группе относится пользователь. В `Ticket` определят на какую группу назначена заявка. В `Ticket` таких справочников несколько.
Возникли вопросы:
**1.**Правильно ли что `Group` это Entity? Думал сделать его и другие справочники как ValueObject, но читал что объекты значения не принято хранить в отдельных таблицах. И мне необходимо в агрегатах, фактически (в БД) хранить только GroupId, чтобы после изменения в справочнике `Group`, в агрегатах получать измененное значение.
**2.**Если `Group` все таки Entity, то как мне ссылаться на нее в двух агрегатах? Выносить ее в отдельный агрегат, кажется неправильным. Как вариант, думал для `Ticket` создать Entity `TicketGroup`, но по факту через репозиторий возвращать одни и те же данный с одной таблицы