This commit is contained in:
32
internal/domain/entities/user.go
Normal file
32
internal/domain/entities/user.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package entities
|
||||
|
||||
import "time"
|
||||
|
||||
// User represents a registered user
|
||||
type User struct {
|
||||
ID int `json:"id" db:"id"`
|
||||
Username string `json:"username" db:"username"`
|
||||
Email string `json:"email" db:"email"`
|
||||
Password string `json:"-" db:"password"` // Hidden from JSON
|
||||
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
|
||||
}
|
||||
|
||||
// Validate validates user data
|
||||
func (u *User) Validate() error {
|
||||
if u.Username == "" {
|
||||
return ErrInvalidUsername
|
||||
}
|
||||
if u.Email == "" {
|
||||
return ErrInvalidEmail
|
||||
}
|
||||
if u.Password == "" {
|
||||
return ErrInvalidPassword
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ClearPassword removes password from user for safe serialization
|
||||
func (u *User) ClearPassword() {
|
||||
u.Password = ""
|
||||
}
|
||||
Reference in New Issue
Block a user