from flask import Blueprint, render_template, redirect
from enum import Enum

main_site_bp = Blueprint("main_site", __name__)


class Rank(Enum):
    OWNER = (0, "Owner", "#8d0b0b")
    ADMIN = (1, "Admin", "#096e29")
    ROLEPLAY = (2, "Roleplay Management", "#e67e22")
    # DEVELOPER = (3, "Developers", "#a855f7")
    # MODERATOR = (4, "Moderator", "#4b9ed5")
    HELPER = (5, "Helper", "#6f34b6")

    def __init__(self, priority, display_name, color):
        self.priority = priority
        self.display_name = display_name
        self.color = color


members = [
    {
        "name": "Unknown_Embryo",
        "bio": "Eindverantwoordelijk voor de server.",
        "rank": Rank.OWNER
    },
    {
        "name": "Vetteruurd",
        "bio": "Helpt mee met ideeën, spelers en het handhaven van de server.",
        "rank": Rank.ADMIN
    },
    {
        "name": "DakPanNodig",
        "bio": "Helpt mee met ideeën en beheert de algemene richting van de roleplay.",
        "rank": Rank.ROLEPLAY
    },
    {
        "name": "Tijntjejaz",
        "bio": "Beheert de server en de plugins achter de schermen.",
        "rank": Rank.ADMIN
    },
    {
        "name": "eucat",
        "bio": "Beheert de plugins achter de schermen.",
        "rank": Rank.ADMIN
    },
    {
        "name": "Alyszera",
        "bio": "",
        "rank": Rank.HELPER
    },
    {
        "name": "Mr_Armundus",
        "bio": "",
        "rank": Rank.HELPER
    }
]


def group_members_by_rank(members):
    grouped_members = {
        rank.name.lower(): {
            "info": rank,
            "members": []
        }
        for rank in Rank
    }

    for member in members:
        rank_key = member["rank"].name.lower()
        grouped_members[rank_key]["members"].append(member)

    return grouped_members


@main_site_bp.route("/")
def index():
    return render_template("index.html")


@main_site_bp.route("/over-ons")
def over_ons():
    return render_template("over-ons.html")


@main_site_bp.route("/team")
@main_site_bp.route("/staff")
def team():
    grouped_ranks = group_members_by_rank(members)
    return render_template("team.html", grouped_ranks=grouped_ranks)


@main_site_bp.route("/privacy")
def privacy():
    return render_template("privacy.html")


@main_site_bp.route("/cookies")
def cookies():
    return render_template("cookies.html")


@main_site_bp.route("/voorwaarden")
def voorwaarden():
    return render_template("voorwaarden.html")


@main_site_bp.route("/concept")
def concept():
    return render_template("concept.html")


@main_site_bp.route("/map")
def map():
    # return render_template("map.html")
    return redirect("http://map.valorrealms.nl:6253/")


@main_site_bp.route("/discord")
def discord():
    return redirect("https://discord.gg/yee3uVtBDN")
