go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/projects/chirp/pkg/model/notification.go (about)

     1  /*
     2  
     3  Copyright (c) 2023 - Present. Will Charczuk. All rights reserved.
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository.
     5  
     6  */
     7  
     8  package model
     9  
    10  import (
    11  	"time"
    12  
    13  	"go.charczuk.com/sdk/uuid"
    14  )
    15  
    16  // NotificationType is a type of notification.
    17  type NotificationType string
    18  
    19  // NotificationTypes
    20  const (
    21  	NotificationTypeFollow = "follow"
    22  	NotificationTypeLike   = "like"
    23  )
    24  
    25  // Notification is someting we're going to show in the UI at some point.
    26  type Notification struct {
    27  	ID           uuid.UUID  `db:"id,pk,auto"`
    28  	UserID       uuid.UUID  `db:"user_id"`
    29  	CreatedUTC   time.Time  `db:"created_utc"`
    30  	ReadUTC      *time.Time `db:"read_utc"`
    31  	ActingUserID uuid.UUID  `db:"acting_user_id"`
    32  	ChirpID      *uuid.UUID `db:"chirp_id"`
    33  	Type         string     `db:"type"`
    34  }
    35  
    36  // TableName is a name of a table.
    37  func (n Notification) TableName() string {
    38  	return "notification"
    39  }