Commits all remaining uncommitted local work: - apps/web: fischerei, verband, modules, members-cms, documents, newsletter, meetings, site-builder, courses, bookings, events, finance pages and components - apps/web: marketing page updates, layout, paths config, next.config.mjs, styles/makerkit.css - apps/web/i18n: documents, fischerei, marketing, verband (de+en) - packages/features: finance, fischerei, member-management, module-builder, newsletter, sitzungsprotokolle, verbandsverwaltung server APIs and components - packages/ui: button.tsx updates - pnpm-lock.yaml
80 lines
2.7 KiB
TypeScript
80 lines
2.7 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),
|
|
accountSiteBuilder: z.string().min(1),
|
|
accountFischerei: z.string().min(1),
|
|
accountMeetings: z.string().min(1),
|
|
accountVerband: z.string().min(1),
|
|
accountFiles: 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`,
|
|
accountSiteBuilder: `/home/[account]/site-builder`,
|
|
accountFischerei: `/home/[account]/fischerei`,
|
|
accountMeetings: '/home/[account]/meetings',
|
|
accountVerband: '/home/[account]/verband',
|
|
accountFiles: `/home/[account]/files`,
|
|
},
|
|
} satisfies z.output<typeof PathsSchema>);
|
|
|
|
export default pathsConfig;
|