package models import ( "encoding/json" "time" "github.com/google/uuid" ) type Notification struct { ID uuid.UUID `json:"id" db:"id"` UserID uuid.UUID `json:"user_id" db:"user_id"` Type string `json:"type" db:"type"` // like, comment, follow, reply, mention ActorID uuid.UUID `json:"actor_id" db:"actor_id"` PostID *uuid.UUID `json:"post_id,omitempty" db:"post_id"` CommentID *uuid.UUID `json:"comment_id,omitempty" db:"comment_id"` IsRead bool `json:"is_read" db:"is_read"` CreatedAt time.Time `json:"created_at" db:"created_at"` Metadata json.RawMessage `json:"metadata" db:"metadata"` // Joined fields ActorHandle string `json:"actor_handle" db:"actor_handle"` ActorDisplayName string `json:"actor_display_name" db:"actor_display_name"` ActorAvatarURL string `json:"actor_avatar_url" db:"actor_avatar_url"` PostImageURL *string `json:"post_image_url,omitempty" db:"post_image_url"` // Preview of post } type UserFCMToken struct { UserID uuid.UUID `json:"user_id" db:"user_id"` FCMToken string `json:"fcm_token" db:"fcm_token"` Platform string `json:"platform" db:"platform"` // android, ios, web CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` }