first commit
This commit is contained in:
@@ -1,23 +1,87 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
Firstname string `db:"firstname" json:"firstname,omitempty"`
|
||||
Lastname string `db:"lastname" json:"lastname,omitempty"`
|
||||
Password string `db:"password" json:"-"`
|
||||
Email string `db:"email" json:"email,omitempty"`
|
||||
PictureID string `db:"picture" json:"picture,omitempty"`
|
||||
Enabled bool `db:"enabled" json:"enabled"`
|
||||
Administrator bool `db:"administrator" json:"administrator"`
|
||||
VersionId string `db:"_version" json:"-"`
|
||||
ID string `db:"id" json:"id"`
|
||||
Firstname string `db:"firstname" json:"firstname,omitempty"`
|
||||
Lastname string `db:"lastname" json:"lastname,omitempty"`
|
||||
Password string `db:"password" json:"-"`
|
||||
Email string `db:"email" json:"email,omitempty"`
|
||||
PictureID string `db:"picture" json:"picture,omitempty"`
|
||||
Enabled bool `db:"enabled" json:"enabled"`
|
||||
Theme string `db:"theme" json:"theme"`
|
||||
Lang string `db:"lang" json:"lang"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type Team struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
Label string `db:"label" json:"label"`
|
||||
DefaultModelID *string `db:"default_model_id" json:"default_model_id"`
|
||||
DateCreated *time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type UserTeam struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
UserID string `db:"user_id" json:"user_id"`
|
||||
TeamID string `db:"team_id" json:"team_id"`
|
||||
Administrator bool `db:"administrator" json:"administrator"`
|
||||
DateCreated *time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type UserAddress struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
UserID string `db:"user_id" json:"user_id"`
|
||||
Type string `db:"type" json:"type"`
|
||||
Address string `db:"address_id" json:"address"`
|
||||
DateCreated *time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type TeamRelation struct {
|
||||
IsAdministrator bool `json:"administrator"`
|
||||
Team *Team `json:"team"`
|
||||
}
|
||||
|
||||
type UserWithTeams struct {
|
||||
User *User `json:"user"`
|
||||
Teams []*TeamRelation `json:"teams"`
|
||||
}
|
||||
|
||||
type UserRepository interface {
|
||||
CountUsers() (int, error)
|
||||
FindUser(id string) (*User, error)
|
||||
FindUserByEmail(email string) (*User, error)
|
||||
ListUsers() ([]*User, error)
|
||||
CreateUser(user *User) (*User, error)
|
||||
UpdateUser(user *User) (*User, error)
|
||||
DeleteUser(id string) error
|
||||
|
||||
FindTeam(userid string, teamid string) (*Team, error)
|
||||
ListTeams(userid string) ([]*Team, error)
|
||||
CreateTeam(userid string, team *Team) (*Team, error)
|
||||
UpdateTeam(userid string, team *Team) (*Team, error)
|
||||
DeleteTeam(userid string, teamid string) error
|
||||
|
||||
FindUserTeam(userid string, teamid string) (*UserTeam, error)
|
||||
ListUserTeams(userid string) ([]*UserTeam, error)
|
||||
CreateUserTeam(userid string, team *UserTeam) (*UserTeam, error)
|
||||
UpdateUserTeam(userid string, team *UserTeam) (*UserTeam, error)
|
||||
DeleteUserTeam(userid string, teamid string) error
|
||||
|
||||
PopulateUserWithTeams(user *User) (*UserWithTeams, error)
|
||||
|
||||
ListUserAddresses(userid string) ([]*UserAddress, error)
|
||||
CreateUserAddress(userid string, addr *UserAddress) (*UserAddress, error)
|
||||
UpdateUserAddress(userid string, addr *UserAddress) (*UserAddress, error)
|
||||
DeleteUserAddress(userid string, addrID string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user