using Library.Ifx.Eaf.EquipmentConnector.File.Configuration;
using System;
using System.Collections.Generic;

namespace Library.Ifx.Eaf.EquipmentConnector.File.Component
{
    public class FilePathGenerator
    {
        public const char PLACEHOLDER_IDENTIFIER = '%';
        public const char PLACEHOLDER_SEPARATOR = ':';
        public const string PLACEHOLDER_NOT_AVAILABLE = "NA";
        public const string PLACEHOLDER_ORIGINAL_FILE_NAME = "OriginalFileName";
        public const string PLACEHOLDER_ORIGINAL_FILE_EXTENSION = "OriginalFileExtension";
        public const string PLACEHOLDER_DATE_TIME = "DateTime";
        public const string PLACEHOLDER_SUB_FOLDER = "SubFolder";
        public const string PLACEHOLDER_CELL_NAME = "CellName";

        public FilePathGenerator(FileConnectorConfiguration config, Dictionary<string, string> customPattern = null) { throw new NotImplementedException(); }
        public FilePathGenerator(FileConnectorConfiguration config, File file, bool isErrorFile = false, Dictionary<string, string> customPattern = null) { throw new NotImplementedException(); }
        public FilePathGenerator(FileConnectorConfiguration config, string sourceFilePath, bool isErrorFile = false, Dictionary<string, string> customPattern = null) { throw new NotImplementedException(); }

        protected string SubFolderPath { get; }
        protected FileConnectorConfiguration Configuration { get; }
        protected File File { get; }
        protected bool IsErrorFile { get; }
        protected string DefaultPlaceHolderValue { get; }

        public string GetFullTargetPath() { throw new NotImplementedException(); }
        public virtual string GetTargetFileName() { throw new NotImplementedException(); }
        public string GetTargetFolder(bool throwExceptionIfNotExist = true) { throw new NotImplementedException(); }
        protected virtual string GetSubFolder(string folderPattern, string subFolderPath) { throw new NotImplementedException(); }
        protected virtual string PrepareFolderPath(string targetFolderPath, string subFolderPath) { throw new NotImplementedException(); }
        protected string ReplacePlaceholder(string inputPath) { throw new NotImplementedException(); }
    }
}