package com.its.dsrc.entity;

import com.beanit.asn1dsrc.dsrc.C2CAuthenticatedMessage;
import com.its.app.utils.SysUtils;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@Getter
@Setter
@ToString
public class TbRseCtlrCnncHs {

    public static int LOG_TYPE_LOGIN = 0;
    public static int LOG_TYPE_LOGOUT = 1;
    public static int LOG_TYPE_INVALID_USER = 2;
    public static int LOG_TYPE_OTHER = 3;
    public static int LOG_TYPE_DUP_LOGIN = 4;

    private String RSE_CTLR_NMBR;   //	N	VARCHAR2(3)	    N			아이디
    private String CLCT_DT;         //	N	VARCHAR2(14)	N			수집 일시
    private String LOG_TYPE;        //	N	VARCHAR2(7)	    Y			로그 유형
    private String LOG_ID;          //	N	VARCHAR2(64)	Y			로그 ID
    private String LOG_ADDRESS;     //	N	VARCHAR2(20)	Y			로그 ADDRESS

    public void setLoginInfo(C2CAuthenticatedMessage c2c) {
        //PDUs pdus = c2c.getPdu();
        //Login login = pdus.getLogin();
        //this.LOG_ID = new String(login.getDatexLoginUserNameTxt().value);
        int year = 0;
        int mon = 0;
        int day = 0;
        int hour = 0;
        int min = 0;
        int sec = 0;
        //log.error("setLoginInfo: {}", c2c.toString());
        //현장 RSE 에서 HeaderOptions 값을 설정하지 않고 데이터를 전송한다.
/*
        if (c2c != null) {
            // logout 이 아닌경우
            log.error("getOptionns: {}", c2c.getOptions().toString());
            Time tm = c2c.getOptions().getDatexDataPacketTime();
            log.error("Time: {}", tm.toString());
            year = tm.getTimeYearQty().value.intValue();
            mon  = tm.getTimeMonthQty().value.intValue();
            day  = tm.getTimeDayQty().value.intValue();
            hour = tm.getTimeHourQty().value.intValue();
            min = tm.getTimeMinuteQty().value.intValue();
            sec = tm.getTimeSecondQty().value.intValue();

            String cltDt = String.format("%04d%02d%02d%02d%02d%02d", year, mon, day, hour, min, sec);
            log.info("Collect Time: {}", cltDt);
        }
        else {
            this.CLCT_DT = SysUtils.getSysTime();
        }
*/
        // TODO: 운영환경에서 데이터를 확인한 후에 수집시각을 업데이트 하도록 하자
        //this.CLCT_DT = String.format("%04d%02d%02d%02d%02d%02d", year, mon, day, hour, min, sec);
        this.CLCT_DT = SysUtils.getSysTime();
    }
}
