package incheon.ags.mrb.analysis.vo.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;

@Getter
@Setter
@Schema(description = "디졸브 요청")
public class DissolveRequestDTO extends AbstractAnalysisRequestDTO {

    @Schema(description = "병합 기준이 되는 필드명")
    @NotEmpty
    String dissolveField;

    @Schema(description = "통계 필드 목록 (쉼표로 구분된 필드명 문자열)")
    String statisticsFields;

    @Schema(description = "멀티파트 형식으로 병합 여부 (true일 경우 하나의 피처로 병합)")
    Boolean useMultiPart = true;

    @Override
    protected Object jsonPart() {
        return new Object() {
            public final String dissolveField = DissolveRequestDTO.this.dissolveField;
            public final String statisticsFields = DissolveRequestDTO.this.statisticsFields;
            public final Boolean useMultiPart = DissolveRequestDTO.this.useMultiPart;
        };
    }
}
