wms-be/database/entities/user_entity.go

60 lines
1.8 KiB
Go

package entities
// import (
// "github.com/Caknoooo/go-gin-clean-starter/pkg/helpers"
// "github.com/google/uuid"
// "gorm.io/gorm"
// )
// type User struct {
// ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()" json:"id"`
// Name string `gorm:"type:varchar(100);not null" json:"name"`
// Email string `gorm:"type:varchar(255);uniqueIndex;not null" json:"email"`
// TelpNumber string `gorm:"type:varchar(20);index" json:"telp_number"`
// Password string `gorm:"type:varchar(255);not null" json:"password"`
// Role string `gorm:"type:varchar(50);not null;default:'user'" json:"role"`
// ImageUrl string `gorm:"type:varchar(255)" json:"image_url"`
// IsVerified bool `gorm:"default:false" json:"is_verified"`
// TenantID uuid.UUID `gorm:"type:uuid;null;index" json:"tenant_id"`
// Tenant Tenant `gorm:"foreignKey:TenantID;constraint:OnUpdate:CASCADE,OnDelete:SET NULL;" json:"tenant"`
// UserRoles []M_User_Role `gorm:"foreignKey:UserID"` // atau relasi many-to-many
// FullAuditTrail
// }
// // BeforeCreate hook to hash password and set defaults
// func (u *User) BeforeCreate(_ *gorm.DB) (err error) {
// // Hash password
// if u.Password != "" {
// u.Password, err = helpers.HashPassword(u.Password)
// if err != nil {
// return err
// }
// }
// // Ensure UUID is set
// if u.ID == uuid.Nil {
// u.ID = uuid.New()
// }
// // Set default role if not specified
// if u.Role == "" {
// u.Role = "user"
// }
// return nil
// }
// // BeforeUpdate hook to handle password updates
// func (u *User) BeforeUpdate(_ *gorm.DB) (err error) {
// // Only hash password if it has been changed
// if u.Password != "" {
// u.Password, err = helpers.HashPassword(u.Password)
// if err != nil {
// return err
// }
// }
// return nil
// }