package com.takensoft.cms.menu.vo;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

/**
 * @author  : takensoft
 * @since   : 2024.04.08
 * @modification
 *     since    |    author    | description
 *  2024.04.08  |  takensoft   | 최초 등록
 *  2025.03.13  |    방선주     | 코드 리펙토링
 *
 * 메뉴 정보 관련 VO
 */
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class MenuVO {
    private String menuId;                                   // 메뉴 아이디
    private String upMenuId;                                 // 상위 메뉴 아이디
    private String upMenuNm;                                 // 상위 메뉴명
    private String menuNm;                                   // 메뉴명
    private String menuExpln;                                // 메뉴 설명
    private int menuGrd;                                     // 메뉴 깊이(레벨)
    private int menuSn;                                      // 메뉴 순서
    private String menuType;                                 // 메뉴 타입
    private String menuTypeArtcl;                            // 메뉴 타입 항목(게시판 유형 아이디 / 콘텐츠 유형 아이디)
    private String linkUrl;                                  // 링크 주소
    private String linkType;                                 // 링크 유형(0: 현재창, 1: 새창)
    private String dgstfnExmnUseYn;                          // 만족도조사 사용여부(N: 미사용, Y: 사용)
    private String menuExpsrYn;                              // 메뉴 노출여부(N: 미노출, Y: 노출)
    private String menuUser;                                 // 메뉴 사용자(A: 관리자, U: 사용자)
    private String useYn;                                    // 사용여부(N: 미사용, Y: 사용)
    private String rgtr;                                     // 등록자
    private String rgtrNm;                                   // 등록자명
    private String regDt;                                    // 등록일
    private String mdfr;                                     // 수정자
    private String mdfrNm;                                   // 수정자명
    private String mdfcnDt;                                  // 수정일
    private String sysPvsnYn;                                // 시스템제공여부(0 : 시스템 등록, 1 : 사용자 등록)
    private List<MenuVO> childMenuList = new ArrayList<MenuVO>(); // 하위 메뉴 목록
}
