60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
/**
|
|
* Interface of the server (auto-generated code)
|
|
*/
|
|
import { z as zod } from "zod";
|
|
|
|
import {ZodUUID} from "./uuid";
|
|
import {ZodLocalDate} from "./local-date";
|
|
import {ZodGenericDataSoftDelete, ZodGenericDataSoftDeleteWrite } from "./generic-data-soft-delete";
|
|
|
|
export const ZodArtist = ZodGenericDataSoftDelete.extend({
|
|
name: zod.string().max(256).optional(),
|
|
description: zod.string().optional(),
|
|
/**
|
|
* List of Id of the specific covers
|
|
*/
|
|
covers: zod.array(ZodUUID).optional(),
|
|
firstName: zod.string().max(256).optional(),
|
|
surname: zod.string().max(256).optional(),
|
|
birth: ZodLocalDate.optional(),
|
|
death: ZodLocalDate.optional(),
|
|
|
|
});
|
|
|
|
export type Artist = zod.infer<typeof ZodArtist>;
|
|
|
|
export function isArtist(data: any): data is Artist {
|
|
try {
|
|
ZodArtist.parse(data);
|
|
return true;
|
|
} catch (e: any) {
|
|
console.log(`Fail to parse data type='ZodArtist' error=${e}`);
|
|
return false;
|
|
}
|
|
}
|
|
export const ZodArtistWrite = ZodGenericDataSoftDeleteWrite.extend({
|
|
name: zod.string().max(256).nullable().optional(),
|
|
description: zod.string().nullable().optional(),
|
|
/**
|
|
* List of Id of the specific covers
|
|
*/
|
|
covers: zod.array(ZodUUID).nullable().optional(),
|
|
firstName: zod.string().max(256).nullable().optional(),
|
|
surname: zod.string().max(256).nullable().optional(),
|
|
birth: ZodLocalDate.nullable().optional(),
|
|
death: ZodLocalDate.nullable().optional(),
|
|
|
|
});
|
|
|
|
export type ArtistWrite = zod.infer<typeof ZodArtistWrite>;
|
|
|
|
export function isArtistWrite(data: any): data is ArtistWrite {
|
|
try {
|
|
ZodArtistWrite.parse(data);
|
|
return true;
|
|
} catch (e: any) {
|
|
console.log(`Fail to parse data type='ZodArtistWrite' error=${e}`);
|
|
return false;
|
|
}
|
|
}
|