mirror of
https://github.com/khairul169/vaulterm.git
synced 2025-04-28 16:49:39 +07:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { SelectItem } from "@/components/ui/select";
|
|
import { z } from "zod";
|
|
|
|
export const teamFormSchema = z.object({
|
|
id: z.string().ulid().nullish(),
|
|
name: z.string().min(1, { message: "Name is required" }),
|
|
icon: z.string().emoji("Icon is not valid."),
|
|
});
|
|
|
|
export type TeamFormSchema = z.infer<typeof teamFormSchema>;
|
|
|
|
const teamRoles = ["owner", "admin", "member"] as const;
|
|
|
|
export const inviteSchema = z.object({
|
|
teamId: z.string().ulid(),
|
|
username: z.string().min(1, { message: "Username/email is required" }),
|
|
role: z.enum(teamRoles, {
|
|
errorMap: () => ({ message: "Role is required" }),
|
|
}),
|
|
});
|
|
|
|
export const teamMemberRoles: SelectItem[] = [
|
|
{ label: "Owner", value: "owner" },
|
|
{ label: "Admin", value: "admin" },
|
|
{ label: "Member", value: "member" },
|
|
];
|
|
|
|
export type InviteSchema = z.infer<typeof inviteSchema>;
|
|
|
|
export const setRoleSchema = z.object({
|
|
teamId: z.string().ulid(),
|
|
userId: z.string().ulid(),
|
|
role: z.enum(teamRoles, {
|
|
errorMap: () => ({ message: "Role is required" }),
|
|
}),
|
|
});
|
|
|
|
export type SetRoleSchema = z.infer<typeof setRoleSchema>;
|