import {WebauthnForm} from "@/types/admin/page/props/base";

export interface AdministratorUserEntity {
    id: number;
    email: string;
    firstName: string;
    lastName: string;
    password: string;
    roles: Array<AdministratorUserRoles>;
    status: PhpEnum;
    userAuthorizedToManageCredentials: boolean
}

export const AdministratorUserRolesValues = ["ROLE_GUEST", "ROLE_USER", "ROLE_ADMIN", "ROLE_SUPER_ADMIN"];
export type AdministratorUserRoles = keyof AdministratorUserStatusValues;

export const AdministratorUserStatusValues = ["active", "inactive", "blocked"];
export type AdministratorUserStatus = keyof AdministratorUserStatusValues;

export function resolveStatusBadgeClass(status: string): string {
    return status === "active"
        ? "badge-success-light"
        : (status === "inactive"
            ? "badge-secondary-light"
            : (status === "blocked"
                ? "badge-danger-light"
                : ""))
}

export interface ManagePasskeys {
    registeredPasskeys: Array<RegisteredPasskey>;
    userUuid: string;
    userId: number;
    webauthnForm: WebauthnForm;
}

export interface RegisteredPasskey {
    id: string;
    createdAtTimestamp: number;
    clientIdentifier: string;
}