Files
photo-live/services/api/src/interactions/dto.ts
T

25 lines
961 B
TypeScript
Raw Normal View History

// services/api/src/interactions/dto.ts —— 点赞批次上报请求体(P2 Task 7)。
// 校验边界与契约 LikeBatchRequest 逐字段对齐(sessionId/batchId 1..64、
// delta 1..20 整数);越界一律 400 VALIDATION_FAILED(全局 ValidationPipe
// whitelist 剥离未声明字段)。delta 必须是 JSON number 整数(管道未开
// transform,字符串数字不静默转换——公开匿名端点从严)。
import { IsInt, IsString, Length, Max, Min } from 'class-validator';
export class LikeBatchDto {
/** 会话标识(客户端随机生成、会话期间复用;限速滑窗的键之一)。 */
@IsString()
@Length(1, 64)
sessionId!: string;
/** 批次幂等键:同批失败重试必须复用,跨批次不得复用。 */
@IsString()
@Length(1, 64)
batchId!: string;
/** 本批新增点赞数(客户端短窗合并后的累计点击数)。 */
@IsInt()
@Min(1)
@Max(20)
delta!: number;
}