package com.takensoft.cms.mber.dto;

import com.takensoft.cms.mber.vo.MberAuthorVO;
import com.takensoft.cms.mber.vo.MberSocialAccountVO;
import lombok.*;

import java.util.ArrayList;
import java.util.List;
/**
 * @author  : 박정하
 * @since   : 2024.06.21
 * @modification
 *     since    |    author    | description
 *  2024.06.21  |    박정하     | 코드 리펙토링
 *
 * 회원정보 관련 DTO
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
public class AdmMbrDTO {

    private String mbrId;           // 회원 아이디
    private String lgnId;           // 로그인 아이디
    private String mbrNm;           // 회원 이름
    private String ncnm;            // 닉네임
    private String pswd;            // 비밀번호
    private String mblTelno;        // 휴대폰번호
    private String telno;           // 전화번호
    private String eml;             // 이메일
    private String zip;             // 우편번호
    private String addr;            // 주소
    private String daddr;           // 상세주소
    private String mbrStts;         // 회원상태 0: 탈퇴, 1: 승인, 2: 승인대기, 3: 차단
    private String useYn;           // 사용여부
    private String cntrlDt;         // 차단일
    private String cntrlRsn;        // 차단사유
    private String smsRcptnAgreYn;  // 문자수신여부  0: 거부, 1: 허용
    private String emlRcptnAgreYn;  // 이메일수신여부 0: 거부, 1: 허용
    private String prvcRlsYn;       // 개인정보공개여부 0: 거부, 1: 허용
    private String mbrType;         // 회원형태 S: 시스템, K: 카카오, N: 네이버, G: 구글, F: 페이스북
    private String pswdChgDt;       // 비밀번호 변경일
    private String frstRegIp;       // 최초등록 아이피
    private String sysPvsnYn;       // 시스템 제공 여부 -> 시스템에서 제공되는 데이터는 사용자가 제거하지 못하도록 하기 위한 설정값 0: 시스템, 1: 사용자
    private String rgtr;            // 등록자
    private String regDt;           // 등록일
    private String mdfr;            // 수정자
    private String mdfcnDt;         // 수정일
    @Builder.Default
    private List<MberAuthorVO> authorList = new ArrayList<MberAuthorVO>(); // 권한 정보
    @Builder.Default
    private List<MberSocialAccountVO> socialAccountList = new ArrayList<MberSocialAccountVO>(); // 소셜 계정 정보
}
