redai-automation-web-sdk
Version:
TypeScript SDK for RedAI Automation Web API - Zalo Personal automation, messaging, advanced sticker search, and bulk operations. 100% compatible with automation-web backend. v1.8.1: Updated GroupInfo interface to match backend controller with complete gro
715 lines • 14.4 kB
TypeScript
/**
* Friends DTOs - Chuẩn theo automation-web friend.dto.ts
*/
/**
* DTO để lấy tất cả friends
*/
export interface GetAllFriendsDto {
sessionId: string;
}
/**
* DTO để tìm kiếm friends
*/
export interface SearchFriendsDto {
sessionId: string;
keyword: string;
limit?: number;
}
/**
* DTO để lấy thông tin chi tiết friends
*/
export interface GetFriendsInfoDto {
sessionId: string;
friendIds: string[];
}
/**
* DTO để lấy friends đang online
*/
export interface GetOnlineFriendsDto {
sessionId: string;
}
/**
* DTO để gửi lời mời kết bạn
*/
export interface SendFriendRequestDto {
sessionId: string;
userId: string;
message: string;
}
/**
* DTO để chấp nhận lời mời kết bạn
*/
export interface AcceptFriendRequestDto {
sessionId: string;
userId: string;
}
/**
* DTO để lấy danh sách lời mời nhận được
*/
export interface GetReceivedFriendRequestsDto {
sessionId: string;
}
/**
* DTO để lấy danh sách lời mời đã gửi
*/
export interface GetSentFriendRequestsDto {
sessionId: string;
}
/**
* DTO để hủy lời mời đã gửi
*/
export interface UndoFriendRequestDto {
sessionId: string;
userId: string;
}
/**
* DTO để xóa bạn bè
*/
export interface RemoveFriendDto {
sessionId: string;
friendId: string;
}
/**
* DTO để tìm kiếm user theo số điện thoại
*/
export interface FindUserDto {
sessionId: string;
phoneNumbers: string[];
}
/**
* DTO để chặn user
*/
export interface BlockUserDto {
sessionId: string;
userId: string;
}
/**
* DTO để bỏ chặn user
*/
export interface UnblockUserDto {
sessionId: string;
userId: string;
}
/**
* DTO để thay đổi biệt danh friend
*/
export interface ChangeFriendAliasDto {
sessionId: string;
friendId: string;
alias: string;
}
/**
* DTO để xóa biệt danh friend
*/
export interface RemoveFriendAliasDto {
sessionId: string;
friendId: string;
}
/**
* DTO để lấy danh sách biệt danh
*/
export interface GetAliasListDto {
sessionId: string;
count?: number;
page?: number;
}
/**
* DTO cho API lastOnline
*/
export interface GetLastOnlineDto {
sessionId: string;
userId: string;
}
/**
* DTO cho API getOwnId
*/
export interface GetOwnIdDto {
sessionId: string;
}
/**
* DTO cho API fetchAccountInfo
*/
export interface FetchAccountInfoDto {
sessionId: string;
}
/**
* Friend object structure
*/
export interface FriendDto {
userId: string;
displayName: string;
avatar: string;
status: string;
phoneNumber?: string;
isFriend?: boolean;
friendSince?: number;
}
/**
* Zalo Friend Item - Chuẩn 100% từ SDK @warriorteam/zalo-personal
* Đây là structure thực tế được trả về từ API getAllFriends()
* Source: node_modules/@warriorteam/zalo-personal/dist/apis/getAllFriends.d.ts
*/
export interface ZaloFriendItem {
userId: string;
username: string;
displayName: string;
zaloName: string;
avatar: string;
bgavatar: string;
cover: string;
gender: number;
dob: number;
sdob: string;
status: string;
phoneNumber: string;
isFr: number;
isBlocked: number;
lastActionTime: number;
lastUpdateTime: number;
isActive: number;
key: number;
type: number;
isActivePC: number;
isActiveWeb: number;
isValid: number;
userKey: string;
accountStatus: number;
oaInfo: unknown;
user_mode: number;
globalId: string;
bizPkg: {
label: unknown;
pkgId: number;
};
createdTs: number;
oa_status: unknown;
}
/**
* Zalo GetAllFriends Response - Array của ZaloFriendItem
* Controller trả về trực tiếp array này, không wrap trong object
*/
export type ZaloGetAllFriendsResponse = ZaloFriendItem[];
/**
* Response DTO cho getAllFriends
*/
export interface GetAllFriendsResponseDto {
friends: FriendDto[];
total: number;
success: boolean;
error?: string;
timestamp: number;
}
/**
* Response DTO cho search friends
*/
export interface SearchFriendsResponseDto {
friends: FriendDto[];
keyword: string;
total: number;
success: boolean;
error?: string;
timestamp: number;
}
/**
* Simple operation result DTO
*/
export interface OperationResultDto {
message: string;
}
/**
* Friend request info DTO
*/
export interface FriendRequestInfoDto {
userId: string;
displayName: string;
avatar: string;
phoneNumber?: string;
message?: string;
}
/**
* Response DTO cho received friend requests
*/
export interface GetReceivedFriendRequestsResponseDto {
requests: FriendRequestInfoDto[];
total: number;
}
/**
* Response DTO cho sent friend requests
*/
export interface GetSentFriendRequestsResponseDto {
requests: FriendRequestInfoDto[];
total: number;
}
/**
* User search result DTO
*/
export interface UserSearchResultDto {
userId: string;
displayName: string;
avatar: string;
phoneNumber?: string;
canAddFriend?: boolean;
}
/**
* DTO cho kết quả tìm kiếm từng user
*/
export interface FindUserResultDto {
phoneNumber: string;
user: UserSearchResultDto | null;
status: 'found' | 'not_found' | 'error';
}
/**
* Response DTO cho find user
*/
export interface FindUserResponseDto {
results: FindUserResultDto[];
totalSearched: number;
totalFound: number;
}
/**
* Alias info DTO
*/
export interface AliasInfoDto {
friendId: string;
alias: string;
createdAt?: number;
}
/**
* Response DTO cho getLastOnline
*/
export interface GetLastOnlineResponseDto {
settings: {
show_online_status: boolean;
};
lastOnline: number;
}
/**
* Response DTO cho getOwnId
*/
export interface GetOwnIdResponseDto {
ownId: string;
}
/**
* Account info DTO
*/
export interface AccountInfoDto {
userId: string;
username: string;
displayName: string;
zaloName: string;
avatar: string;
bgavatar: string;
cover: string;
gender: number;
dob: number;
sdob: string;
status: string;
phoneNumber: string;
isFr: number;
isBlocked: number;
lastActionTime: number;
lastUpdateTime: number;
isActive: number;
key: number;
type: number;
isActivePC: number;
isActiveWeb: number;
isValid: number;
userKey: string;
accountStatus: number;
oaInfo: any;
user_mode: number;
globalId: string;
bizPkg: {
label: any;
pkgId: number;
};
createdTs: number;
oa_status: any;
}
/**
* Response DTO cho fetchAccountInfo
*/
export interface FetchAccountInfoResponseDto {
success: boolean;
accountInfo: AccountInfoDto;
timestamp: number;
error?: string;
}
/**
* Friend stats interface
*/
export interface FriendStats {
totalFriends: number;
onlineFriends: number;
offlineFriends: number;
unknownStatus: number;
friendsWithPhone: number;
}
/**
* User info response (for getFriendsInfo)
*/
export interface GetFriendsInfoResponse {
[key: string]: any;
}
/**
* Get online friends response
*/
export interface GetOnlineFriendsResponse {
[key: string]: any;
}
/**
* DTO để bỏ chặn user
*/
export interface UnblockUserRequest {
sessionId: string;
userId: string;
}
/**
* DTO để thay đổi biệt danh friend
*/
export interface ChangeFriendAliasRequest {
sessionId: string;
friendId: string;
alias: string;
}
/**
* DTO để xóa biệt danh friend
*/
export interface RemoveFriendAliasRequest {
sessionId: string;
friendId: string;
}
/**
* DTO để lấy danh sách biệt danh
*/
export interface GetAliasListRequest {
sessionId: string;
page?: number;
count?: number;
}
/**
* DTO để lấy thông tin last online
*/
export interface GetLastOnlineRequest {
sessionId: string;
userId: string;
}
/**
* DTO để lấy ID của chính mình
*/
export interface GetOwnIdRequest {
sessionId: string;
}
/**
* DTO để lấy thông tin tài khoản
*/
export interface FetchAccountInfoRequest {
sessionId: string;
}
/**
* Friend DTO - thông tin cơ bản của friend
*/
export interface FriendInfo {
userId: string;
displayName: string;
avatar: string;
status: string;
phoneNumber?: string;
isFriend?: boolean;
friendSince?: number;
}
/**
* Response DTO cho getAllFriends
*/
export interface GetAllFriendsResponse {
friends: FriendInfo[];
total: number;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho searchFriends
*/
export interface SearchFriendsResponseDto {
friends: FriendInfo[];
total: number;
keyword: string;
success: boolean;
timestamp: number;
error?: string;
}
export declare enum Gender {
Male = 0,
Female = 1
}
export type ProfileInfo = {
userId: string;
username: string;
displayName: string;
zaloName: string;
avatar: string;
bgavatar: string;
cover: string;
gender: Gender;
dob: number;
sdob: string;
status: string;
phoneNumber: string;
isFr: number;
isBlocked: number;
lastActionTime: number;
lastUpdateTime: number;
isActive: number;
key: number;
type: number;
isActivePC: number;
isActiveWeb: number;
isValid: number;
userKey: string;
accountStatus: number;
oaInfo: any;
user_mode: number;
globalId: string;
bizPkg: {
label: any;
pkgId: number;
};
createdTs: number;
oa_status: any;
};
export type UserInfoResponse = {
unchanged_profiles: Record<string, any>;
phonebook_version: number;
changed_profiles: Record<string, ProfileInfo>;
};
/**
* Response DTO cho getOnlineFriends
*/
export interface GetOnlineFriendsResponse {
onlineFriends: FriendInfo[];
total: number;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho getFriendsStats
*/
export interface GetFriendsStatsResponse {
totalFriends: number;
onlineFriends: number;
offlineFriends: number;
blockedUsers: number;
pendingRequests: number;
sentRequests: number;
success: boolean;
timestamp: number;
}
/**
* Friend Request DTO
*/
export interface FriendRequestInfo {
userId: string;
displayName: string;
avatar: string;
message?: string;
timestamp: number;
}
/**
* Response DTO cho sendFriendRequest
*/
export interface SendFriendRequestResponse {
userId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Response DTO cho acceptFriendRequest
*/
export interface AcceptFriendRequestResponse {
userId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Response DTO cho getReceivedFriendRequests
*/
export interface GetReceivedFriendRequestsResponse {
requests: FriendRequestInfo[];
total: number;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho getSentFriendRequests
*/
export interface GetSentFriendRequestsResponse {
requests: FriendRequestInfo[];
total: number;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho undoFriendRequest
*/
export interface UndoFriendRequestResponse {
message: string;
}
/**
* Response DTO cho removeFriend
*/
export interface RemoveFriendResponse {
friendId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* User search result DTO
*/
export interface UserSearchResult {
userId: string;
displayName: string;
avatar: string;
phoneNumber: string;
isFriend: boolean;
isBlocked: boolean;
}
/**
* Response DTO cho findUser
*/
export interface FindUserResponse {
results: UserSearchResult[];
total: number;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho blockUser
*/
export interface BlockUserResponse {
userId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Response DTO cho unblockUser
*/
export interface UnblockUserResponse {
userId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Alias info DTO
*/
export interface AliasInfo {
userId: string;
displayName: string;
alias: string;
createdAt: number;
}
/**
* Response DTO cho changeFriendAlias
*/
export interface ChangeFriendAliasResponse {
friendId: string;
alias: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Response DTO cho removeFriendAlias
*/
export interface RemoveFriendAliasResponse {
friendId: string;
success: boolean;
message: string;
timestamp: number;
}
/**
* Response DTO cho getAliasList
*/
export interface GetAliasListResponse {
aliases: AliasInfo[];
total: number;
meta: {
totalItems: number;
currentPage: number;
itemsPerPage: number;
totalPages: number;
};
success: boolean;
timestamp: number;
}
/**
* Response DTO cho getLastOnline
*/
export interface GetLastOnlineResponse {
userId: string;
lastOnline: number;
isOnline: boolean;
showOnlineStatus: boolean;
success: boolean;
timestamp: number;
}
/**
* Response DTO cho getOwnId
*/
export interface GetOwnIdResponse {
ownId: string;
success: boolean;
timestamp: number;
}
/**
* Account info DTO
*/
export interface AccountInfo {
userId: string;
username: string;
displayName: string;
zaloName: string;
avatar: string;
bgavatar: string;
cover: string;
gender: number;
dob: number;
sdob: string;
status: string;
phoneNumber: string;
isFr: number;
isBlocked: number;
lastActionTime: number;
lastUpdateTime: number;
isActive: number;
key: number;
type: number;
isActivePC: number;
isActiveWeb: number;
isValid: number;
userKey: string;
accountStatus: number;
oaInfo: any;
user_mode: number;
globalId: string;
bizPkg: {
label: any;
pkgId: number;
};
createdTs: number;
oa_status: any;
}
/**
* Response DTO cho fetchAccountInfo
*/
export interface FetchAccountInfoResponse {
accountInfo: AccountInfo;
success: boolean;
timestamp: number;
}
//# sourceMappingURL=friends.type.d.ts.map