Files
myeasycms-v2/apps/web/config/paths.config.ts
2026-03-29 19:44:57 +02:00

70 lines
2.3 KiB
TypeScript

import * as z from 'zod';
const PathsSchema = z.object({
auth: z.object({
signIn: z.string().min(1),
signUp: z.string().min(1),
verifyMfa: z.string().min(1),
callback: z.string().min(1),
passwordReset: z.string().min(1),
passwordUpdate: z.string().min(1),
}),
app: z.object({
home: z.string().min(1),
personalAccountSettings: z.string().min(1),
personalAccountBilling: z.string().min(1),
personalAccountBillingReturn: z.string().min(1),
accountHome: z.string().min(1),
accountSettings: z.string().min(1),
accountBilling: z.string().min(1),
accountMembers: z.string().min(1),
accountBillingReturn: z.string().min(1),
accountProfileSettings: z.string().min(1),
createTeam: z.string().min(1),
joinTeam: z.string().min(1),
// CMS paths
accountModules: z.string().min(1),
accountCmsMembers: z.string().min(1),
accountCourses: z.string().min(1),
accountBookings: z.string().min(1),
accountFinance: z.string().min(1),
accountDocuments: z.string().min(1),
accountNewsletter: z.string().min(1),
}),
});
const pathsConfig = PathsSchema.parse({
auth: {
signIn: '/auth/sign-in',
signUp: '/auth/sign-up',
verifyMfa: '/auth/verify',
callback: '/auth/callback',
passwordReset: '/auth/password-reset',
passwordUpdate: '/update-password',
},
app: {
home: '/home',
personalAccountSettings: '/home/settings',
personalAccountBilling: '/home/billing',
personalAccountBillingReturn: '/home/billing/return',
accountHome: '/home/[account]',
accountSettings: `/home/[account]/settings`,
accountBilling: `/home/[account]/billing`,
accountMembers: `/home/[account]/members`,
accountBillingReturn: `/home/[account]/billing/return`,
accountProfileSettings: `/home/[account]/settings/profile`,
createTeam: '/home/create-team',
joinTeam: '/join',
// CMS paths
accountModules: `/home/[account]/modules`,
accountCmsMembers: `/home/[account]/members-cms`,
accountCourses: `/home/[account]/courses`,
accountBookings: `/home/[account]/bookings`,
accountFinance: `/home/[account]/finance`,
accountDocuments: `/home/[account]/documents`,
accountNewsletter: `/home/[account]/newsletter`,
},
} satisfies z.output<typeof PathsSchema>);
export default pathsConfig;