Пока не стали городить наборы дто с тегами, enum, и прочую полиморфность. Лишь обозначили места где её надо будет вводить, и ушли от явного указания всех необходимых репозиториев.
Ну, в общем оно готово. Надо подумать можем ли мы здесь сделать какой-нибудь недолгий и простой рефакторинг, или оставляем так до tndt-114 или появления еще какой-нибудь wiki ссылки
Выделили изменения в ветку tndt-173-refactor, не думаю .что стоит сейчас так все усложнять. Лучше оставим на потом, когда и видов ссылок станет больше, и их сборка хитрее и цели более стоящие.
В итоге, чтобы не тянуть еще один репозиторий в WikiService занялся глобальный рефакторингом, с выдление dto WikiLink, хранящем регулярки, инфу о том какая информация лежит в ссылке, как из неё построить Spec, или обратно ссылку. Последнее, впрочем требует сервисы, и попытка размазать это между дто и сервисом сделала контракт дто слишком подробным, а систему запутанной. Кажется надо таки делат отдельные обработчики для разных типов в виде сервисов. (или фабрик)
вобще идея с полными ссылками вида [r:tndt:12] - шикарна. Проблема в том, что старый сокращенный формат не только WikiService прерогатива, он вобще зашит в сущности, чтобы сущность без чужой помощи его формировала. Кажется пришло время выносить его, может в enum, может еще куда.
Второй вариант кажется логичным, но тогда надо сделать его универсальным, т.е. [t:tndt:123], [d:tndt:35], [r:tndt:13], [c:tndt:26], [pn:tndt:5], что в целом не лишено смысла, будет неким универсальным синтаксисом ссылания на любую сущность внутри проекта. а существуюзщие сейчас tndt-123 и tndt#35 будут некими сокращениями для часто используемых ссылок.
Пока не стали городить наборы дто с тегами, enum, и прочую полиморфность. Лишь обозначили места где её надо будет вводить, и ушли от явного указания всех необходимых репозиториев.