/**
 * @ProjectName: 智慧评标-主观分助手
 * @Package: com.zhpb.gdyd_zhpb_zgf.dto
 * @ClassName: FileUploadRequest
 * @Description: 文件上传请求DTO
 * @Author: 张志锋
 * @Date: 2025-11-05
 * @Version: 1.0
 * @Copyright: © 2025 智慧评标-主观分助手
 */
package com.zhpb.gdyd_zhpb_zgf.dto;

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

import java.util.List;

/**
 * ES平台文件上传请求DTO
 */
public class FileUploadRequest {

    /**
     * 采购文件上传请求
     */
    @Schema(description = "采购文件上传请求")
    public static class ProcurementFileRequest {
        @Schema(description = "项目ID", example = "550e8400-e29b-41d4-a716-446655440000")
        private String projectId;

        @Schema(description = "包ID", example = "550e8400-e29b-41d4-a716-446655440001")
        private String packageId;

        @Schema(description = "采购文件JSON的URL列表")
        private List<String> fileIds;

        public String getProjectId() {
            return projectId;
        }

        public void setProjectId(String projectId) {
            this.projectId = projectId;
        }

        public String getPackageId() {
            return packageId;
        }

        public void setPackageId(String packageId) {
            this.packageId = packageId;
        }

        public List<String> getFileIds() {
            return fileIds;
        }

        public void setFileIds(List<String> fileIds) {
            this.fileIds = fileIds;
        }
    }

    /**
     * 应答文件上传请求
     */
    @Schema(description = "应答文件上传请求")
    public static class ResponseFileRequest {
        @Schema(description = "项目ID", example = "550e8400-e29b-41d4-a716-446655440000")
        private String projectId;

        @Schema(description = "包ID", example = "550e8400-e29b-41d4-a716-446655440001")
        private String packageId;

        @Schema(description = "供应商ID", example = "supplier-001")
        private String supplierId;

        @Schema(description = "供应商应答文件URL列表")
        private List<String> fileIds;

        @Schema(description = "文件类型：1商务、2技术", example = "1")
        private String fileType;

        @Schema(description = "采购文件JSON的URL地址")
        private String jsonFileId;

        @Schema(description = "单位ID", example = "00030000000000000000")
        private String unitId;

        public String getProjectId() {
            return projectId;
        }

        public void setProjectId(String projectId) {
            this.projectId = projectId;
        }

        public String getPackageId() {
            return packageId;
        }

        public void setPackageId(String packageId) {
            this.packageId = packageId;
        }

        public String getSupplierId() {
            return supplierId;
        }

        public void setSupplierId(String supplierId) {
            this.supplierId = supplierId;
        }

        public List<String> getFileIds() {
            return fileIds;
        }

        public void setFileIds(List<String> fileIds) {
            this.fileIds = fileIds;
        }

        public String getFileType() {
            return fileType;
        }

        public void setFileType(String fileType) {
            this.fileType = fileType;
        }

        public String getJsonFileId() {
            return jsonFileId;
        }

        public void setJsonFileId(String jsonFileId) {
            this.jsonFileId = jsonFileId;
        }

        public String getUnitId() {
            return unitId;
        }

        public void setUnitId(String unitId) {
            this.unitId = unitId;
        }
    }

    /**
     * 通用响应
     */
    @Schema(description = "API响应")
    public static class ApiResponse {
        @Schema(description = "响应编码：0成功，其他失败", example = "0")
        private String code;

        @Schema(description = "响应消息", example = "成功")
        private String msg;

        public ApiResponse() {}

        public ApiResponse(String code, String msg) {
            this.code = code;
            this.msg = msg;
        }

        public String getCode() {
            return code;
        }

        public void setCode(String code) {
            this.code = code;
        }

        public String getMsg() {
            return msg;
        }

        public void setMsg(String msg) {
            this.msg = msg;
        }
    }
}
