package com.its.pis.websocket.C2F;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.its.pis.websocket.C2F.prk_plce_sttus.*;
import lombok.*;

/**
 * 주차장 시설정보 오픈포맷 메시지 구성(개별시스템 → 통합시스템)
 * message
 * prk_plce_sttus_info
 * 주차장 시설정보메시지
 * Single, Event-Driven
 * 1.2.410.200053.2.00090.0.2.2.1.0.0
 */
@Data
@Builder
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public class PrkPlceSttusInfo extends C2FMessagePayload {

//    // Token
//    private String prk_tkn;
//    // 이벤트명
//    private String event_name;          // 주차정보 교환에 필요한 기본정보 -  prk_plce_sttus_info(주차장 시설정보) 필수
//    // 이벤트형식
//    private String event_type;          // 정보 등록/갱신 요청 메시지      -  request/event-driven                 필수
//    // 정보생성 시각
//    private String info_create_time;    // 주차정보를 입력하여 생성하는 시각(주차정보 신규 생성 시, 서버에서 정보 갱신 시각 관리, 24시간 표기법 사용)
//                                        // datetime	2020년01월01일10시10분10초(YYYY-MM-DD hh:mm:ss)       필수
//    // 주차장 관리번호
//    private String prk_plce_manage_no;  // 주차장 관리 ID 또는 확장 ID (시스템 내 정보교환을 하는데 있어, 필요하다 판단될 경우 관리ID와 확장ID 모두 명기)
//                                        // char(18) 주차장 관리 ID 체계 또는 확장 ID 체계 참고               필수

    ////////////////////////////////////////
    // 주차장 시설정보 버전
    private String prk_plce_sttus_ver;  // 주차시설 정보버전 varchar(10)    1.1.0	필수

    // 주차장명
    private String prk_plce_nm;         // 주차장 이름 varchar(32)	주차장 고유명칭 (OO역 제1주차장)	필수

    // 주차장 주소
    private String prk_plce_adres;      // 도로명 주소	varchar(32)	시․도, 구․군,    읍․면, 도로명,    건물번호, 동․호, 상세주소  (OO시 OO구OO로 10)	필수

    // 주차장 설치일자
    private String prk_plce_instl_de;   // 설치 주체에 의해 주차장이 설치된 일자	date	2020년01월01일 (YYYY-MM-DD)	필수

    // 주차장 폐지일자
    private String prk_plce_abl_de;     // 주차장 폐지된 일자	date	2020년01월01일 (YYYY-MM-DD)	선택

    // 주차장 입구위치 (주출입구 기준)
    private PrkPlceEntrcLc prk_plce_entrc_lc;  // 주차장 입구위치 (주출입구 기준)(JsonObject)

    // 주차장 입출구 형태
    private Integer prk_plce_entrc_extty;       //주차장 입구 ․ 출구 형태에 따른 구분(공통, 분리) numeric(1, 0)
                                                // 0 : 공통출입구
                                                // 1 : 출입구 분리
                                                // 9 : 기타                                           선택

    // 주차형식
    private Integer parking_ty;                 // 주차장 내 따른 주차	주차 면에 형식 구분	numeric(1, 0)
                                                // 0 : 평행주차
                                                // 1 : 직각주차
                                                // 2 : 60도 대향주차
                                                // 3 : 45도 대향주차
                                                // 9 : 기타                                           선택

    // 이용형태
    private Integer parking_us;                 // 주차장 이용형태 구분 numeric(1,0)
                                                // 0 : 자주식
                                                // 1 : 기계식
                                                // 9 : 기타                                            필수

    // 급지구분
    private Integer ar_level_se;                // 지역 내 급지 구분 numeric(1, 0)
                                                // 0 : 1급지
                                                // 1 : 2급지
                                                // 2 : 3급지
                                                // 3 : 4급지
                                                // 4 : 5급지
                                                // 9 : 기타                                            필수

    // 주차장 구조 이미지
    private PrkPlaceImage prk_place_image;

    // 시스템명
    private String sys_ne;                      // SYSTEM NAME 대상 데이터베이스와 연계된 시스템 명칭	varchar(32)	(주차정보공유 시스템)	필수

    // 주차관제 시스템 설치일자
    private String parking_cntrl_sys_instl_de;  // 주차관제시스템 설치한 경우, 설치 일자(주차장 정보관리 확장 ID 체계 18번째 코드가 1인 경우)	date
                                                // 2020년01월01일 (YYYY-MM-DD)	선택

    // 관련법령
    private String relation_law_and_ordinances; // 시스템 운영 및 데이터 수집과 관련된 근거 법령	varchar(50)	공공데이터 개방표준(행정안전부 고시 제2019-61호)	선택

    // 이용가능 차량유형
    private String prk_avail_cartype;           // 차량유형별 주차장 이용가능 여부    BIT(7)
                                                // 0 : 승용(소형)
                                                // 1 : 승용(중형)
                                                // 2 : 승용(대형)
                                                // 3 : SUV
                                                // 4 : 승합차
                                                // 5 : 화물(중형)
                                                // 6 : 화물(대형)
                                                // 예시)  승용(중형), SUV 이용가능 시,  (1101000)      선택
// TODO
    private PrkCmprtCoInfo prk_cmprt_co_info;   //
//    // 총 주차구획 수
//    private Integer prk_cmprt_co;               // 주차장의 총 주차 구획 수 numeric (18,0) 150(면) 필수
//
//    // 층 구분
//    private List<FlrInfr> flr_infr = new ArrayList<>();
//
//    // 구역 구분
//    private List<ArInfr> ar_infr = new ArrayList<>();
//
//    // 전용주차 구역
//    private List<PrvusePrkarInfo> prvuse_prkar_info = new ArrayList<>();

    // 주차구획 단위정보 수집장치 정보
    private PrkUcmprtColctDeviceInfo prk_ucmprt_colct_device_info;

    // 방범 CCTV 설치여부 정보
    private CrmPrvCctvInstl crm_prv_cctv_instl;


}
