Files
gitea/modules/structs/notifications.go

65 lines
2.4 KiB
Go

// Copyright 2019 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
import (
"time"
)
// NotificationThread expose Notification on API
type NotificationThread struct {
// ID is the unique identifier for the notification thread
ID int64 `json:"id"`
// Repository is the repository associated with the notification
Repository *Repository `json:"repository"`
// Subject contains details about the notification subject
Subject *NotificationSubject `json:"subject"`
// Unread indicates if the notification has been read
Unread bool `json:"unread"`
// Pinned indicates if the notification is pinned
Pinned bool `json:"pinned"`
// UpdatedAt is the time when the notification was last updated
UpdatedAt time.Time `json:"updated_at"`
// URL is the API URL for this notification thread
URL string `json:"url"`
}
// NotificationSubject contains the notification subject (Issue/Pull/Commit)
type NotificationSubject struct {
// Title is the title of the notification subject
Title string `json:"title"`
// URL is the API URL for the notification subject
URL string `json:"url"`
// LatestCommentURL is the API URL for the latest comment
LatestCommentURL string `json:"latest_comment_url"`
// HTMLURL is the web URL for the notification subject
HTMLURL string `json:"html_url"`
// LatestCommentHTMLURL is the web URL for the latest comment
LatestCommentHTMLURL string `json:"latest_comment_html_url"`
// Type indicates the type of the notification subject
Type NotifySubjectType `json:"type" binding:"In(Issue,Pull,Commit,Repository)"`
// State indicates the current state of the notification subject
State StateType `json:"state"`
}
// NotificationCount number of unread notifications
type NotificationCount struct {
// New is the number of unread notifications
New int64 `json:"new"`
}
// NotifySubjectType represent type of notification subject
type NotifySubjectType string
const (
// NotifySubjectIssue an issue is subject of an notification
NotifySubjectIssue NotifySubjectType = "Issue"
// NotifySubjectPull an pull is subject of an notification
NotifySubjectPull NotifySubjectType = "Pull"
// NotifySubjectCommit an commit is subject of an notification
NotifySubjectCommit NotifySubjectType = "Commit"
// NotifySubjectRepository an repository is subject of an notification
NotifySubjectRepository NotifySubjectType = "Repository"
)