package models import ( "time" "github.com/google/uuid" "gorm.io/gorm" ) type Session struct { ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;default:gen_random_uuid()"` UserID uuid.UUID `json:"user_id" gorm:"not null"` Revoked bool `json:"revoked" gorm:"not null;default:false"` LoggedOut bool `json:"logged_out" gorm:"not null;default:false"` ExpiresAt time.Time `json:"expires_at" gorm:"not null"` CreatedAt time.Time `json:"created_at" gorm:"not null;default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"not null;default:now()"` DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index;default:null"` // Relationships User User `json:"user" gorm:"foreignKey:user_id;references:id"` } func (s *Session) TableName() string { return "sessions" } func (s *Session) BeforeCreate(tx *gorm.DB) (err error) { s.ID = uuid.New() return }