namespace DigitalData.Core.DTO
{
    /// <summary>
    /// Defines flags that indicate specific types of status or conditions in a service operation.
    /// These flags help in categorizing and identifying specific circumstances or issues that may arise during execution.
    /// </summary>
    public enum Flag
    {
        /// <summary>
        /// Indicates a security breach or vulnerability has been detected during the service operation.
        /// </summary>
        SecurityBreach,

        /// <summary>
        /// Indicates a potential issue with data integrity during the service operation.
        /// This flag is used when data may have been altered, corrupted, or is otherwise unreliable,
        /// which could impact the accuracy or trustworthiness of the operation's results.
        /// </summary>
        DataIntegrityIssue,

        /// <summary>
        /// Indicates that either a security breach, a data integrity issue, or both have been detected during the service operation.
        /// This flag is used when it is not sure whether the problem is security or data integrity. In this case, data integrity should be checked first.
        /// </summary>
        SecurityBreachOrDataIntegrity,

        /// <summary>
        /// Indicates a possible security breach during the service operation.
        /// </summary>
        PossibleSecurityBreach,

        /// <summary>
        /// Indicates a possible issue with data integrity during the service operation.
        /// This flag is used when there is a suspicion of data alteration, corruption, or unreliability.
        /// </summary>
        PossibleDataIntegrityIssue,

        /// <summary>
        /// Indicates that either a possible security breach, a possible data integrity issue, or both have been detected during the service operation.
        /// This flag is used when it is uncertain whether the issue is related to security, data integrity, or both.
        /// </summary>
        PossibleSecurityBreachOrDataIntegrity,

        /// <summary>
        /// Indicates that the requested resource or operation could not be found.
        /// This flag is used when the specified item or condition does not exist or is unavailable.
        /// </summary>
        NotFound
    }
}