56 lines
2.4 KiB
Go
56 lines
2.4 KiB
Go
package repository
|
||
|
||
import (
|
||
"app-cloudep-member-server/pkg/domain/entity"
|
||
"app-cloudep-member-server/pkg/domain/member"
|
||
"context"
|
||
|
||
"go.mongodb.org/mongo-driver/mongo"
|
||
)
|
||
|
||
type UserRepository interface {
|
||
BaseUserRepository
|
||
UpdateUserDetailsByUID(ctx context.Context, data *UpdateUserInfoRequest) error
|
||
UpdateStatus(ctx context.Context, uid string, status int32) error
|
||
FindOneByUID(ctx context.Context, uid string) (*entity.User, error)
|
||
FindOneByNickName(ctx context.Context, nickName string) (*entity.User, error)
|
||
ListMembers(ctx context.Context, params *UserQueryParams) ([]*entity.User, int64, error)
|
||
UpdateEmailVerifyStatus(ctx context.Context, uid, email string) error
|
||
UpdatePhoneVerifyStatus(ctx context.Context, uid, phone string) error
|
||
UserIndexUP
|
||
}
|
||
|
||
type UserIndexUP interface {
|
||
Index20241226001UP(ctx context.Context) (*mongo.Cursor, error)
|
||
}
|
||
|
||
type BaseUserRepository interface {
|
||
Insert(ctx context.Context, data *entity.User) error
|
||
FindOne(ctx context.Context, id string) (*entity.User, error)
|
||
Update(ctx context.Context, data *entity.User) (*mongo.UpdateResult, error)
|
||
Delete(ctx context.Context, id string) (int64, error)
|
||
}
|
||
|
||
type UserQueryParams struct {
|
||
AlarmCategory *member.AlarmType
|
||
UserStatus *member.Status
|
||
CreateStartTime *int64
|
||
CreateEndTime *int64
|
||
PageSize int64
|
||
PageIndex int64
|
||
}
|
||
|
||
type UpdateUserInfoRequest struct {
|
||
UID string `json:"uid"` // 用戶 UID
|
||
AvatarURL *string `json:"avatar_url,omitempty"` // 頭像 URL(可選)
|
||
FullName *string `json:"full_name,omitempty"` // 用戶全名
|
||
Nickname *string `json:"nickname,omitempty"` // 暱稱(可選)
|
||
GenderCode *int8 `json:"gender_code,omitempty"` // 性別代碼
|
||
Birthdate *int64 `json:"birthdate,omitempty"` // 生日 (格式: 19930417)
|
||
Address *string `json:"address,omitempty"` // 地址
|
||
AlarmCategory *member.AlarmType `json:"alarm_category,omitempty"` // 警報類型
|
||
UserStatus *member.Status `json:"user_status,omitempty"` // 用戶狀態
|
||
PreferredLanguage *string `json:"preferred_language,omitempty"` // 使用語言
|
||
Currency *string `json:"currency,omitempty"` // 使用幣種
|
||
}
|