* create seed for org upgrade * migrate about/new pages * pages refactor + use persistant zustand store * invited members view + confirm button * add check to org slug * check reserved subdomain * remove quotes from subdomain env var * intro to creation + billing * create price * fix types * createWithPaymentIntent + permission check on teams * open stripe link in popup * intro to tests * organization price and seat override tests * move permissions to a new permission service * update env and permission check * intro to paid invoice trigger * dont use subId * wip * Get e2e working with migration of teams and members * fix ts errors * Get flow working again * Fix various issues and refactor * Some more fixes * Fix wrong page route link * Platform onboarding fix and moving members of team to org rix * Platform onboarding fix and moving members of team to org rix * Fix tests, found a bug * Get custom price flow working * Get admin impersonation flow working for a non-existent user * Fix unit test * Admin onboarding handover * fix admin onboarding tests * fix ts error * Get updateQuantity working * More fixes * fix test * fix schema name * Add tests * Add missing file * More tests * Add more tests * fix mt-2 moving down input into overflow * fix handover layout removing HOC * Update PR_TODO.md * fix ts error due to merge conflict --------- Co-authored-by: Hariom Balhara <hariombalhara@gmgmail.com> Co-authored-by: Hariom <hariombalhara@gmail.com> Co-authored-by: Omar López <zomars@me.com>
25 lines
792 B
TypeScript
25 lines
792 B
TypeScript
import { z } from "zod";
|
|
|
|
import { emailSchema } from "@calcom/lib/emailSchema";
|
|
import slugify from "@calcom/lib/slugify";
|
|
import { CreationSource } from "@calcom/prisma/enums";
|
|
|
|
export enum BillingPeriod {
|
|
MONTHLY = "MONTHLY",
|
|
ANNUALLY = "ANNUALLY",
|
|
}
|
|
|
|
export const ZIntentToCreateOrgInputSchema = z.object({
|
|
name: z.string(),
|
|
slug: z.string().transform((val) => slugify(val.trim())),
|
|
orgOwnerEmail: emailSchema,
|
|
language: z.string().optional(),
|
|
seats: z.number().nullish(),
|
|
pricePerSeat: z.number().nullish(),
|
|
isPlatform: z.boolean().default(false),
|
|
billingPeriod: z.nativeEnum(BillingPeriod).default(BillingPeriod.MONTHLY),
|
|
creationSource: z.nativeEnum(CreationSource),
|
|
});
|
|
|
|
export type TIntentToCreateOrgInputSchema = z.infer<typeof ZIntentToCreateOrgInputSchema>;
|