feat(server): support comment notification type (#12924)

#### PR Dependency Tree


* **PR #12924** 👈
  * **PR #12925**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Introduced comment and comment mention notifications, including email
notifications when users are mentioned or receive comments on documents.
* Added new email templates for comment and comment mention
notifications.
* Users can now control whether they receive comment-related emails via
a new user setting.

* **Bug Fixes**
  * None.

* **Documentation**
* Updated GraphQL schema documentation to reflect new notification types
and user settings.

* **Refactor**
* Streamlined and enhanced test coverage for notification and user
settings, including comment notifications.

* **Chores**
* Improved test setup and snapshot coverage for user settings and
notifications.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
fengmk2
2025-07-01 21:48:06 +08:00
committed by GitHub
parent 2aa5c13082
commit 7ed72ed1d0
23 changed files with 916 additions and 255 deletions

View File

@@ -1896,6 +1896,8 @@ export interface NotificationObjectTypeEdge {
/** Notification type */
export enum NotificationType {
Comment = 'Comment',
CommentMention = 'CommentMention',
Invitation = 'Invitation',
InvitationAccepted = 'InvitationAccepted',
InvitationBlocked = 'InvitationBlocked',
@@ -2530,6 +2532,8 @@ export interface UpdateUserInput {
}
export interface UpdateUserSettingsInput {
/** Receive comment email */
receiveCommentEmail?: InputMaybe<Scalars['Boolean']['input']>;
/** Receive invitation email */
receiveInvitationEmail?: InputMaybe<Scalars['Boolean']['input']>;
/** Receive mention email */
@@ -2589,6 +2593,8 @@ export interface UserQuotaUsageType {
export interface UserSettingsType {
__typename?: 'UserSettingsType';
/** Receive comment email */
receiveCommentEmail: Scalars['Boolean']['output'];
/** Receive invitation email */
receiveInvitationEmail: Scalars['Boolean']['output'];
/** Receive mention email */