{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "notificationView": {
      "description": "One notification in the authenticated account's list.",
      "properties": {
        "author": {
          "ref": "social.coves.actor.defs#profileView",
          "type": "ref"
        },
        "isRead": {
          "type": "boolean"
        },
        "reason": {
          "ref": "#reason",
          "type": "ref"
        },
        "recentUpvoters": {
          "description": "Up to 3 most recent qualifying voters on this network, newest first; absent when there are none, for example when every upvote is bridged. Newest is by when this AppView indexed the vote, not the vote record's createdAt.",
          "items": {
            "ref": "social.coves.actor.defs#profileView",
            "type": "ref"
          },
          "maxLength": 3,
          "type": "array"
        },
        "record": {
          "properties": {
            "cid": {
              "format": "cid",
              "type": "string"
            },
            "createdAt": {
              "format": "datetime",
              "type": "string"
            },
            "excerpt": {
              "description": "The first 1,000 graphemes of the triggering record's text; absent when the record has a status.",
              "maxGraphemes": 1000,
              "type": "string"
            },
            "labels": {
              "description": "Self-labels the referenced record's author applied; absent when none or when the reference has a status.",
              "ref": "com.atproto.label.defs#selfLabels",
              "type": "ref"
            },
            "status": {
              "description": "Read-time status when the record is unavailable: deleted by its author, removed by its community's moderators, or removed by the server admin.",
              "knownValues": [
                "deleted",
                "removedByModerator",
                "removedByServerAdmin"
              ],
              "type": "string"
            },
            "thumbnail": {
              "description": "Preview image URL for a post (link-card thumbnail or first image), served through the AppView's image proxy; never set for comments or references with a status.",
              "format": "uri",
              "type": "string"
            },
            "thumbnailAlt": {
              "description": "Alt text of the image in thumbnail, from the post author's first image; set only alongside an image post's thumbnail, never for link-card thumbnails.",
              "maxGraphemes": 1000,
              "maxLength": 10000,
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri",
            "cid"
          ],
          "type": "object"
        },
        "rootPost": {
          "properties": {
            "author": {
              "description": "The root post's author; present only when the root post has no status.",
              "ref": "social.coves.community.post.defs#authorView",
              "type": "ref"
            },
            "cid": {
              "format": "cid",
              "type": "string"
            },
            "community": {
              "ref": "social.coves.community.post.defs#communityRef",
              "type": "ref"
            },
            "createdAt": {
              "description": "When the root post was created; present only when the root post has no status.",
              "format": "datetime",
              "type": "string"
            },
            "labels": {
              "description": "Self-labels the referenced record's author applied; absent when none or when the reference has a status.",
              "ref": "com.atproto.label.defs#selfLabels",
              "type": "ref"
            },
            "stats": {
              "description": "The root post's stats (votes, score and comment count); present only when the root post has no status.",
              "ref": "social.coves.community.post.defs#postStats",
              "type": "ref"
            },
            "status": {
              "description": "Read-time status when the root post is unavailable: deleted by its author, removed by its community's moderators, or removed by the server admin.",
              "knownValues": [
                "deleted",
                "removedByModerator",
                "removedByServerAdmin"
              ],
              "type": "string"
            },
            "thumbnail": {
              "description": "Preview image URL for a post (link-card thumbnail or first image), served through the AppView's image proxy; never set for comments or references with a status.",
              "format": "uri",
              "type": "string"
            },
            "thumbnailAlt": {
              "description": "Alt text of the image in thumbnail, from the post author's first image; set only alongside an image post's thumbnail, never for link-card thumbnails.",
              "maxGraphemes": 1000,
              "maxLength": 10000,
              "type": "string"
            },
            "title": {
              "maxGraphemes": 300,
              "maxLength": 3000,
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri",
            "cid"
          ],
          "type": "object"
        },
        "sortAt": {
          "format": "datetime",
          "type": "string"
        },
        "subject": {
          "properties": {
            "cid": {
              "format": "cid",
              "type": "string"
            },
            "labels": {
              "description": "Self-labels the referenced record's author applied; absent when none or when the reference has a status.",
              "ref": "com.atproto.label.defs#selfLabels",
              "type": "ref"
            },
            "preview": {
              "description": "The post's title, or the first 1,000 graphemes of the post body or comment text when there is no title; absent when the reference has a status.",
              "type": "string"
            },
            "status": {
              "description": "Read-time status when the subject is unavailable: deleted by its author, removed by its community's moderators, or removed by the server admin.",
              "knownValues": [
                "deleted",
                "removedByModerator",
                "removedByServerAdmin"
              ],
              "type": "string"
            },
            "thumbnail": {
              "description": "Preview image URL for a post (link-card thumbnail or first image), served through the AppView's image proxy; never set for comments or references with a status.",
              "format": "uri",
              "type": "string"
            },
            "thumbnailAlt": {
              "description": "Alt text of the image in thumbnail, from the post author's first image; set only alongside an image post's thumbnail, never for link-card thumbnails.",
              "maxGraphemes": 1000,
              "maxLength": 10000,
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri",
            "cid"
          ],
          "type": "object"
        },
        "upvoteCount": {
          "description": "Qualifying upvotes from accounts on this network plus the item's bridged upvote total from federated platforms",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "reason",
        "sortAt",
        "isRead",
        "rootPost"
      ],
      "type": "object"
    },
    "preferences": {
      "description": "Notification reasons enabled for the authenticated account.",
      "properties": {
        "commentReply": {
          "description": "Receive replies to your comments.",
          "type": "boolean"
        },
        "mention": {
          "description": "Receive mentions in posts and comments.",
          "type": "boolean"
        },
        "postReply": {
          "description": "Receive replies to your posts.",
          "type": "boolean"
        },
        "upvote": {
          "description": "Receive upvote group notifications.",
          "type": "boolean"
        }
      },
      "required": [
        "postReply",
        "commentReply",
        "mention",
        "upvote"
      ],
      "type": "object"
    },
    "reason": {
      "description": "The kind of activity that produced the notification. Other reasons may be added later.",
      "knownValues": [
        "postReply",
        "commentReply",
        "mention",
        "upvote"
      ],
      "type": "string"
    }
  },
  "id": "social.coves.notification.defs",
  "lexicon": 1
}
