package model // 好友关系状态常量 const ( FriendStatusPending = 1 // 待验证(等待对方同意) FriendStatusAccepted = 2 // 已通过(互为好友) ) // Friend 好友关系表:申请方向为 user_id → friend_id,通过后一条记录即代表双向好友 type Friend struct { ID int `gorm:"primaryKey" json:"id"` // 关系ID UserID int `gorm:"index" json:"user_id"` // 发起方用户ID(申请人) FriendID int `gorm:"index" json:"friend_id"` // 接收方用户ID(被申请人) Status int `gorm:"default:1" json:"status"` // 状态:1待验证 2已通过 CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 申请时间(int 时间戳) UpdatedAt int64 `gorm:"autoUpdateTime" json:"updated_at"` // 状态更新时间(int 时间戳) } // TableName 指定表名 func (Friend) TableName() string { return "friends" } // ChatMessage 私聊消息表:仅好友之间可互发 type ChatMessage struct { ID int `gorm:"primaryKey" json:"id"` // 消息ID FromID int `gorm:"index" json:"from_id"` // 发送方用户ID ToID int `gorm:"index" json:"to_id"` // 接收方用户ID Content string `gorm:"size:500" json:"content"` // 消息内容(纯文本) IsRead int `gorm:"default:0" json:"is_read"` // 接收方是否已读:0未读 1已读 CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 发送时间(int 时间戳) } // TableName 指定表名 func (ChatMessage) TableName() string { return "chat_messages" }