package com.talentcard.server.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @Schema(name = "后台票包兑换码补录发放请求", description = "线下已发放但系统未记录的兑换码,后台补录一条发放记录并发放对应兑换码") public record TicketPackageSupplementRequest( @Schema(description = "票包ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "票包ID不能为空") Long packageId, @Schema(description = "兑换码ID;与兑换码码值二选一", example = "101") Long codeId, @Schema(description = "兑换码码值;与兑换码ID二选一", example = "MTR202608050001") @Size(max = 128, message = "兑换码码值长度不能超过128") String exchangeCode, @Schema(description = "领取人(持卡人)ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "领取人ID不能为空") Long talentId, @Schema(description = "人才卡ID;不传时自动取持卡人当前有效人才卡", example = "12") Long cardId, @Schema(description = "补录备注", example = "线下影院兑换,后台补录") @Size(max = 500, message = "备注长度不能超过500") String remark ) { }