brf/server/schemas/db.ts

105 lines
3.4 KiB
TypeScript

import { z } from 'zod'
export const AccountSchema = z.object({
id: z.number().int().optional(),
number: z.int(),
financialYearId: z.number().int(),
description: z.string(),
sru: z.int().nullable().optional(),
})
export const AdmissionSchema = z.object({
id: z.number().int().optional(),
regex: z.string(),
createdAt: z.date().nullable().optional(),
createdById: z.number().int(),
modifiedAt: z.date().nullable().optional(),
modifiedById: z.number().int().nullable().optional(),
})
export const AccountBalanceSchema = z.object({
accountNumber: z.number().int(),
financialYearId: z.number().int(),
in: z.number().optional(),
out: z.number().optional(),
inQuantity: z.number().int().nullable().optional(),
outQuantity: z.number().int().nullable().optional(),
})
export const ErrorSchema = z.object({
id: z.number().int().optional(),
statusCode: z.number().int().nullable().optional(),
type: z.string().nullable().optional(),
message: z.string().nullable().optional(),
details: z.json().nullable().optional(),
stack: z.string().nullable().optional(),
method: z.string().nullable().optional(),
path: z.string().nullable().optional(),
headers: z.json().nullable().optional(),
ip: z.string().nullable().optional(),
reqId: z.string().nullable().optional(),
createdAt: z.string().nullable().optional(),
})
export const InviteSchema = z.object({
id: z.number().int().optional(),
email: z.string(),
token: z.string(),
createdAt: z.date().optional(),
createdById: z.number().int().nullable().optional(),
modifiedAt: z.date().nullable().optional(),
modifiedById: z.number().int().nullable().optional(),
consumedAt: z.date().nullable().optional(),
consumedById: z.number().int().nullable().optional(),
})
export const InvoiceSchema = z.object({
id: z.number().int().optional(),
financialYearId: z.number().int().nullable().optional(),
supplierId: z.number().int(),
fiskenNumber: z.number().int().nullable().optional(),
phmNumber: z.number().int().nullable().optional(),
invoiceNumber: z.string().nullable().optional(),
invoiceDate: z.string().nullable().optional(),
dueDate: z.string().nullable().optional(),
ocr: z.string().nullable().optional(),
amount: z.number().nullable().optional(),
})
export const RoleSchema = z.object({
id: z.number().int().optional(),
name: z.string(),
createdAt: z.date().optional(),
createdById: z.number().int().nullable().optional(),
modifiedAt: z.date().nullable().optional(),
modifiedById: z.number().int().nullable().optional(),
})
export const SupplierSchema = z.object({
id: z.number().int().optional(),
name: z.string().nullable().optional(),
supplierTypeId: z.number().int(),
taxId: z.string().nullable().optional(),
})
export const SupplierTypeSchema = z.object({
id: z.number().int().optional(),
name: z.string(),
})
export const UserSchema = z.object({
id: z.number().int().optional(),
email: z.string(),
password: z.string(),
createdAt: z.date().optional(),
lastLoginAt: z.date().nullable().optional(),
loginAttempts: z.number().int().nullable().optional(),
lastLoginAttemptAt: z.date().nullable().optional(),
lastActivityAt: z.date().nullable().optional(),
bannedAt: z.date().nullable().optional(),
bannedById: z.number().int().nullable().optional(),
blockedAt: z.date().nullable().optional(),
blockedById: z.number().int().nullable().optional(),
emailVerifiedAt: z.date().nullable().optional(),
})