@tsclass/tsclass
Version:
Provides TypeScript definitions for various business, financial, networking, content, and other common classes.
91 lines (90 loc) • 2.2 kB
TypeScript
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;