package com.kamco.cd.kamcoback.menu.dto;

import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.ZonedDateTime;
import java.util.List;
import lombok.Getter;
import lombok.NoArgsConstructor;

public class MenuDto {

  @Schema(name = "Menu Basic", description = "메뉴 기본 정보")
  @Getter
  @NoArgsConstructor
  public static class Basic {

    private String menuUid;
    private String menuNm;
    private String menuUrl;
    private String description;
    private Long menuOrder;
    private Boolean isUse;
    private Boolean deleted;
    private Long createdUid;
    private Long updatedUid;

    private List<MenuDto.Basic> children;

    @JsonFormatDttm private ZonedDateTime createdDttm;

    @JsonFormatDttm private ZonedDateTime updatedDttm;

    private String menuApiUrl;

    public Basic(
        String menuUid,
        String menuNm,
        String menuUrl,
        String description,
        Long menuOrder,
        Boolean isUse,
        Boolean deleted,
        Long createdUid,
        Long updatedUid,
        List<MenuDto.Basic> children,
        ZonedDateTime createdDttm,
        ZonedDateTime updatedDttm,
        String menuApiUrl) {
      this.menuUid = menuUid;
      this.menuNm = menuNm;
      this.menuUrl = menuUrl;
      this.description = description;
      this.menuOrder = menuOrder;
      this.isUse = isUse;
      this.deleted = deleted;
      this.createdUid = createdUid;
      this.updatedUid = updatedUid;
      this.children = children;
      this.createdDttm = createdDttm;
      this.updatedDttm = updatedDttm;
      this.menuApiUrl = menuApiUrl;
    }
  }
}
