package incheon.ags.ias.sys.web.dto;

import incheon.ags.ias.sys.vo.SysVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import java.sql.Timestamp;
import java.time.LocalDate;

/**
 * 게시물 API 요청을 위한 DTO 클래스
 */
@Getter
@Setter
public class SysRequestDTO {
    @Schema(description = "시스템 ID", example = "SYS001", required = true)
    @NotBlank(message = "시스템 ID는 필수 항목입니다.")
    private String sysCd;

    @Schema(description = "시스템 명", example = "통합관리자", required = true)
    @NotBlank(message = "시스템 이름은 필수 항목입니다.")
    private String sysNm;

    @Schema(description = "시스템 설명", example = "전체 시스템의 통합 관리 및 모니터링을 담당하는 핵심 시스템")
    private String sysExpln;

    @Schema(description = "시스템 URL", example = "http://admin.city.go.kr")
    private String sysUrlAddr;

    @Schema(description = "사용 시작일", example = "2025-01-01")
    private LocalDate useBgngYmd;

    @Schema(description = "사용 종료일", example = "2025-01-01")
    private LocalDate useEndYmd;

    @Schema(description = "사용 여부", example = "true, false")
    private String useYn;

    public SysVO toEntity() {
        SysVO sysmngVO = new SysVO();
        sysmngVO.setSysCd(sysCd);
        sysmngVO.setSysNm(sysNm);
        sysmngVO.setSysExpln(sysExpln);
        sysmngVO.setSysUrlAddr(sysUrlAddr);
        sysmngVO.setUseBgngYmd(useBgngYmd);
        sysmngVO.setUseEndYmd(useEndYmd);
        sysmngVO.setUseYn(useYn);
        return sysmngVO;
    }
} 