import type { RoomState } from '@music-together/shared' import type { RoomData } from '../repositories/types.js' /** 将内部 RoomData 转为客户端可见的 RoomState(不含密码明文) */ export function toPublicRoomState(data: RoomData): RoomState { return { id: data.id, name: data.name, creatorId: data.creatorId, hostId: data.hostId, temporaryAdminUserId: data.temporaryAdminUserId, hasPassword: data.password !== null, hidden: data.hidden, permanent: data.permanent, allowTemporaryAdminTrackRemoval: data.allowTemporaryAdminTrackRemoval, allowTemporaryAdminQueueClear: data.allowTemporaryAdminQueueClear, audioQuality: data.audioQuality, users: data.users, members: data.members, queue: data.queue, currentTrack: data.currentTrack, playState: data.playState, playMode: data.playMode, } } /** 仅 owner 可见的完整房间状态(含密码明文,用于设置面板展示) */ export function toPublicRoomStateForOwner(data: RoomData): RoomState { return { ...toPublicRoomState(data), password: data.password ?? null, } }