package entity import ( "narasi-ahli-be/app/database/entity/users" "time" ) type ChatSchedules struct { ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` ChatSessionID uint `json:"chat_session_id" gorm:"type:int4;not null;index"` Title string `json:"title" gorm:"type:varchar(255);not null"` Description string `json:"description" gorm:"type:text"` Summary string `json:"summary" gorm:"type:text"` ScheduledAt time.Time `json:"scheduled_at" gorm:"not null"` Duration int `json:"duration" gorm:"type:int4;default:60"` // duration in minutes Status string `json:"status" gorm:"type:varchar(20);not null;default:'scheduled';check:status IN ('scheduled', 'ongoing', 'completed', 'cancelled')"` IsReminderSent bool `json:"is_reminder_sent" gorm:"default:false"` ReminderSentAt *time.Time `json:"reminder_sent_at"` 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 ChatSession *ChatSessions `json:"chat_session" gorm:"foreignKey:ChatSessionID;references:ID"` Creator *users.Users `json:"creator" gorm:"foreignKey:CreatedBy;references:ID"` Files []*ChatScheduleFiles `json:"files" gorm:"foreignKey:ChatScheduleID;references:ID"` }