| 
									
										
										
										
											2021-03-13 17:07:05 +01:00
										 |  |  | /* | 
					
						
							|  |  |  |    GoToSocial | 
					
						
							| 
									
										
										
										
											2021-12-20 18:42:19 +01:00
										 |  |  |    Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org | 
					
						
							| 
									
										
										
										
											2021-03-13 17:07:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |    This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |    it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |    the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |    (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |    GNU Affero General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |    along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-08 14:25:55 +02:00
										 |  |  | package model | 
					
						
							| 
									
										
										
										
											2021-03-13 17:07:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-04 15:24:19 +02:00
										 |  |  | // Notification represents a notification of an event relevant to the user. | 
					
						
							| 
									
										
										
										
											2022-08-31 13:20:52 -04:00
										 |  |  | // | 
					
						
							|  |  |  | // swagger:model notification | 
					
						
							| 
									
										
										
										
											2021-03-13 17:07:05 +01:00
										 |  |  | type Notification struct { | 
					
						
							|  |  |  | 	// REQUIRED | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// The id of the notification in the database. | 
					
						
							|  |  |  | 	ID string `json:"id"` | 
					
						
							|  |  |  | 	// The type of event that resulted in the notification. | 
					
						
							|  |  |  | 	// 	follow = Someone followed you | 
					
						
							|  |  |  | 	// 	follow_request = Someone requested to follow you | 
					
						
							|  |  |  | 	// 	mention = Someone mentioned you in their status | 
					
						
							|  |  |  | 	// 	reblog = Someone boosted one of your statuses | 
					
						
							|  |  |  | 	// 	favourite = Someone favourited one of your statuses | 
					
						
							|  |  |  | 	// 	poll = A poll you have voted in or created has ended | 
					
						
							|  |  |  | 	// 	status = Someone you enabled notifications for has posted a status | 
					
						
							|  |  |  | 	Type string `json:"type"` | 
					
						
							|  |  |  | 	// The timestamp of the notification (ISO 8601 Datetime) | 
					
						
							|  |  |  | 	CreatedAt string `json:"created_at"` | 
					
						
							|  |  |  | 	// The account that performed the action that generated the notification. | 
					
						
							|  |  |  | 	Account *Account `json:"account"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// OPTIONAL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Status that was the object of the notification, e.g. in mentions, reblogs, favourites, or polls. | 
					
						
							| 
									
										
										
										
											2021-05-27 16:06:24 +02:00
										 |  |  | 	Status *Status `json:"status,omitempty"` | 
					
						
							| 
									
										
										
										
											2021-03-13 17:07:05 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-06-08 20:22:49 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	The below functions are added onto the apimodel notification so that it satisfies | 
					
						
							|  |  |  | 	the Timelineable interface in internal/timeline. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (n *Notification) GetID() string { | 
					
						
							|  |  |  | 	return n.ID | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (n *Notification) GetAccountID() string { | 
					
						
							|  |  |  | 	return "" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (n *Notification) GetBoostOfID() string { | 
					
						
							|  |  |  | 	return "" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (n *Notification) GetBoostOfAccountID() string { | 
					
						
							|  |  |  | 	return "" | 
					
						
							|  |  |  | } |