using lkfxdok.c;

namespace lkfxdok.LKF
{

    public enum ErrorType
    {
        Error = 'E',
        Warning = 'W',
        Info = 'H',
        Fatal = 'F',
        Other = ' ',
    }
    public enum ErrorFacility
    {
        MBDS = 'X',
        Int = 'I'
    }

    public class AufenthaltError
    {
        internal AufenthaltError (Aufenthalt aufenthalt, LKFAufenthaltError error)
        {
            ErrorCode = error.Code;
            ErrorText = error.Text;
            Value = error.Value;
            Satzart = error.SATZART;
            ABTFC = error.ABTFC;
            FucoAufNr = error.FucoAufNr;
            Akzeptierbar = error.Acceptable.StartsWith("J");
            ChildIdent = error.CHILDIdent;
            ErrorType = (ErrorType)ErrorCode[0];
            ErrorFacility = (ErrorFacility)ErrorCode[1];

            if (ErrorType == ErrorType.Warning || ErrorType == ErrorType.Info)
            {
                Massnahme = error.Massnahme;
            }
        }

        public ErrorType ErrorType { get; }

        public ErrorFacility ErrorFacility { get; }

        public string ABTFC { get; }

        public string FucoAufNr { get; }

        public string ChildIdent { get; }

        public string ErrorText { get; }

        public string ErrorCode { get; }

        public string Massnahme { get; }

        public string Satzart { get; }

        public string Value { get; }

        public bool Akzeptierbar { get; }
    }
}
