using FoodsharingSiegen.Contracts.Model;

namespace FoodsharingSiegen.Contracts.Entity
{
    /// <summary>
    ///     The audit type enum
    /// </summary>
    public enum AuditType
    {
        /// <summary>
        ///     The none audit type
        /// </summary>
        None = 0,

        // Profile
        /// <summary>
        ///     The save profile audit type
        /// </summary>
        SaveProfile = 10,
        

        #region Usermanagement

        /// <summary>
        ///     The create user audit type
        /// </summary>
        CreateUser = 30,

        /// <summary>
        ///     The update user audit type
        /// </summary>
        UpdateUser = 40,

        /// <summary>
        ///     The remove user audit type
        /// </summary>
        RemoveUser = 50,

        /// <summary>
        ///     The set user password audit type
        /// </summary>
        SetUserPassword = 60,

        #endregion Usermanagement

        #region Prospects

        // Prospect
        /// <summary>
        ///     The create prospect audit type
        /// </summary>
        CreateProspect = 70,

        /// <summary>
        ///     The edit prospect audit type
        /// </summary>
        EditProspect = 80,

        /// <summary>
        ///     The add interaction audit type
        /// </summary>
        AddInteraction = 90,

        /// <summary>
        ///     The remove interaction audit type
        /// </summary>
        RemoveInteraction = 100

        #endregion Prospects
    }

    /// <summary>
    ///     The user type enum
    /// </summary>
    public enum UserType
    {
        /// <summary>
        ///     The unverified user type
        /// </summary>
        Unverified = 100,

        /// <summary>
        ///     The user user type
        /// </summary>
        User = 200,

        /// <summary>
        ///     The admin user type
        /// </summary>
        Admin = 300
    }

    /// <summary>
    ///     The user group enum
    /// </summary>
    public enum UserGroup
    {
        /// <summary>
        ///     The read only user group
        /// </summary>
        ReadOnly = 100,

        /// <summary>
        ///     The welcome team user group
        /// </summary>
        WelcomeTeam = 200,

        /// <summary>
        ///     The store manager user group
        /// </summary>
        StoreManager = 300,

        /// <summary>
        ///     The ambassador user group
        /// </summary>
        Ambassador = 400
    }

    /// <summary>
    ///     The fs network type enum
    /// </summary>
    public enum FsNetworkType
    {
        /// <summary>
        ///     The germany fs network type
        /// </summary>
        [CustomValue("https://foodsharing.de")]
        Germany = 0,

        /// <summary>
        ///     The germany beta fs network type
        /// </summary>
        [CustomValue("https://beta.foodsharing.de")]
        GermanyBeta = 10,

        /// <summary>
        ///     The austria fs network type
        /// </summary>
        [CustomValue("https://foodsharing.at")]
        Austria = 20,

        /// <summary>
        ///     The austria beta fs network type
        /// </summary>
        [CustomValue("https://beta.foodsharing.at")]
        AustriaBeta = 30,

        /// <summary>
        ///     The switzerland fs network type
        /// </summary>
        [CustomValue("https://foodsharing.network")]
        Switzerland = 40
    }

    /// <summary>
    ///     The interaction type enum
    /// </summary>
    public enum InteractionType
    {
        /// <summary>
        ///     The ein ab interaction type
        /// </summary>
        EinAb = 10,

        /// <summary>
        ///     The welcome interaction type
        /// </summary>
        Welcome = 20,

        /// <summary>
        ///     The id check interaction type
        /// </summary>
        IdCheck = 30,

        /// <summary>
        ///     The print pass interaction type
        /// </summary>
        PrintPass = 40,

        /// <summary>
        ///     The pdf pass interaction type
        /// </summary>
        PdfPass = 50,

        /// <summary>
        ///     The verify interaction type
        /// </summary>
        Verify = 60,

        /// <summary>
        ///     The complete interaction type
        /// </summary>
        Complete = 70
    }
}