2025-09-19 07:40:54 +00:00
|
|
|
package entity
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"narasi-ahli-be/app/database/entity/users"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type ChatSessions struct {
|
2025-09-22 13:05:40 +00:00
|
|
|
ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"`
|
|
|
|
|
Name *string `json:"name" gorm:"type:varchar(255)"` // null for personal chat, filled for group chat
|
|
|
|
|
Type string `json:"type" gorm:"type:varchar(20);not null;default:'personal'"` // 'personal' or 'group'
|
|
|
|
|
CreatedBy uint `json:"created_by" gorm:"type:int4;not null;index"`
|
|
|
|
|
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
|
|
|
|
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
|
|
|
|
|
|
|
|
|
|
// Relationships
|
|
|
|
|
Creator *users.Users `json:"creator" gorm:"foreignKey:CreatedBy;references:ID"`
|
|
|
|
|
Participants []*ChatParticipants `json:"participants" gorm:"foreignKey:ChatSessionID;references:ID"`
|
|
|
|
|
Messages []*ChatMessages `json:"messages" gorm:"foreignKey:ChatSessionID;references:ID"`
|
2025-09-19 07:40:54 +00:00
|
|
|
}
|