UNPKG

@tsclass/tsclass

Version:

Provides TypeScript definitions for various business, financial, networking, content, and other common classes.

91 lines (90 loc) 2.2 kB
import * as database from "../database/index.js"; import * as business from "./index.js"; /** * Base type for common document properties across different document types. */ export type TDocumentEnvelope<TYPE extends string, FIELDS> = { /** * Document type identifier */ type: TYPE; /** * Unique identifier for the document */ id: string; /** * Document creation/issuance date as a Unix timestamp */ date: number; /** * Document status in its lifecycle */ status: string; /** * Version information for the document */ versionInfo: { /** * Should follow semVer format */ version: string; /** * Type of version (draft vs final) */ type: "draft" | "final"; /** * When this version was last modified */ lastModified?: number; /** * Version history for tracking changes */ history?: { version: string; modifiedAt: number; modifiedBy?: string; changeDescription?: string; }[]; }; /** * Primary language of the document */ language: string; /** * The text displayed at the top of the document, often a greeting or introduction */ topText?: string; /** * The text displayed at the bottom of the document, often a signature or conclusion */ bottomText?: string; /** * Formatting/branding information */ appearance?: { /** * URL to the logo to be displayed on the document */ logoUrl?: string; /** * Primary color for document styling */ accentColor?: string; /** * Font family for the document */ fontFamily?: string; }; /** * References to PDF versions of the document */ pdf?: business.IPdf; /** * PDF attachments are additional PDFs attached to the document */ pdfAttachments?: business.IPdf[]; /** * Track document lifecycle actions */ objectActions?: database.IObjectAction[]; } & FIELDS;