Skip to content

Conversation

@impatient0
Copy link
Owner

Описание

Данный Pull Request реализует базовые компоненты, необходимые для функционала "Комментарии" (Этап 3). Он закладывает основу для дальнейшей разработки CRUD-операций и API для комментариев.

Ключевые изменения:

  1. Обновление сущности Event:

    • Добавлено поле commentsEnabled (boolean, default: true) для управления возможностью комментирования события.
    • Поле compilations теперь использует @Builder.Default для корректной инициализации билдером.
  2. Новая сущность Comment:

    • Создана JPA-сущность Comment со всеми необходимыми полями: id, text, createdOn (@CreatedDate), updatedOn (@LastModifiedDate), isEdited, isDeleted (@Builder.Default).
    • Настроены обязательные связи @ManyToOne с User (автор) и Event (событие).
    • Реализовано каскадное удаление комментариев (ON DELETE CASCADE) при удалении связанных пользователей или событий на уровне схемы БД и через Hibernate @OnDelete.
  3. Data Transfer Objects (DTO) для комментариев:

    • NewCommentDto: для создания нового комментария (содержит text с валидацией).
    • UpdateCommentDto: для обновления текста комментария (содержит text с валидацией).
    • CommentDto: для отображения информации о комментарии (включает id, text, author (как UserShortDto), eventId, createdOn, updatedOn, isEdited).
  4. Репозиторий:

    • Создан интерфейс CommentRepository extends JpaRepository<Comment, Long>.
  5. Маппер (MapStruct):

    • Создан интерфейс CommentMapper для преобразования между Comment, CommentDto и NewCommentDto.
    • Использует UserMapper для маппинга информации об авторе.
  6. Обновление схемы БД (schema.sql):

    • Добавлена колонка comments_enabled в таблицу events.
    • Создана таблица comments со всеми полями, ограничениями и внешними ключами (включая ON DELETE CASCADE).
  7. Конфигурация JPA Auditing:

    • Убедился в наличии @EnableJpaAuditing для корректной работы @CreatedDate и @LastModifiedDate.

Copy link
Collaborator

@progingir progingir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вроде все четко

@impatient0 impatient0 merged commit 6da7fbe into feature May 28, 2025
2 checks passed
@impatient0 impatient0 deleted the feature_ivan_comments-core branch May 28, 2025 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants