brf/server/schemas/db.ts

90 lines
2.9 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 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(),
})