go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/projects/chirp/pkg/model/graph.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 // EdgeType is a constant for each "type" of graph edge. 17 type EdgeType string 18 19 // EdgeType values. 20 const ( 21 EdgeTypeFollow = "follow" 22 EdgeTypeBlock = "block" 23 EdgeTypeMute = "mute" 24 ) 25 26 // Graph holds the following, mute and block relationships between users. 27 type Graph struct { 28 UserID uuid.UUID `db:"user_id,pk"` 29 TargetID uuid.UUID `db:"target_id,pk"` 30 Type string `db:"type,pk"` 31 TimestampUTC time.Time `db:"timestamp_utc"` 32 } 33 34 // TableName returns the mapped table name. 35 func (g Graph) TableName() string { return "graph" }