emr-types
Version:
Comprehensive TypeScript Types Library for Electronic Medical Record (EMR) Applications - Domain-Driven Design with Zod Validation
1,214 lines • 40.5 kB
TypeScript
import { z } from 'zod';
import { Status, Priority } from '../domains/shared';
export declare const IdSchema: z.ZodBranded<z.ZodString, "Id">;
export declare const TimestampSchema: z.ZodDate;
export declare const MoneySchema: z.ZodObject<{
amount: z.ZodNumber;
currency: z.ZodString;
precision: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
amount: number;
currency: string;
precision: number;
}, {
amount: number;
currency: string;
precision?: number | undefined;
}>;
export declare const StatusSchema: z.ZodNativeEnum<typeof Status>;
export declare const PrioritySchema: z.ZodNativeEnum<typeof Priority>;
export declare const IdValueObjectSchema: z.ZodObject<{
value: z.ZodBranded<z.ZodString, "Id">;
format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
createdAt: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
value: string & z.BRAND<"Id">;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}, {
value: string;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}>;
export declare const TimestampValueObjectSchema: z.ZodObject<{
value: z.ZodDate;
timezone: z.ZodOptional<z.ZodString>;
format: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: Date;
createdAt: Date;
format?: string | undefined;
timezone?: string | undefined;
}, {
value: Date;
createdAt: Date;
format?: string | undefined;
timezone?: string | undefined;
}>;
export declare const MoneyValueObjectSchema: z.ZodObject<{
value: z.ZodObject<{
amount: z.ZodNumber;
currency: z.ZodString;
precision: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
amount: number;
currency: string;
precision: number;
}, {
amount: number;
currency: string;
precision?: number | undefined;
}>;
exchangeRate: z.ZodOptional<z.ZodNumber>;
baseCurrency: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
amount: number;
currency: string;
precision: number;
};
createdAt: Date;
exchangeRate?: number | undefined;
baseCurrency?: string | undefined;
}, {
value: {
amount: number;
currency: string;
precision?: number | undefined;
};
createdAt: Date;
exchangeRate?: number | undefined;
baseCurrency?: string | undefined;
}>;
export declare const PaginationSchema: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
export declare const SortSchema: z.ZodObject<{
field: z.ZodString;
direction: z.ZodEnum<["asc", "desc"]>;
}, "strip", z.ZodTypeAny, {
field: string;
direction: "asc" | "desc";
}, {
field: string;
direction: "asc" | "desc";
}>;
export declare const FilterSchema: z.ZodObject<{
field: z.ZodString;
operator: z.ZodEnum<["eq", "ne", "gt", "gte", "lt", "lte", "in", "nin", "like", "ilike"]>;
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>;
}, "strip", z.ZodTypeAny, {
value: string | number | boolean | (string | number)[];
field: string;
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "nin" | "like" | "ilike";
}, {
value: string | number | boolean | (string | number)[];
field: string;
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "nin" | "like" | "ilike";
}>;
export declare const SearchSchema: z.ZodObject<{
query: z.ZodString;
fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
fuzzy: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
query: string;
fields?: string[] | undefined;
fuzzy?: boolean | undefined;
}, {
query: string;
fields?: string[] | undefined;
fuzzy?: boolean | undefined;
}>;
export declare const ApiResponseSchema: z.ZodObject<{
success: z.ZodBoolean;
data: z.ZodOptional<z.ZodUnknown>;
message: z.ZodOptional<z.ZodString>;
errors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
success: boolean;
errors?: string[] | undefined;
message?: string | undefined;
data?: unknown;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
success: boolean;
errors?: string[] | undefined;
message?: string | undefined;
data?: unknown;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
export declare const PaginatedResponseSchema: z.ZodObject<{
data: z.ZodArray<z.ZodUnknown, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
data: unknown[];
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
data: unknown[];
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
export declare const ErrorResponseSchema: z.ZodObject<{
success: z.ZodLiteral<false>;
error: z.ZodObject<{
code: z.ZodString;
message: z.ZodString;
details: z.ZodOptional<z.ZodUnknown>;
stack: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
}, {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
}>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
error: {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
};
success: false;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
error: {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
};
success: false;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
export declare const ValidationErrorSchema: z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>;
export declare const ValidationResultSchema: z.ZodObject<{
isValid: z.ZodBoolean;
errors: z.ZodArray<z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>, "many">;
warnings: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
isValid: boolean;
errors: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[];
warnings?: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[] | undefined;
}, {
isValid: boolean;
errors: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[];
warnings?: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[] | undefined;
}>;
export declare const AuditMetadataSchema: z.ZodObject<{
createdAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
updatedAt: z.ZodOptional<z.ZodDate>;
updatedBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
deletedAt: z.ZodOptional<z.ZodDate>;
deletedBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
version: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
createdAt: Date;
updatedAt?: Date | undefined;
createdBy?: (string & z.BRAND<"Id">) | undefined;
updatedBy?: (string & z.BRAND<"Id">) | undefined;
deletedAt?: Date | undefined;
version?: number | undefined;
deletedBy?: (string & z.BRAND<"Id">) | undefined;
}, {
createdAt: Date;
updatedAt?: Date | undefined;
createdBy?: string | undefined;
updatedBy?: string | undefined;
deletedAt?: Date | undefined;
version?: number | undefined;
deletedBy?: string | undefined;
}>;
export declare const AuditLogSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
entityType: z.ZodString;
entityId: z.ZodBranded<z.ZodString, "Id">;
action: z.ZodEnum<["create", "update", "delete", "restore"]>;
changes: z.ZodOptional<z.ZodObject<{
before: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
after: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
}, {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
}>>;
userId: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
userAgent: z.ZodOptional<z.ZodString>;
ipAddress: z.ZodOptional<z.ZodString>;
timestamp: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
id: string & z.BRAND<"Id">;
timestamp: Date;
entityType: string;
entityId: string & z.BRAND<"Id">;
action: "create" | "update" | "delete" | "restore";
metadata?: Record<string, unknown> | undefined;
userId?: (string & z.BRAND<"Id">) | undefined;
userAgent?: string | undefined;
ipAddress?: string | undefined;
changes?: {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
} | undefined;
}, {
id: string;
timestamp: Date;
entityType: string;
entityId: string;
action: "create" | "update" | "delete" | "restore";
metadata?: Record<string, unknown> | undefined;
userId?: string | undefined;
userAgent?: string | undefined;
ipAddress?: string | undefined;
changes?: {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
} | undefined;
}>;
export declare const FileSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
name: z.ZodString;
originalName: z.ZodString;
mimeType: z.ZodString;
size: z.ZodNumber;
url: z.ZodString;
path: z.ZodOptional<z.ZodString>;
hash: z.ZodOptional<z.ZodString>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
}, "strip", z.ZodTypeAny, {
id: string & z.BRAND<"Id">;
createdAt: Date;
name: string;
url: string;
size: number;
mimeType: string;
originalName: string;
createdBy?: (string & z.BRAND<"Id">) | undefined;
metadata?: Record<string, unknown> | undefined;
path?: string | undefined;
hash?: string | undefined;
}, {
id: string;
createdAt: Date;
name: string;
url: string;
size: number;
mimeType: string;
originalName: string;
createdBy?: string | undefined;
metadata?: Record<string, unknown> | undefined;
path?: string | undefined;
hash?: string | undefined;
}>;
export declare const FileUploadSchema: z.ZodObject<{
file: z.ZodType<import("buffer").File, z.ZodTypeDef, import("buffer").File>;
category: z.ZodOptional<z.ZodString>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
file: import("buffer").File;
category?: string | undefined;
tags?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}, {
file: import("buffer").File;
category?: string | undefined;
tags?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}>;
export declare const NotificationSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
type: z.ZodEnum<["info", "success", "warning", "error"]>;
title: z.ZodString;
message: z.ZodString;
recipientId: z.ZodBranded<z.ZodString, "Id">;
recipientType: z.ZodEnum<["user", "patient", "provider"]>;
channel: z.ZodEnum<["email", "sms", "push", "in-app"]>;
status: z.ZodEnum<["pending", "sent", "delivered", "failed"]>;
scheduledAt: z.ZodOptional<z.ZodDate>;
sentAt: z.ZodOptional<z.ZodDate>;
deliveredAt: z.ZodOptional<z.ZodDate>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "warning" | "error" | "info" | "success";
id: string & z.BRAND<"Id">;
createdAt: Date;
status: "pending" | "sent" | "delivered" | "failed";
title: string;
message: string;
recipientId: string & z.BRAND<"Id">;
recipientType: "patient" | "provider" | "user";
channel: "push" | "sms" | "email" | "in-app";
metadata?: Record<string, unknown> | undefined;
scheduledAt?: Date | undefined;
sentAt?: Date | undefined;
deliveredAt?: Date | undefined;
}, {
type: "warning" | "error" | "info" | "success";
id: string;
createdAt: Date;
status: "pending" | "sent" | "delivered" | "failed";
title: string;
message: string;
recipientId: string;
recipientType: "patient" | "provider" | "user";
channel: "push" | "sms" | "email" | "in-app";
metadata?: Record<string, unknown> | undefined;
scheduledAt?: Date | undefined;
sentAt?: Date | undefined;
deliveredAt?: Date | undefined;
}>;
export declare const SettingsSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
key: z.ZodString;
value: z.ZodUnknown;
type: z.ZodEnum<["string", "number", "boolean", "object", "array"]>;
category: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
isPublic: z.ZodDefault<z.ZodBoolean>;
isRequired: z.ZodDefault<z.ZodBoolean>;
validation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
type: "string" | "number" | "boolean" | "object" | "array";
id: string & z.BRAND<"Id">;
createdAt: Date;
isRequired: boolean;
key: string;
isPublic: boolean;
value?: unknown;
category?: string | undefined;
updatedAt?: Date | undefined;
description?: string | undefined;
validation?: Record<string, unknown> | undefined;
}, {
type: "string" | "number" | "boolean" | "object" | "array";
id: string;
createdAt: Date;
key: string;
value?: unknown;
category?: string | undefined;
updatedAt?: Date | undefined;
description?: string | undefined;
validation?: Record<string, unknown> | undefined;
isRequired?: boolean | undefined;
isPublic?: boolean | undefined;
}>;
export declare const SharedValidationUtils: {
isValidUUID: (uuid: string) => boolean;
isValidEmail: (email: string) => boolean;
isValidPhoneNumber: (phone: string) => boolean;
isValidCurrency: (currency: string) => boolean;
isValidMoney: (amount: number, currency: string) => boolean;
validatePagination: (page: number, limit: number) => {
isValid: boolean;
errors: string[];
};
validateSort: (field: string, direction: string) => {
isValid: boolean;
errors: string[];
};
validateFilter: (field: string, operator: string, value: unknown) => {
isValid: boolean;
errors: string[];
};
};
export type Pagination = z.infer<typeof PaginationSchema>;
export type Sort = z.infer<typeof SortSchema>;
export type Filter = z.infer<typeof FilterSchema>;
export type Search = z.infer<typeof SearchSchema>;
export type ApiResponse = z.infer<typeof ApiResponseSchema>;
export type PaginatedResponse = z.infer<typeof PaginatedResponseSchema>;
export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
export type ValidationError = z.infer<typeof ValidationErrorSchema>;
export type ValidationResult = z.infer<typeof ValidationResultSchema>;
export type AuditMetadata = z.infer<typeof AuditMetadataSchema>;
export type AuditLog = z.infer<typeof AuditLogSchema>;
export type File = z.infer<typeof FileSchema>;
export type FileUpload = z.infer<typeof FileUploadSchema>;
export type Notification = z.infer<typeof NotificationSchema>;
export type Settings = z.infer<typeof SettingsSchema>;
export declare const SharedSchemas: {
readonly Id: z.ZodBranded<z.ZodString, "Id">;
readonly Timestamp: z.ZodDate;
readonly Money: z.ZodObject<{
amount: z.ZodNumber;
currency: z.ZodString;
precision: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
amount: number;
currency: string;
precision: number;
}, {
amount: number;
currency: string;
precision?: number | undefined;
}>;
readonly Status: z.ZodNativeEnum<typeof Status>;
readonly Priority: z.ZodNativeEnum<typeof Priority>;
readonly IdValueObject: z.ZodObject<{
value: z.ZodBranded<z.ZodString, "Id">;
format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
createdAt: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
value: string & z.BRAND<"Id">;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}, {
value: string;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}>;
readonly TimestampValueObject: z.ZodObject<{
value: z.ZodDate;
timezone: z.ZodOptional<z.ZodString>;
format: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: Date;
createdAt: Date;
format?: string | undefined;
timezone?: string | undefined;
}, {
value: Date;
createdAt: Date;
format?: string | undefined;
timezone?: string | undefined;
}>;
readonly MoneyValueObject: z.ZodObject<{
value: z.ZodObject<{
amount: z.ZodNumber;
currency: z.ZodString;
precision: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
amount: number;
currency: string;
precision: number;
}, {
amount: number;
currency: string;
precision?: number | undefined;
}>;
exchangeRate: z.ZodOptional<z.ZodNumber>;
baseCurrency: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
amount: number;
currency: string;
precision: number;
};
createdAt: Date;
exchangeRate?: number | undefined;
baseCurrency?: string | undefined;
}, {
value: {
amount: number;
currency: string;
precision?: number | undefined;
};
createdAt: Date;
exchangeRate?: number | undefined;
baseCurrency?: string | undefined;
}>;
readonly Pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
readonly Sort: z.ZodObject<{
field: z.ZodString;
direction: z.ZodEnum<["asc", "desc"]>;
}, "strip", z.ZodTypeAny, {
field: string;
direction: "asc" | "desc";
}, {
field: string;
direction: "asc" | "desc";
}>;
readonly Filter: z.ZodObject<{
field: z.ZodString;
operator: z.ZodEnum<["eq", "ne", "gt", "gte", "lt", "lte", "in", "nin", "like", "ilike"]>;
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>;
}, "strip", z.ZodTypeAny, {
value: string | number | boolean | (string | number)[];
field: string;
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "nin" | "like" | "ilike";
}, {
value: string | number | boolean | (string | number)[];
field: string;
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "nin" | "like" | "ilike";
}>;
readonly Search: z.ZodObject<{
query: z.ZodString;
fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
fuzzy: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
query: string;
fields?: string[] | undefined;
fuzzy?: boolean | undefined;
}, {
query: string;
fields?: string[] | undefined;
fuzzy?: boolean | undefined;
}>;
readonly ApiResponse: z.ZodObject<{
success: z.ZodBoolean;
data: z.ZodOptional<z.ZodUnknown>;
message: z.ZodOptional<z.ZodString>;
errors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
success: boolean;
errors?: string[] | undefined;
message?: string | undefined;
data?: unknown;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
success: boolean;
errors?: string[] | undefined;
message?: string | undefined;
data?: unknown;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
readonly PaginatedResponse: z.ZodObject<{
data: z.ZodArray<z.ZodUnknown, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
data: unknown[];
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
data: unknown[];
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
readonly ErrorResponse: z.ZodObject<{
success: z.ZodLiteral<false>;
error: z.ZodObject<{
code: z.ZodString;
message: z.ZodString;
details: z.ZodOptional<z.ZodUnknown>;
stack: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
}, {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
}>;
meta: z.ZodOptional<z.ZodObject<{
timestamp: z.ZodDate;
requestId: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}, {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
error: {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
};
success: false;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}, {
error: {
message: string;
code: string;
details?: unknown;
stack?: string | undefined;
};
success: false;
meta?: {
timestamp: Date;
requestId?: string | undefined;
version?: string | undefined;
} | undefined;
}>;
readonly ValidationError: z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>;
readonly ValidationResult: z.ZodObject<{
isValid: z.ZodBoolean;
errors: z.ZodArray<z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>, "many">;
warnings: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
message: z.ZodString;
code: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}, {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
isValid: boolean;
errors: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[];
warnings?: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[] | undefined;
}, {
isValid: boolean;
errors: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[];
warnings?: {
message: string;
field: string;
value?: unknown;
code?: string | undefined;
}[] | undefined;
}>;
readonly AuditMetadata: z.ZodObject<{
createdAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
updatedAt: z.ZodOptional<z.ZodDate>;
updatedBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
deletedAt: z.ZodOptional<z.ZodDate>;
deletedBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
version: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
createdAt: Date;
updatedAt?: Date | undefined;
createdBy?: (string & z.BRAND<"Id">) | undefined;
updatedBy?: (string & z.BRAND<"Id">) | undefined;
deletedAt?: Date | undefined;
version?: number | undefined;
deletedBy?: (string & z.BRAND<"Id">) | undefined;
}, {
createdAt: Date;
updatedAt?: Date | undefined;
createdBy?: string | undefined;
updatedBy?: string | undefined;
deletedAt?: Date | undefined;
version?: number | undefined;
deletedBy?: string | undefined;
}>;
readonly AuditLog: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
entityType: z.ZodString;
entityId: z.ZodBranded<z.ZodString, "Id">;
action: z.ZodEnum<["create", "update", "delete", "restore"]>;
changes: z.ZodOptional<z.ZodObject<{
before: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
after: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
}, {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
}>>;
userId: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
userAgent: z.ZodOptional<z.ZodString>;
ipAddress: z.ZodOptional<z.ZodString>;
timestamp: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
id: string & z.BRAND<"Id">;
timestamp: Date;
entityType: string;
entityId: string & z.BRAND<"Id">;
action: "create" | "update" | "delete" | "restore";
metadata?: Record<string, unknown> | undefined;
userId?: (string & z.BRAND<"Id">) | undefined;
userAgent?: string | undefined;
ipAddress?: string | undefined;
changes?: {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
} | undefined;
}, {
id: string;
timestamp: Date;
entityType: string;
entityId: string;
action: "create" | "update" | "delete" | "restore";
metadata?: Record<string, unknown> | undefined;
userId?: string | undefined;
userAgent?: string | undefined;
ipAddress?: string | undefined;
changes?: {
before?: Record<string, unknown> | undefined;
after?: Record<string, unknown> | undefined;
} | undefined;
}>;
readonly File: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
name: z.ZodString;
originalName: z.ZodString;
mimeType: z.ZodString;
size: z.ZodNumber;
url: z.ZodString;
path: z.ZodOptional<z.ZodString>;
hash: z.ZodOptional<z.ZodString>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodBranded<z.ZodString, "Id">>;
}, "strip", z.ZodTypeAny, {
id: string & z.BRAND<"Id">;
createdAt: Date;
name: string;
url: string;
size: number;
mimeType: string;
originalName: string;
createdBy?: (string & z.BRAND<"Id">) | undefined;
metadata?: Record<string, unknown> | undefined;
path?: string | undefined;
hash?: string | undefined;
}, {
id: string;
createdAt: Date;
name: string;
url: string;
size: number;
mimeType: string;
originalName: string;
createdBy?: string | undefined;
metadata?: Record<string, unknown> | undefined;
path?: string | undefined;
hash?: string | undefined;
}>;
readonly FileUpload: z.ZodObject<{
file: z.ZodType<import("buffer").File, z.ZodTypeDef, import("buffer").File>;
category: z.ZodOptional<z.ZodString>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
file: import("buffer").File;
category?: string | undefined;
tags?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}, {
file: import("buffer").File;
category?: string | undefined;
tags?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}>;
readonly Notification: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
type: z.ZodEnum<["info", "success", "warning", "error"]>;
title: z.ZodString;
message: z.ZodString;
recipientId: z.ZodBranded<z.ZodString, "Id">;
recipientType: z.ZodEnum<["user", "patient", "provider"]>;
channel: z.ZodEnum<["email", "sms", "push", "in-app"]>;
status: z.ZodEnum<["pending", "sent", "delivered", "failed"]>;
scheduledAt: z.ZodOptional<z.ZodDate>;
sentAt: z.ZodOptional<z.ZodDate>;
deliveredAt: z.ZodOptional<z.ZodDate>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "warning" | "error" | "info" | "success";
id: string & z.BRAND<"Id">;
createdAt: Date;
status: "pending" | "sent" | "delivered" | "failed";
title: string;
message: string;
recipientId: string & z.BRAND<"Id">;
recipientType: "patient" | "provider" | "user";
channel: "push" | "sms" | "email" | "in-app";
metadata?: Record<string, unknown> | undefined;
scheduledAt?: Date | undefined;
sentAt?: Date | undefined;
deliveredAt?: Date | undefined;
}, {
type: "warning" | "error" | "info" | "success";
id: string;
createdAt: Date;
status: "pending" | "sent" | "delivered" | "failed";
title: string;
message: string;
recipientId: string;
recipientType: "patient" | "provider" | "user";
channel: "push" | "sms" | "email" | "in-app";
metadata?: Record<string, unknown> | undefined;
scheduledAt?: Date | undefined;
sentAt?: Date | undefined;
deliveredAt?: Date | undefined;
}>;
readonly Settings: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "Id">;
key: z.ZodString;
value: z.ZodUnknown;
type: z.ZodEnum<["string", "number", "boolean", "object", "array"]>;
category: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
isPublic: z.ZodDefault<z.ZodBoolean>;
isRequired: z.ZodDefault<z.ZodBoolean>;
validation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
type: "string" | "number" | "boolean" | "object" | "array";
id: string & z.BRAND<"Id">;
createdAt: Date;
isRequired: boolean;
key: string;
isPublic: boolean;
value?: unknown;
category?: string | undefined;
updatedAt?: Date | undefined;
description?: string | undefined;
validation?: Record<string, unknown> | undefined;
}, {
type: "string" | "number" | "boolean" | "object" | "array";
id: string;
createdAt: Date;
key: string;
value?: unknown;
category?: string | undefined;
updatedAt?: Date | undefined;
description?: string | undefined;
validation?: Record<string, unknown> | undefined;
isRequired?: boolean | undefined;
isPublic?: boolean | undefined;
}>;
readonly ValidationUtils: {
isValidUUID: (uuid: string) => boolean;
isValidEmail: (email: string) => boolean;
isValidPhoneNumber: (phone: string) => boolean;
isValidCurrency: (currency: string) => boolean;
isValidMoney: (amount: number, currency: string) => boolean;
validatePagination: (page: number, limit: number) => {
isValid: boolean;
errors: string[];
};
validateSort: (field: string, direction: string) => {
isValid: boolean;
errors: string[];
};
validateFilter: (field: string, operator: string, value: unknown) => {
isValid: boolean;
errors: string[];
};
};
};
//# sourceMappingURL=shared-schemas.d.ts.map