namespace dexih.functions
{
    public enum EFlatFilePath
    {
        None, Incoming, Outgoing, Processed, Rejected
    }
    
    public enum EDeltaType
    {
        AutoIncrement = 1, // column is auto incremented by the dexih
        DbAutoIncrement, // column is auto incremented by the database
        SourceSurrogateKey,
        ValidFromDate,
        ValidToDate,
        CreateDate,
        UpdateDate,
        CreateAuditKey,
        UpdateAuditKey,
        IsCurrentField,
        Version,
        NaturalKey,
        TrackingField,
        NonTrackingField,
        IgnoreField,
        ValidationStatus,
        RejectedReason,
        FileName,
        FileRowNumber,
        RowKey, //special column type for mongo, azure table which have a row key,  
        PartitionKey, //special column type for Azure Storage Tables.  
        TimeStamp, //column that is generated by the database.
        DatabaseOperation, // C/U/D/T/R (Create/Update/Delete/Truncate/Reject)
        ResponseSuccess, // webservice/function response aws successful
        ResponseData, // raw data from a webservice/function response
        ResponseStatus, // status code from a webservice/function call
        ResponseSegment, // segment of data (such as xpath result) from a response data.
        Error, // error message 
        Url // the full url called for the web service.
    }

    // [JsonConverter(typeof(StringEnumConverter))]
    public enum ESecurityFlag
    {
        None = 0,
        FastEncrypt,
        FastDecrypt,
        FastEncrypted,
        StrongEncrypt,
        StrongDecrypt,
        StrongEncrypted,
        OneWayHash,
        OneWayHashed,
        Hide
    }
    
    // [JsonConverter(typeof(StringEnumConverter))]
    public enum EDataPrivacyStatus
    {
        NotAllowed = 1,
        Proxy,
        Lan,
        Internet
    }

    // [JsonConverter(typeof(StringEnumConverter))]
    public enum EDownloadUrlType
    {
        Proxy = 1,
        Direct
    }
}