From cb9cd49627b65a4c0e137e08063271a8cefe1826 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 23 七月 2026 17:48:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/im/home/types/index.ts | 318 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 318 insertions(+), 0 deletions(-)
diff --git a/src/views/im/home/types/index.ts b/src/views/im/home/types/index.ts
new file mode 100644
index 0000000..aaa2011
--- /dev/null
+++ b/src/views/im/home/types/index.ts
@@ -0,0 +1,318 @@
+// ==================== WebSocket 甯� / 浜嬩欢 ====================
+
+// 鍚庣 WebSocket 缁熶竴甯х粨鏋勶細{ type, content }
+export interface WebSocketFrame {
+ type: string // 甯х被鍨嬶紝瀵归綈 ImWebSocketMessageType
+ content: string // 甯у唴瀹癸紙JSON 瀛楃涓诧級
+}
+
+// IM WebSocket 閫氱煡 DTO锛堝榻愬悗绔� ImNotificationWebSocketDTO锛�
+export interface ImNotificationWebSocketDTO {
+ conversationType: number // 浼氳瘽绫诲瀷
+ contentType: number // 鍐呭绫诲瀷
+ payload: Record<string, any> // 璐熻浇鏁版嵁
+}
+
+// 鏃犱細璇濆湪绾块�氱煡锛堝榻愬悗绔� conversationType = NONE 鐨勭嫭绔� payload锛�
+export interface ImNoConversationNotification {
+ type: number // 鍐呭绫诲瀷
+ [key: string]: any
+}
+
+// 绉佽亰娑堟伅 DTO锛堝榻愬悗绔� ImPrivateMessageNotification锛�
+export interface ImPrivateMessageNotification {
+ id: number // 娑堟伅缂栧彿
+ clientMessageId: string // 瀹㈡埛绔秷鎭紪鍙�
+ senderId: number // 鍙戦�佷汉缂栧彿
+ receiverId: number // 鎺ユ敹浜虹紪鍙�
+ type: number // 鍐呭绫诲瀷
+ content: string // 娑堟伅鍐呭
+ status: number // 娑堟伅鐘舵��
+ receiptStatus?: number // 鍥炴墽鐘舵�侊紙涓嶉渶瑕� / 寰呭畬鎴� / 宸插畬鎴愶級
+ sendTime: string // 鍙戦�佹椂闂�
+}
+
+// 缇よ亰娑堟伅 DTO锛堝榻愬悗绔� ImGroupMessageNotification锛�
+export interface ImGroupMessageNotification {
+ id: number // 娑堟伅缂栧彿
+ clientMessageId: string // 瀹㈡埛绔秷鎭紪鍙�
+ senderId: number // 鍙戦�佷汉缂栧彿
+ groupId: number // 缇ょ紪鍙�
+ type: number // 鍐呭绫诲瀷
+ content: string // 娑堟伅鍐呭
+ status: number // 娑堟伅鐘舵��
+ sendTime: string // 鍙戦�佹椂闂�
+ atUserIds?: number[] // 缇� @ 鐩爣鐢ㄦ埛鍒楄〃
+ receiverUserIds?: number[] // 缇ゅ畾鍚戞帴鏀剁敤鎴峰垪琛�
+ readCount?: number // 缇ゅ洖鎵у凡璇讳汉鏁帮紙type = RECEIPT 鏃朵娇鐢級
+ receiptStatus?: number // 缇ゅ洖鎵х姸鎬侊紙type = RECEIPT 鏃朵娇鐢級
+ readId?: number // 宸茶浣嶇疆
+}
+
+// 娑堟伅宸茶鍚屾閫氱煡锛堝榻愬悗绔� ImMessageReadNotification锛�
+export interface ImMessageReadNotification {
+ id: number // 宸茶浣嶇疆
+ type: number // 鍐呭绫诲瀷
+ senderId?: number // 鍙戦�佷汉缂栧彿
+ receiverId?: number // 绉佽亰鎺ユ敹浜虹紪鍙�
+ groupId?: number // 缇ょ紪鍙�
+ channelId?: number // 棰戦亾缂栧彿
+ readId?: number // 宸茶浣嶇疆
+}
+
+// 娑堟伅鍥炴墽閫氱煡锛堝榻愬悗绔� ImMessageReceiptNotification锛�
+export interface ImMessageReceiptNotification {
+ id: number // 娑堟伅缂栧彿
+ type: number // 鍐呭绫诲瀷
+ senderId?: number // 宸茶鏂圭敤鎴风紪鍙�
+ receiverId?: number // 绉佽亰鎺ユ敹浜虹紪鍙�
+ groupId?: number // 缇ょ紪鍙�
+ readCount?: number // 缇ゅ洖鎵у凡璇讳汉鏁�
+ receiptStatus?: number // 缇ゅ洖鎵х姸鎬�
+}
+
+// ==================== 鏈湴浼氳瘽 / 娑堟伅缁撴瀯 ====================
+
+/** 寮曠敤娑堟伅 */
+export interface QuoteMessage {
+ messageId: number // 寮曠敤娑堟伅缂栧彿
+ senderId: number // 寮曠敤娑堟伅鍙戦�佷汉缂栧彿
+ type: number // 寮曠敤鍐呭绫诲瀷
+ content: string // 寮曠敤娑堟伅鍐呭
+}
+
+// 浼氳瘽鏁版嵁缁撴瀯锛堝墠绔嚜鏈夌粨鏋勶紝鍚庣鏃犲搴斿疄浣擄級
+export interface Conversation {
+ // ========== 鏍稿績鏍囪瘑 ==========
+ targetId: number // 浼氳瘽鐩爣缂栧彿锛氱鑱�=瀵规柟 userId锛涚兢鑱�=groupId
+ type: number // 浼氳瘽绫诲瀷锛屽榻� ImConversationType
+
+ // ========== 灞曠ず瀛楁 ==========
+ name: string // 灞曠ず鍚嶇О锛堢鑱�=濂藉弸鏄电О锛涚兢鑱�=缇ゅ悕锛�
+ avatar: string // 澶村儚
+ unreadCount: number // 鏈鏁�
+
+ // ========== 鏈�鍚庝竴鏉℃秷鎭簨瀹炵储寮� ==========
+ lastContent: string // 浼氳瘽鍒楄〃灞曠ず鐨勬渶鍚庝竴鏉℃秷鎭憳瑕�
+ lastSendTime: number // 鏈�鍚庝竴鏉℃秷鎭椂闂达紝鐢ㄤ簬鎺掑簭
+ lastSenderId?: number // 鍙戦�佷汉缂栧彿
+ lastMessageType?: number // 鍐呭绫诲瀷锛屽榻� ImContentType
+ lastMessageId?: number // 鏈�鍚庝竴鏉℃湇鍔$娑堟伅缂栧彿
+ lastClientMessageId?: string // 鏈�鍚庝竴鏉″鎴风娑堟伅缂栧彿
+ lastMessageStatus?: number // 鏈�鍚庝竴鏉℃秷鎭姸鎬�
+ lastReceiptStatus?: number // 鏈�鍚庝竴鏉$兢鍥炴墽鐘舵��
+ lastSelfSend?: boolean // 鏄惁鑷繁鍙戠殑
+ lastSenderDisplayName?: string // 鍙戦�佷汉鏄剧ず鍚嶅揩鐓р�斺�斾粎浣� utils/user.getSenderDisplayName 瀹炴椂绠椾笉鍑虹湡鍚嶆椂鐨� fallback
+
+ // ========== UI 鐘舵�� ==========
+ deleted?: boolean // 鏄惁宸插垹闄わ紙杞垹鏍囪锛屾寔涔呭寲鏃惰繃婊わ級
+ top?: boolean // 鏄惁缃《锛堟帓搴忔椂浼樺厛锛�
+ silent?: boolean // 鏄惁鍏嶆墦鎵帮紙涓嶅睍绀烘湭璇诲窘鏍� + 涓嶅搷鎻愮ず闊筹級
+ atMe?: boolean // 缇よ亰锛氭槸鍚︽湁浜� @鎴�
+ atAll?: boolean // 缇よ亰锛氭槸鍚︽湁浜� @鍏ㄤ綋鎴愬憳
+ reportedReadMessageId?: number // 宸蹭笂鎶ュ埌鏈嶅姟绔殑鏈�澶у凡璇绘秷鎭紪鍙�
+ draft?: {
+ html: string // 杈撳叆妗� HTML
+ plain: string // 杈撳叆妗嗙函鏂囨湰
+ reply?: QuoteMessage // 寮曠敤娑堟伅
+ } // 杈撳叆妗嗚崏绋�
+}
+
+// 娑堟伅鏁版嵁缁撴瀯
+export interface Message {
+ // ========== 鍚庣瀛楁锛堝榻� ImPrivateMessageNotification / ImGroupMessageNotification锛� ==========
+ id?: number // 鏈嶅姟绔秷鎭紪鍙凤紝鍙戦�佷腑涓虹┖
+ clientMessageId: string // 瀹㈡埛绔秷鎭紪鍙凤紝鏈湴鐢熸垚鐢ㄤ簬鍚堝苟鍘婚噸
+ type: number // 鍐呭绫诲瀷锛屽榻� ImContentType
+ content: string // 娑堟伅鍐呭锛孞SON 瀛楃涓�
+ status: number // 娑堟伅鐘舵�侊紝瀵归綈 ImMessageStatus
+ sendTime: number // 鍙戦�佹椂闂达紙鍓嶇杞绉掓椂闂存埑锛涘悗绔负 LocalDateTime 瀛楃涓诧級
+ senderId: number // 鍙戦�佷汉缂栧彿
+ atUserIds?: number[] // 缇� @ 鐩爣鐢ㄦ埛鍒楄〃
+ receiverUserIds?: number[] // 缇ゅ畾鍚戞帴鏀剁敤鎴峰垪琛�
+ receiptStatus?: number // 鍥炴墽鐘舵�侊紝瀵归綈 ImMessageReceiptStatus锛堢鑱� / 缇� / 棰戦亾閫氱敤锛�
+ readCount?: number // 缇ゅ洖鎵у凡璇讳汉鏁帮紙浠呯兢娑堟伅锛�
+ materialId?: number // 鍏宠仈棰戦亾绱犳潗缂栧彿锛堜粎棰戦亾娑堟伅 type=MATERIAL锛�
+
+ // ========== 鍓嶇鎵╁睍瀛楁 ==========
+ // 鍙戦�佷汉鏄剧ず鍚嶄竴寰嬫覆鏌撴椂瀹炴椂绠楋細utils/user.getSenderDisplayName / getSenderRealNickname
+ // 涓嶅湪 Message 涓婂瓨浠讳綍鍚嶅瓧蹇収锛岄伩鍏嶅娉� / 缇ゆ樀绉板彉鏇村悗鍘嗗彶娑堟伅鏄剧ず闄堟棫
+ targetId: number // 浼氳瘽鐩爣缂栧彿锛堢鑱�=瀵圭 userId / 缇よ亰=groupId锛夛紝涓� Conversation.targetId 涓�鑷�
+ selfSend: boolean // 鏄惁鑷繁鍙戦�侊紙鍓嶇鎸� senderId 璁$畻锛�
+ uploadProgress?: number // 濯掍綋娑堟伅涓婁紶杩涘害锛�0-100锛夛紱status=SENDING 鏈熼棿鎸佺画鏇存柊锛沘ck 鍚庣疆 undefined
+ // 濯掍綋娑堟伅鍐呭瓨涓繚鐣欑殑鍘熷 File锛涗笅鍒掔嚎鍓嶇紑琛ㄧず涓嶈繘 JSON / 涓嶆寔涔呭寲锛圛DB 鎭㈠鍚庡繀涓� undefined锛�
+ // 澶辫触閲嶈瘯鏃舵寜瀹冮噸璧颁笂浼狅紱椤甸潰鍒锋柊鍚庤瀛楁涓㈠け锛屾仮澶嶉樁娈电洿鎺� drop 鏁存潯娑堟伅
+ _localFile?: File
+ _ackMerging?: boolean // ack 鍚堝苟涓爣璁帮紝涓嶆寔涔呭寲
+}
+
+// ==================== IndexedDB 鏈湴瀛樺偍缁撴瀯 ====================
+
+/** 浼氳瘽 IndexedDB 瀛樺偍缁撴瀯 */
+export interface ConversationDO extends Conversation {
+ clientConversationId: string // `${type}:${targetId}`
+}
+
+export interface ConversationRead {
+ conversationType: number // 浼氳瘽绫诲瀷锛屽榻� ImConversationType
+ targetId: number // 浼氳瘽鐩爣缂栧彿
+ messageId: number // 褰撳墠鐢ㄦ埛宸茶鍒扮殑鏈�澶ф秷鎭紪鍙�
+ updateTime?: number // 鏇存柊鏃堕棿
+}
+
+/** 浼氳瘽璇讳綅缃� IndexedDB 瀛樺偍缁撴瀯 */
+export interface ConversationReadDO extends ConversationRead {
+ clientConversationId: string // `${conversationType}:${targetId}`
+}
+
+/** 娑堟伅 IndexedDB 瀛樺偍缁撴瀯 */
+export interface MessageDO extends Omit<Message, '_ackMerging' | '_localFile' | 'uploadProgress'> {
+ messageKey: string // `${conversationType}:${id}` 鎴� `client:${clientMessageId}`
+ conversationType: number // 浼氳瘽绫诲瀷锛屽榻� ImConversationType
+ clientConversationId: string // ConversationDO.clientConversationId
+}
+
+/** 璁剧疆 IndexedDB 瀛樺偍缁撴瀯 */
+export interface SettingDO<T = unknown> {
+ key: string
+ value: T
+ updateTime?: number
+}
+
+// ==================== 缇� / 缇ゆ垚鍛� ====================
+
+// 缇ゅ疄浣擄紙鍓嶇鍐呴儴缁撴瀯锛�
+export interface Group {
+ // ========== 鍚庣瀛楁锛堝榻� ImGroupApi.GroupRespVO锛� ==========
+ id: number // 缇ょ紪鍙�
+ name: string // 缇ゅ悕绉�
+ avatar?: string // 缇ゅご鍍�
+ notice?: string // 缇ゅ叕鍛�
+ ownerUserId?: number // 缇や富鐢ㄦ埛缂栧彿
+ pinnedMessages?: Message[] // 缇ょ疆椤舵秷鎭垪琛�
+ mutedAll?: boolean // 鏄惁鍏ㄧ兢绂佽█
+ banned?: boolean // 鏄惁琚鐞嗗憳灏佺
+ joinApproval?: boolean // 杩涚兢鏄惁闇�缇や富 / 绠$悊鍛樺鎵�
+ joinStatus?: number // 褰撳墠鐧诲綍鐢ㄦ埛鍦ㄨ缇ょ殑鎴愬憳鐘舵�侊紙鍙傝 CommonStatusEnum锛�0 鍦ㄧ兢 / 1 宸查��缇わ級锛涘巻鍙查��缇ょ兢浠嶈繑鍥烇紝渚涘睍绀哄巻鍙叉秷鎭殑缇ゅ悕 / 澶村儚
+
+ // ========== 鍓嶇鎵╁睍瀛楁锛坲ser-per-group 缁村害锛� ==========
+ silent?: boolean // 鏄惁鍏嶆墦鎵般�備粠褰撳墠鐢ㄦ埛鐨� GroupMember 鍥炲~
+ groupRemark?: string // 缇ゅ娉ㄣ�備粠褰撳墠鐢ㄦ埛鐨� GroupMember 鍥炲~锛堝綋鍓嶇敤鎴峰璇ョ兢鐨勮嚜瀹氫箟鍚嶏級
+ members?: GroupMember[] // 缇ゆ垚鍛樼紦瀛橈紙鎸夐渶鎳掑姞杞斤級
+ infoLoaded?: boolean // 缇よ鎯呮槸鍚﹀凡鍔犺浇锛屾湰杞細璇濆唴瀛樻爣璁帮紝涓嶆寔涔呭寲
+ activeCallLoaded?: boolean // 缇ゆ椿璺冮�氳瘽鏄惁宸叉帰娴嬶紝鏈疆浼氳瘽鍐呭瓨鏍囪锛屼笉鎸佷箙鍖�
+ activeCallExpired?: boolean // 缇ゆ椿璺冮�氳瘽鎺㈡祴鏄惁宸茶繃鏈�
+ membersLoaded?: boolean // members 鏄惁"瀹屾暣鍔犺浇"鈥斺�斿彧鏈夋暣缇� loadGroupMemberList / fetchGroupMemberList 鍛戒腑鏃朵负 true锛沠etchGroupMember 鍗曟垚鍛樿ˉ榻愪笉缃綅锛岄伩鍏� fetchGroupMemberList(force=false) 鍛戒腑缂撳瓨鏃惰鍒ゆ暣缇ゅ凡鍔犺浇
+ membersExpired?: boolean // 缇ゆ垚鍛樼紦瀛樻槸鍚﹀凡杩囨湡锛涢噸杩� / 閲嶆柊杩涘叆 IM 鍚庡彧鏍囪涓嶅垹闄わ紝涓嬫杩涘叆缇や細璇濆啀鍒锋柊
+ memberCount?: number // 鎴愬憳鎬绘暟
+}
+
+/** 缇� IndexedDB 瀛樺偍缁撴瀯 */
+export type GroupDO = Omit<
+ Group,
+ 'activeCallExpired' | 'activeCallLoaded' | 'infoLoaded' | 'members' | 'membersExpired' | 'membersLoaded'
+>
+
+// 缇ゆ垚鍛樺疄浣擄紙鍓嶇鍐呴儴缁撴瀯锛�
+export interface GroupMember {
+ // ========== 鍚庣瀛楁锛堝榻� ImGroupMemberApi.GroupMemberRespVO锛� ==========
+ id?: number // 缇ゆ垚鍛樺叧绯昏褰曠紪鍙�
+ groupId: number // 缇ょ紪鍙�
+ userId: number // 鐢ㄦ埛缂栧彿
+ avatar?: string // 澶村儚
+ nickname: string // 鐢ㄦ埛鏄电О
+ displayUserName?: string // 璇ユ垚鍛樺湪缇ゅ唴鑷畾涔夋樀绉帮紙姣忎釜 member 涓�浠斤紱涓嶄笌 nickname 鍚堝苟锛岀敱娑堣垂鏂规寜闇�鍙栬垗锛�
+ status?: number // 鍦ㄧ兢 / 閫�缇ょ姸鎬侊紝瀵归綈 CommonStatusEnum
+ role?: number // 鎴愬憳瑙掕壊锛屽弬瑙� ImGroupMemberRole 鏋氫妇锛�1=缇や富 2=绠$悊鍛� 3=鏅�氭垚鍛�
+ muteEndTime?: string // 绂佽█鍒版湡鏃堕棿锛圛SO 瀛楃涓诧級
+
+ // ========== 鍓嶇鎵╁睍瀛楁 ==========
+ isOwner?: boolean // 鏄惁缇や富锛堝墠绔粠 Group.ownerUserId 璁$畻锛�
+}
+
+// ==================== 濂藉弸 ====================
+
+// 濂藉弸瀹炰綋锛堝墠绔唴閮ㄧ粨鏋勶級
+export interface Friend {
+ // ========== 鍚庣瀛楁锛堝榻� ImFriendApi.FriendRespVO锛� ==========
+ id?: number // 濂藉弸鍏崇郴璁板綍缂栧彿锛堟湰鍦颁箰瑙傛柊澧炴椂鍙兘鏆傜己锛�
+ friendUserId: number // 濂藉弸鐢ㄦ埛缂栧彿锛堜笌 Conversation.targetId 瀵归綈锛�
+ nickname: string // 濂藉弸鏄电О锛堝鏂圭湡瀹炴樀绉帮紝姘歌繙涓嶈澶囨敞瑕嗙洊锛沀I 鏄剧ず璧� displayName || nickname锛�
+ nicknamePinyin?: string // 鏄电О鐨勬嫾闊筹紙鍚庣鐢� Pinyin4j 绠楀ソ鍥炲~锛屽皬鍐欐棤绌烘牸锛�
+ avatar?: string // 濂藉弸澶村儚
+ silent?: boolean // 鏄惁鍏嶆墦鎵帮紙涓嶅睍绀烘湭璇诲窘鏍� + 涓嶅搷鎻愮ず闊筹級
+ displayName?: string // 濂藉弸灞曠ず澶囨敞锛氫粎鑷繁鍙鐨勫埆鍚嶏紙鍗曞瓧娈典笉姝т箟锛屼笉甯� Friend 鍓嶇紑锛�
+ displayNamePinyin?: string // 澶囨敞鐨勬嫾闊筹紙鍚庣鐢� Pinyin4j 绠楀ソ鍥炲~锛屽皬鍐欐棤绌烘牸锛�
+ status?: number // 濂藉弸鐘舵�侊紝瀵归綈 CommonStatusEnum锛圖ISABLE = 宸插垹闄わ紝杞垹淇濈暀璁板綍锛�
+ addSource?: number // 娣诲姞鏉ユ簮锛涘弬瑙� ImFriendAddSourceEnum
+ pinned?: boolean // 鏄惁缃《鑱旂郴浜�
+ blocked?: boolean // 鏄惁鎷夐粦锛堜粎鑷繁鍙锛屽崟杈瑰睆钄藉鏂圭鑱婃秷鎭級
+ addTime?: number // 娣诲姞濂藉弸鏃堕棿锛堟绉掓椂闂存埑锛涘悗绔负 LocalDateTime 瀛楃涓诧紝鍦� convertFriend 杞崲锛�
+ deleteTime?: number // 鍒犻櫎濂藉弸鏃堕棿锛堟绉掓椂闂存埑锛涘悗绔负 LocalDateTime 瀛楃涓诧紝鍦� convertFriend 杞崲锛�
+}
+
+/**
+ * 濂藉弸鐢宠璁板綍锛堝墠绔唴閮ㄧ粨鏋勶紝瀵归綈鍚庣 ImFriendRequestApi.FriendRequestRespVO锛�
+ */
+export interface FriendRequest {
+ // ========== 鍚庣瀛楁锛堝榻� ImFriendRequestApi.FriendRequestRespVO锛� ==========
+ id: number // 鐢宠缂栧彿
+ fromUserId: number // 鍙戣捣鏂圭敤鎴风紪鍙�
+ toUserId: number // 鎺ユ敹鏂圭敤鎴风紪鍙�
+ handleResult: number // 澶勭悊缁撴灉锛�0=鏈鐞嗭紱1=鍚屾剰锛�2=鎷掔粷
+ applyContent?: string // 鐢宠鐞嗙敱锛堝彂璧锋柟濉啓锛�
+ handleContent?: string // 澶勭悊鐞嗙敱锛堟帴鏀舵柟鎷掔粷鏃跺彲閫夊~锛�
+ addSource?: number // 娣诲姞鏉ユ簮锛涘弬瑙� ImFriendAddSourceEnum
+ handleTime?: number // 澶勭悊鏃堕棿锛堟绉掓椂闂存埑锛�
+ createTime: number // 鐢宠鍒涘缓鏃堕棿锛堟绉掓椂闂存埑锛�
+
+ // ========== 鑱氬悎瀛楁锛堣嚜 AdminUser锛屼粎灞曠ず鐢級 ==========
+ fromNickname?: string // 鍙戣捣鏂规樀绉�
+ fromAvatar?: string // 鍙戣捣鏂瑰ご鍍�
+ toNickname?: string // 鎺ユ敹鏂规樀绉�
+ toAvatar?: string // 鎺ユ敹鏂瑰ご鍍�
+}
+
+// ==================== 鐢ㄦ埛鍚嶇墖 ====================
+
+// 鐢ㄦ埛绮剧畝淇℃伅锛堝榻愬悗绔� UserSimpleRespVO锛屽悕鐗� / 澶村儚 hover 绛夊満鏅叡鐢級
+export interface User {
+ id: number
+ nickname?: string
+ avatar?: string
+ sex?: number
+ deptId?: number
+ deptName?: string
+}
+
+// ==================== 鍒楄〃琛屽睍绀虹敤 Lite 绫诲瀷 ====================
+
+/**
+ * 濂藉弸鍒楄〃琛岋細浠� Friend 娲剧敓鐨勫睍绀哄揩鐓�
+ * - id 鐢� friendUserId锛堜笌鍒楄〃 click / 閫変腑姣斿涓�鑷达級锛屼笉鏄� Friend.id锛堝叧绯昏褰曚富閿級
+ * - 杞垹锛坰tatus === DISABLE锛夌敱涓婃父 friendStore.getActiveFriendList / getActiveFriendLiteList 缁熶竴杩囨护鎺�
+ */
+export interface FriendLite {
+ id: number
+ nickname: string
+ nicknamePinyin?: string // 鏄电О鎷奸煶锛堢敤浜庡瓧姣嶅垎妗� / 鎷奸煶鎼滅储锛�
+ avatar?: string
+ displayName?: string
+ displayNamePinyin?: string // 澶囨敞鎷奸煶锛堜紭鍏堜簬 nicknamePinyin 鍙備笌鍒嗘《锛�
+}
+
+/**
+ * 缇ゅ垪琛ㄨ锛氫粠 Group 娲剧敓鐨勫睍绀哄揩鐓�
+ * - showGroupName / showImage锛氳皟鐢ㄦ柟鍐冲畾甯︿笉甯﹀娉紙濡備釜浜哄娉ㄧ兢鍚嶏級锛涘睍绀烘寜 show* > 鍘熷�煎厹搴�
+ * - showImageThumb锛氶珮棰戝垪琛ㄧ敤缂╃暐鍥撅紝閬垮厤鎷夊師鍥鹃樆濉炴粴鍔�
+ */
+export interface GroupLite {
+ id: number
+ name?: string
+ showGroupName?: string
+ showImage?: string
+ showImageThumb?: string
+ memberCount?: number
+ ownerId?: number
+ joinApproval?: boolean // 杩涚兢鏄惁闇�缇や富 / 绠$悊鍛樺鎵�
+}
--
Gitblit v1.9.3