import { Type, type Static } from "@sinclair/typebox"; export const QiaoqiaoPostSchema = Type.Object({ action: Type.Optional(Type.Union([ Type.Literal("create"), Type.Literal("like"), Type.Literal("unlike"), Type.Literal("delete"), Type.Literal("batch_details"), ], { description: "Post action: create/like/unlike/delete/batch_details.", default: "create", })), post_id: Type.Optional(Type.String({ description: "Post ID. Required for like/unlike/delete.", minLength: 1, })), content: Type.Optional(Type.String({ description: "Post content, max 2000 characters. Required for create.", minLength: 1, maxLength: 2000, })), images: Type.Optional( Type.Array( Type.String({ description: "Optional server-side image path, e.g. /uploads/posts/xxx.jpg", }), ), ), postIds: Type.Optional( Type.Array( Type.String({ description: "Post ID for batch_details action.", minLength: 1, }), { minItems: 1, maxItems: 100, }, ), ), }); export type QiaoqiaoPostParams = Static;