2026-05-14 23:11:25 +07:00
|
|
|
import { z } from "zod";
|
2026-05-13 16:57:07 +07:00
|
|
|
|
2026-05-14 23:11:25 +07:00
|
|
|
const userStateUpdateSchema = z.object({
|
|
|
|
|
userId: z.string(),
|
|
|
|
|
username: z.string(),
|
|
|
|
|
avatar: z.string(),
|
|
|
|
|
speaking: z.boolean(),
|
|
|
|
|
});
|
2026-05-13 16:57:07 +07:00
|
|
|
|
2026-05-14 23:11:25 +07:00
|
|
|
export type UserStateUpdate = z.infer<typeof userStateUpdateSchema>;
|
2026-05-13 16:57:07 +07:00
|
|
|
|
2026-05-14 23:11:25 +07:00
|
|
|
export interface AudioMessage {
|
|
|
|
|
data: Buffer;
|
|
|
|
|
userId: string;
|
2026-05-13 16:57:07 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function validateUserStateUpdate(
|
|
|
|
|
data: unknown,
|
|
|
|
|
): Promise<UserStateUpdate | null> {
|
2026-05-14 23:11:25 +07:00
|
|
|
const result = userStateUpdateSchema.safeParse(data);
|
|
|
|
|
return result.success ? result.data : null;
|
2026-05-13 16:57:07 +07:00
|
|
|
}
|