add personal address

This commit is contained in:
fabien committed 2026-08-18 23:57:08 +02:00
1 parent 50d1ba630e
commit d2a153536f
17 files changed
+239 -50

No files matched your search

+9 -9
View File
@@ -6,15 +6,15 @@ import (
)
type File struct {
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
ContentType string `db:"content_type" json:"contentType"`
StoragePath string `db:"storage_path" json:"-"`
StorageFilename string `db:"storage_filename" json:"-"`
Content []byte `db:"content" json:"-"`
DateCreated time.Time `db:"date_created" json:"-"`
DateUpdated time.Time `db:"date_updated" json:"-"`
VersionId string `db:"_version" json:"-"`
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
ContentType string `db:"content_type" json:"contentType"`
StoragePath string `db:"storage_path" json:"-"`
StorageFilename string `db:"storage_filename" json:"-"`
Content []byte `db:"content" json:"-"`
DateCreated time.Time `db:"date_created" json:"-"`
DateUpdated *time.Time `db:"date_updated" json:"-"`
VersionId string `db:"_version" json:"-"`
}
type FileRepository interface {
+1 -1
View File
@@ -7,7 +7,7 @@ type Settings struct {
DefaultLang string `db:"default_lang"`
RegisterEnabled bool `db:"register_enabled"`
PasswordEnabled bool `db:"password_enabled"`
DateCreated *time.Time `db:"_date_created" json:"_date_created"`
DateCreated time.Time `db:"_date_created" json:"_date_created"`
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
VersionId string `db:"_version" json:"_version"`
}
+29 -19
View File
@@ -5,25 +5,25 @@ import (
)
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"`
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"`
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"`
DateCreated time.Time `db:"_date_created" json:"_date_created"`
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
VersionId string `db:"_version" json:"_version"`
}
@@ -33,7 +33,7 @@ type UserTeam struct {
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"`
DateCreated time.Time `db:"_date_created" json:"_date_created"`
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
VersionId string `db:"_version" json:"_version"`
}
@@ -42,8 +42,8 @@ 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"`
Address string `db:"address" 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"`
}
@@ -58,6 +58,15 @@ type UserWithTeams struct {
Teams []*TeamRelation `json:"teams"`
}
func AddressTypes() []string {
return []string{
"email",
"telegram",
"whatsapp",
"signal",
}
}
type UserRepository interface {
FindUser(id string) (*User, error)
FindUserByEmail(email string) (*User, error)
@@ -81,7 +90,8 @@ type UserRepository interface {
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
GetUserAddress(addrID string) (*UserAddress, error)
CreateUserAddress(addr *UserAddress) (*UserAddress, error)
UpdateUserAddress(addr *UserAddress) (*UserAddress, error)
DeleteUserAddress(addrID string) error
}