// Copyright 2022 ROC. All rights reserved. // Use of this source code is governed by a MIT style // license that can be found in the LICENSE file. package core type ( ContactItem struct { UserId int64 `json:"user_id"` UserName string `json:"username"` Nickname string `json:"nickname"` Avatar string `json:"avatar"` Phone string `json:"phone"` } ContactList struct { Contacts []ContactItem `json:"contacts"` Total int64 `json:"total"` } ) // UserManageService 用户管理服务 type UserManageService interface { GetUserByID(id int64) (*User, error) GetUserByUsername(username string) (*User, error) GetUserByPhone(phone string) (*User, error) GetUsersByIDs(ids []int64) ([]*User, error) GetUsersByKeyword(keyword string) ([]*User, error) CreateUser(user *User) (*User, error) UpdateUser(user *User) error } // ContactManageService 联系人管理服务 type ContactManageService interface { RequestingFriend(userId int64, friendId int64, greetings string) error AddFriend(userId int64, friendId int64) error RejectFriend(userId int64, friendId int64) error DeleteFriend(userId int64, friendId int64) error GetContacts(userId int64, offset int, limit int) (*ContactList, error) IsFriend(userID int64, friendID int64) bool }