| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | package models | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"errors" | 
					
						
							|  |  |  | 	"time" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Typed errors
 | 
					
						
							|  |  |  | var ( | 
					
						
							|  |  |  | 	ErrTempUserNotFound = errors.New("User not found") | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | type TempUserStatus string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const ( | 
					
						
							| 
									
										
										
										
											2015-08-27 19:59:58 +08:00
										 |  |  | 	TmpUserSignUpStarted TempUserStatus = "SignUpStarted" | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	TmpUserInvitePending TempUserStatus = "InvitePending" | 
					
						
							|  |  |  | 	TmpUserCompleted     TempUserStatus = "Completed" | 
					
						
							|  |  |  | 	TmpUserRevoked       TempUserStatus = "Revoked" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-17 15:51:34 +08:00
										 |  |  | // TempUser holds data for org invites and unconfirmed sign ups
 | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | type TempUser struct { | 
					
						
							| 
									
										
										
										
											2015-07-17 15:51:34 +08:00
										 |  |  | 	Id              int64 | 
					
						
							|  |  |  | 	OrgId           int64 | 
					
						
							|  |  |  | 	Version         int | 
					
						
							|  |  |  | 	Email           string | 
					
						
							|  |  |  | 	Name            string | 
					
						
							| 
									
										
										
										
											2015-07-17 20:42:49 +08:00
										 |  |  | 	Role            RoleType | 
					
						
							| 
									
										
										
										
											2015-07-17 15:51:34 +08:00
										 |  |  | 	InvitedByUserId int64 | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	Status          TempUserStatus | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	EmailSent   bool | 
					
						
							|  |  |  | 	EmailSentOn time.Time | 
					
						
							|  |  |  | 	Code        string | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	RemoteAddr  string | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Created time.Time | 
					
						
							|  |  |  | 	Updated time.Time | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // ---------------------
 | 
					
						
							|  |  |  | // COMMANDS
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type CreateTempUserCommand struct { | 
					
						
							| 
									
										
										
										
											2015-07-17 15:51:34 +08:00
										 |  |  | 	Email           string | 
					
						
							|  |  |  | 	Name            string | 
					
						
							|  |  |  | 	OrgId           int64 | 
					
						
							|  |  |  | 	InvitedByUserId int64 | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	Status          TempUserStatus | 
					
						
							| 
									
										
										
										
											2015-07-17 15:51:34 +08:00
										 |  |  | 	Code            string | 
					
						
							| 
									
										
										
										
											2015-07-17 20:42:49 +08:00
										 |  |  | 	Role            RoleType | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	RemoteAddr      string | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Result *TempUser | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | type UpdateTempUserStatusCommand struct { | 
					
						
							| 
									
										
										
										
											2015-07-20 23:46:48 +08:00
										 |  |  | 	Code   string | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	Status TempUserStatus | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-01 02:21:05 +08:00
										 |  |  | type UpdateTempUserWithEmailSentCommand struct { | 
					
						
							|  |  |  | 	Code string | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 21:14:24 +08:00
										 |  |  | type GetTempUsersQuery struct { | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	OrgId  int64 | 
					
						
							| 
									
										
										
										
											2015-08-28 21:14:24 +08:00
										 |  |  | 	Email  string | 
					
						
							| 
									
										
										
										
											2015-07-20 16:57:39 +08:00
										 |  |  | 	Status TempUserStatus | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Result []*TempUserDTO | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-20 23:46:48 +08:00
										 |  |  | type GetTempUserByCodeQuery struct { | 
					
						
							| 
									
										
										
										
											2015-07-20 21:52:49 +08:00
										 |  |  | 	Code string | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-10 19:46:59 +08:00
										 |  |  | 	Result *TempUserDTO | 
					
						
							| 
									
										
										
										
											2015-07-20 21:52:49 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | type TempUserDTO struct { | 
					
						
							| 
									
										
										
										
											2015-08-10 19:46:59 +08:00
										 |  |  | 	Id             int64          `json:"id"` | 
					
						
							| 
									
										
										
										
											2015-08-11 16:45:03 +08:00
										 |  |  | 	OrgId          int64          `json:"orgId"` | 
					
						
							| 
									
										
										
										
											2015-08-10 19:46:59 +08:00
										 |  |  | 	Name           string         `json:"name"` | 
					
						
							|  |  |  | 	Email          string         `json:"email"` | 
					
						
							| 
									
										
										
										
											2015-08-11 16:45:03 +08:00
										 |  |  | 	Role           RoleType       `json:"role"` | 
					
						
							| 
									
										
										
										
											2015-08-10 19:46:59 +08:00
										 |  |  | 	InvitedByLogin string         `json:"invitedByLogin"` | 
					
						
							|  |  |  | 	InvitedByEmail string         `json:"invitedByEmail"` | 
					
						
							|  |  |  | 	InvitedByName  string         `json:"invitedByName"` | 
					
						
							|  |  |  | 	Code           string         `json:"code"` | 
					
						
							|  |  |  | 	Status         TempUserStatus `json:"status"` | 
					
						
							|  |  |  | 	Url            string         `json:"url"` | 
					
						
							|  |  |  | 	EmailSent      bool           `json:"emailSent"` | 
					
						
							|  |  |  | 	EmailSentOn    time.Time      `json:"emailSentOn"` | 
					
						
							|  |  |  | 	Created        time.Time      `json:"createdOn"` | 
					
						
							| 
									
										
										
										
											2015-07-16 23:59:11 +08:00
										 |  |  | } |