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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.geotools.api.data.Join;

import javax.validation.constraints.NotEmpty;

@Getter
@Setter
public class JoinFeaturesRequestDTO extends AbstractBoundaryAnalysisRequestDTO {

    @Schema(description = "입력 레이어의 필드 이름")
    @NotEmpty
    String inputField;

    @Schema(description = "조인 레이어의 필드 이름")
    @NotEmpty
    String joinField;

    @Schema(description = "조인 영역")
    @NotEmpty
    String joinGeometry;

    @Schema(description = "조인 유형 (INNER/OUTER)")
    Join.Type joinType = Join.Type.INNER;

    @Override
    protected Object jsonPart() {
        return new Object() {
            public final String inputField = JoinFeaturesRequestDTO.this.inputField;
            public final String joinField = JoinFeaturesRequestDTO.this.joinField;
            public final Join.Type joinType = JoinFeaturesRequestDTO.this.joinType;
        };
    }
}
