Files
BagExchange/models.go
2026-02-19 20:08:06 +01:00

72 lines
2.4 KiB
Go

package main
// Subscriber maps the subscribers table.
type Subscriber struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
Email string `gorm:"column:email;uniqueIndex;not null"`
IPAddress string `gorm:"column:ip_address;not null"`
UserAgent string `gorm:"column:user_agent;not null"`
AcceptLanguage string `gorm:"column:accept_language"`
BrowserData string `gorm:"column:browser_data"`
CreatedAt string `gorm:"column:created_at;not null"`
}
func (Subscriber) TableName() string {
return "subscribers"
}
// User maps the users table.
type User struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
Email string `gorm:"column:email;uniqueIndex;not null"`
PasswordHash string `gorm:"column:password_hash;not null"`
EmailVerified int `gorm:"column:email_verified;not null;default:0"`
CreatedAt string `gorm:"column:created_at;not null"`
UpdatedAt string `gorm:"column:updated_at;not null"`
}
func (User) TableName() string {
return "users"
}
// Session maps the sessions table.
type Session struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
UserID int64 `gorm:"column:user_id;not null;index"`
TokenHash string `gorm:"column:token_hash;uniqueIndex;not null"`
ExpiresAt int64 `gorm:"column:expires_at;not null"`
CreatedAt string `gorm:"column:created_at;not null"`
}
func (Session) TableName() string {
return "sessions"
}
// PasswordResetToken maps the password_reset_tokens table.
type PasswordResetToken struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
UserID int64 `gorm:"column:user_id;not null;index"`
TokenHash string `gorm:"column:token_hash;uniqueIndex;not null"`
ExpiresAt int64 `gorm:"column:expires_at;not null"`
UsedAt *int64 `gorm:"column:used_at"`
CreatedAt string `gorm:"column:created_at;not null"`
}
func (PasswordResetToken) TableName() string {
return "password_reset_tokens"
}
// EmailVerificationToken maps the email_verification_tokens table.
type EmailVerificationToken struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
UserID int64 `gorm:"column:user_id;not null;index"`
TokenHash string `gorm:"column:token_hash;uniqueIndex;not null"`
ExpiresAt int64 `gorm:"column:expires_at;not null"`
UsedAt *int64 `gorm:"column:used_at"`
CreatedAt string `gorm:"column:created_at;not null"`
}
func (EmailVerificationToken) TableName() string {
return "email_verification_tokens"
}