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

import incheon.ags.ias.myAuthrtAplyHstry.vo.MyAuthrtAplyHstryVO;
import incheon.ags.ias.userRole.vo.UserRoleVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 내 역할 신청 요청 DTO
 */
@Getter
@Setter
@Schema(description = "역할 신청 요청 DTO")
public class MyAuthrtAplyHstryRequestDTO {

    @Schema(description = "사용자 ID", example = "geoadmin", required = true)
    @NotBlank(message = "사용자 ID는 필수 항목입니다.")
    private String userId;

    @Schema(description = "역할 코드 리스트", example = "[\"BIZ_ROLE_ADMIN\", \"GEO_ROLE_ADMIN\"]", required = true)
    private List<String> roleCdList;

    @Schema(description = "역할 시작일 (YYYY-MM-DD)", example = "2025-01-01")
    private String roleBgngYmd;

    @Schema(description = "역할 종료일 (YYYY-MM-DD)", example = "2025-12-31")
    private String roleEndYmd;

    @Schema(description = "시스템 코드", example = "SYS002")
    private String sysCd;

    public MyAuthrtAplyHstryVO toEntity() {
        MyAuthrtAplyHstryVO vo = new MyAuthrtAplyHstryVO();
        vo.setUserId(userId);
        vo.setRoleBgngYmd(roleBgngYmd);
        vo.setRoleEndYmd(roleEndYmd);
        vo.setSysCd(sysCd);
        return vo;
    }
}
