mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 00:03:33 +10:00
## Description Direct templates links is a feature that provides template owners the ability to allow users to create documents based of their templates. ## General outline This works by allowing the template owner to configure a "direct recipient" in the template. When a user opens the direct link to the template, it will create a flow where they sign the fields configured by the template owner for the direct recipient. After these fields are signed the following will occur: - A document will be created where the owner is the template owner - The direct recipient fields will be signed - The document will be sent to any other recipients configured in the template - If there are none the document will be immediately completed ## Notes There's a custom prisma migration to migrate all documents to have 'DOCUMENT' as the source, then sets the column to required. --------- Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
33 lines
927 B
TypeScript
33 lines
927 B
TypeScript
import { z } from 'zod';
|
|
|
|
// Not proud of the below but it's a way to deal with Infinity when returning JSON.
|
|
export const ZLimitsSchema = z.object({
|
|
documents: z
|
|
.preprocess((v) => (v === null ? Infinity : Number(v)), z.number())
|
|
.optional()
|
|
.default(0),
|
|
recipients: z
|
|
.preprocess((v) => (v === null ? Infinity : Number(v)), z.number())
|
|
.optional()
|
|
.default(0),
|
|
directTemplates: z
|
|
.preprocess((v) => (v === null ? Infinity : Number(v)), z.number())
|
|
.optional()
|
|
.default(0),
|
|
});
|
|
|
|
export type TLimitsSchema = z.infer<typeof ZLimitsSchema>;
|
|
|
|
export const ZLimitsResponseSchema = z.object({
|
|
quota: ZLimitsSchema,
|
|
remaining: ZLimitsSchema,
|
|
});
|
|
|
|
export type TLimitsResponseSchema = z.infer<typeof ZLimitsResponseSchema>;
|
|
|
|
export const ZLimitsErrorResponseSchema = z.object({
|
|
error: z.string(),
|
|
});
|
|
|
|
export type TLimitsErrorResponseSchema = z.infer<typeof ZLimitsErrorResponseSchema>;
|