76 lines
2.2 KiB
Go
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
|
|
}
|