20 lines
766 B
TypeScript
20 lines
766 B
TypeScript
import { z } from "zod/v4";
|
|
|
|
import { BrandInputSchema } from "../api/domain/brand.aggregate";
|
|
import { BrandLogoSchema } from "../api/domain/value-objects/brand-logo.vo";
|
|
|
|
export type { BrandInput } from "../api/domain/brand.aggregate";
|
|
export { BRAND_LOGO_MAX_BYTES, BrandLogoSchema } from "../api/domain/value-objects/brand-logo.vo";
|
|
|
|
export { BrandInputSchema };
|
|
export const BrandSchema = z.strictObject({
|
|
id: z.uuid(),
|
|
name: z.string().min(1).max(100),
|
|
active: z.boolean(),
|
|
builtin: z.boolean(),
|
|
logoSvg: BrandLogoSchema.nullable(),
|
|
});
|
|
export const BrandsResponseSchema = z.strictObject({ brands: z.array(BrandSchema) });
|
|
export const BrandResponseSchema = z.strictObject({ brand: BrandSchema });
|
|
export type BrandDTO = z.infer<typeof BrandSchema>;
|