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"` // 使用幣種
|
|||
|
}
|