-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser.go
44 lines (36 loc) · 1.32 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package auth
import (
"time"
"github.com/yaitoo/sqle"
"github.com/yaitoo/sqle/shardid"
)
// UserStatus user's status
type UserStatus int
const (
// UserStatusWaiting waiting for verifying, can do anything within waiting period
UserStatusWaiting UserStatus = 0
// UserStatusActivated activated means can do anything
UserStatusActivated UserStatus = 1
// UserStatusSuspended suspended means only can view, can't write anymore
UserStatusSuspended UserStatus = -1
// UserStatusDeactivated deactivated means can do nothing
UserStatusDeactivated UserStatus = -2
)
// User user info
type User struct {
ID shardid.ID `json:"id,omitempty"`
Status UserStatus `json:"status"`
FirstName string `json:"firstName,omitempty"`
LastName string `json:"lastName,omitempty"`
// Passwd the hash of user's password with salt
Passwd string `json:"-"`
Salt string `json:"-"`
Email string `json:"email,omitempty"`
EmailVerified sqle.Bool `json:"emailVerified,omitempty"`
EmailVerifiedAt sqle.Time `json:"emailVerifiedAt,omitempty"`
Mobile string `json:"mobile,omitempty"`
MobileVerified sqle.Bool `json:"mobileVerified,omitempty"`
MobileVerifiedAt sqle.Time `json:"mobileVerifiedAt,omitempty"`
CreatedAt time.Time `json:"createdAt,omitempty"`
UpdatedAt time.Time `json:"updatedAt,omitempty"`
}