Files
web/utils/user.ts
2024-09-24 09:47:31 +02:00

48 lines
1.3 KiB
TypeScript

import { z } from "zod"
import { MembershipLevelEnum } from "@/constants/membershipLevels"
import { getMembershipCardsSchema } from "@/server/routers/user/output"
import type { Memberships, User } from "@/types/user"
enum scandicMemberships {
guestpr = "guestpr",
scandicfriends = "scandicfriend's",
}
export function getMembership(memberships: Memberships) {
return memberships?.find(
(membership) =>
membership.membershipType.toLowerCase() === scandicMemberships.guestpr
)
}
export type MembershipLevel = ReturnType<typeof getMembership>
export function getMembershipCards(
memberships: z.infer<typeof getMembershipCardsSchema>
) {
return memberships.filter(function (membership) {
return (
membership.membershipType.toLowerCase() !== scandicMemberships.guestpr &&
membership.membershipType.toLowerCase() !==
scandicMemberships.scandicfriends
)
})
}
export function isHighestMembership(
membershipLevel: MembershipLevelEnum | undefined
) {
return membershipLevel == MembershipLevelEnum.L7
}
export function getInitials(
firstName: User["firstName"],
lastName: User["lastName"]
) {
if (!firstName || !lastName) return null
const firstInitial = firstName.charAt(0).toUpperCase()
const lastInitial = lastName.charAt(0).toUpperCase()
return `${firstInitial}${lastInitial}`
}