@cfxlabsinc/b2b-services
    Preparing search index...

    What prod hands dev to create or top up a prod customer's dev twin.

    interface DevSandboxTwinInput {
        customer: Pick<Customer, "name" | "shortName" | "attioId">;
        members: { email: string; roleName: string }[];
        organization: Omit<
            Extract<
                Parameters<typeof createMainOrganization>[1],
                { preApproved: true },
            >,

                | "customerId"
                | "verificationProfileId"
                | "adoptedPeople"
                | "relatedPeople"
                | "preApproved"
                | "taxId",
        >;
        ownerEmail: string
        | null;
        prodCustomerId: string;
        programNames: string[];
        relatedPeople: NewRelatedPerson[];
    }
    Index
    customer: Pick<Customer, "name" | "shortName" | "attioId">

    attioId is the prod customer's CRM company, reused: one company per real company.

    members: { email: string; roleName: string }[]

    The prod workspace's accepted members, CFX staff excluded, each with its prod role's name.

    organization: Omit<
        Extract<
            Parameters<typeof createMainOrganization>[1],
            { preApproved: true },
        >,

            | "customerId"
            | "verificationProfileId"
            | "adoptedPeople"
            | "relatedPeople"
            | "preApproved"
            | "taxId",
    >
    ownerEmail: string | null

    Invited to the twin's top non-internal role, as the prod owner.

    prodCustomerId: string

    The prod customer's id; the twin's prodCustomerId.

    programNames: string[]

    Every program the prod customer holds, by name: program ids differ per environment.

    relatedPeople: NewRelatedPerson[]