package domain 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:"-"` } 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 }