//---------------------------------------------------------------------------

#ifndef CDSFacilityCodeFH
#define CDSFacilityCodeFH
//---------------------------------------------------------------------------

#include <Classes.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include "cxCustomData.hpp"
#include "ITSLibF.h"
#include "ITSDbF.h"
//---------------------------------------------------------------------------


// 장애 유형(TB_FAIL_TYPE)
class TFacilityFailCode
{
public:
    TFacilityFailCode() {};
    virtual ~TFacilityFailCode() {};
public:
    bool   Modified;
    bool   Completed;

    String EQPM_TYPE_CD;        // 장비 유형 코드
    String FAIL_OCRR_CD;        // 장애 발생 코드
    String FAIL_CD;             // 장애 코드
    String FAIL_CD_NM;          // 장애 코드명
};

// 장애 발생 구분(TB_FAIL_OCRR_DVSN)
class TFacilityFailOccr
{
public:
    TFacilityFailOccr() {};
    virtual ~TFacilityFailOccr() {};
public:
    bool   Modified;
    bool   Completed;

    String EQPM_TYPE_CD;        // 장비 유형 코드
    String FAIL_OCRR_CD;        // 장애 발생 코드
    String FAIL_OCRR_CD_NM;     // 장애 발생 코드 명

    TItsMap<String, TFacilityFailCode*>  FLists;
};

// 장애 장비 유형(TB_FAIL_EQPM_TYPE)
class TFacilityEqpmType
{
public:
    TFacilityEqpmType() {};
    virtual ~TFacilityEqpmType() {};
public:
    bool   Modified;
    bool   Completed;

    String EQPM_TYPE_CD;        // 장비 유형 코드
    String EQPM_TYPE_CD_NM;     // 장비 유형 코드 명
    String FCLT_TYPE;           // 시설물 유형

    TItsMap<String, TFacilityFailOccr*>  FLists;
};

// 장애 처리 유형(TB_FAIL_HNDL_TYPE)
class TFacilityHndlType
{
public:
    TFacilityHndlType() {};
    virtual ~TFacilityHndlType() {};
public:
    bool   Modified;
    bool   Completed;

    String FAIL_HNDL_CD;        // 장애 처리 코드
    String FAIL_HNDL_CD_NM;     // 장애 처리 코드 명
};


/*
* Code Manager
*/
class TFacilityCodeManager
{
public:
    TFacilityCodeManager();
    virtual ~TFacilityCodeManager();

public:
    TItsMap<String, TFacilityEqpmType*>  FLists;
    TItsMap<String, TFacilityHndlType*>  FHndlLists;

public:
    bool LoadFromDb(TADOConnection *ADbConn=NULL);
    bool LoadHndlTypeDb(TADOConnection *ADbConn=NULL);
    bool LoadEqpmTypeDb(TADOConnection *ADbConn=NULL);
    bool LoadFailOccrDb(TADOConnection *ADbConn=NULL);
    bool LoadFailCodeDb(TADOConnection *ADbConn=NULL);
};
//---------------------------------------------------------------------------
extern TFacilityCodeManager *FacilityCodeManager;
//---------------------------------------------------------------------------


#endif

