Koc
Новичок
Есть комментарии к: топику, торговой марке, встрече, фотке встречи, месту, пользователю. Все это хранится в одной таблице, используется паттерн STI. Операции, производимые над комментариями в общем-то одинаковые - CRUD, без U.
Но есть отличия:
1) в целом комментарий может удалять владелец комментируемого объекта или автор комментария, при условии, что на коммент не поступало ответа. Но у торговых марок нет автора, стало быть условие несколько другое. Причем проверять это условие нужно не только перед удалением, но и при рендеринге - что б лишний раз не показывать кнопку
2) после создания/удаления комментария будут происходить разные действия. Где-то нужно обновить информацию у родительского объекта, где-то нужно кого-то подписать (новостная лента) на объект, или опубликовать новость в ленту. При этом комментарии к встрече и топику будут вещать на разные каналы. Более того, топики бывают разных видов: топик района, топик группы, общий топик - здесь тоже могут быть разные каналы. А еще нужно отправлять письмо со ссылкой на комментируемый объект - для этого могут понадобиться какие-то дополнительные данные - подргузить группу/район/фотку и саму встречу.
3) понятное дело вывод может быть разным
Как бы напрашивается стратегия, но не получается ее реализовать в данном контексте. Слишком много всего. Что посоветуете?
Но есть отличия:
1) в целом комментарий может удалять владелец комментируемого объекта или автор комментария, при условии, что на коммент не поступало ответа. Но у торговых марок нет автора, стало быть условие несколько другое. Причем проверять это условие нужно не только перед удалением, но и при рендеринге - что б лишний раз не показывать кнопку
2) после создания/удаления комментария будут происходить разные действия. Где-то нужно обновить информацию у родительского объекта, где-то нужно кого-то подписать (новостная лента) на объект, или опубликовать новость в ленту. При этом комментарии к встрече и топику будут вещать на разные каналы. Более того, топики бывают разных видов: топик района, топик группы, общий топик - здесь тоже могут быть разные каналы. А еще нужно отправлять письмо со ссылкой на комментируемый объект - для этого могут понадобиться какие-то дополнительные данные - подргузить группу/район/фотку и саму встречу.
3) понятное дело вывод может быть разным
Как бы напрашивается стратегия, но не получается ее реализовать в данном контексте. Слишком много всего. Что посоветуете?