veza/veza-backend-api/internal/models/user_settings.go
2025-12-03 20:29:37 +01:00

76 lines
2.2 KiB
Go

package models
import (
"gorm.io/gorm"
"time"
"github.com/google/uuid" // Import uuid
)
// UserSettings représente les paramètres utilisateur
type UserSettings struct {
ID uuid.UUID `gorm:"type:uuid;primaryKey"`
UserID uuid.UUID `gorm:"not null;uniqueIndex;type:uuid"` // Change to uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
// Notifications
EmailNotifications bool `gorm:"default:true"`
PushNotifications bool `gorm:"default:true"`
BrowserNotifications bool `gorm:"default:true"`
EmailOnFollow bool `gorm:"default:true"`
EmailOnLike bool `gorm:"default:true"`
EmailOnComment bool `gorm:"default:true"`
EmailOnMessage bool `gorm:"default:true"`
EmailOnMention bool `gorm:"default:true"`
EmailMarketing bool `gorm:"default:false"`
// Privacy
AllowSearchIndexing bool `gorm:"default:true"`
ShowActivity bool `gorm:"default:true"`
// Content
ExplicitContent bool `gorm:"default:false"`
Autoplay bool `gorm:"default:true"`
}
// TableName définit le nom de la table pour GORM
func (UserSettings) TableName() string {
return "user_settings"
}
// UserProfile représente les préférences utilisateur (extended from User model)
// Note: Les champs language, timezone, theme sont dans la table users pour l'instant
// Cette structure est pour référence future si on veut une table séparée
type UserProfile struct {
ID uuid.UUID `gorm:"type:uuid;primaryKey"`
UserID uuid.UUID `gorm:"not null;uniqueIndex;type:uuid"` // Change to uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
// Preferences - stored in users table for now
Language string `gorm:"default:'en'"`
Timezone string `gorm:"default:'UTC'"`
Theme string `gorm:"default:'auto'"`
}
// TableName définit le nom de la table pour GORM
func (UserProfile) TableName() string {
return "user_profiles"
}
// BeforeCreate hook GORM pour générer UUID si non défini
func (m *UserSettings) BeforeCreate(tx *gorm.DB) error {
if m.ID == uuid.Nil {
m.ID = uuid.New()
}
return nil
}
// BeforeCreate hook GORM pour générer UUID si non défini
func (m *UserProfile) BeforeCreate(tx *gorm.DB) error {
if m.ID == uuid.Nil {
m.ID = uuid.New()
}
return nil
}