package com.njcn.rdms.module.project.dal.dataobject.attachment;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 附件项。
 * <p>
 * 既作为业务表 {@code attachments} JSON 列的元素类型，也直接用于 ReqVO/RespVO 透传。
 * 文件本身由 rdms-system 的 file 模块上传到对象存储，本对象仅记录元数据。
 */
@Schema(description = "附件项")
@Data
public class AttachmentItem {

    @Schema(description = "文件编号，来自 rdms-system 文件上传返回的 data.id。Long 以字符串保存，避免前端精度丢失",
            example = "10001")
    private String id;

    @Schema(description = "文件访问 URL（http/https，长度 ≤ 1024）",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "http://oss.example.com/task/2026/05/abc.docx")
    private String url;

    @Schema(description = "原文件名（含扩展名，长度 ≤ 255）",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "需求评审记录.docx")
    private String name;

    @Schema(description = "文件大小（字节）", example = "245760")
    private Long size;

    @Schema(description = "MIME Content-Type（建议长度 ≤ 128）",
            example = "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
    private String contentType;

}
