import { z } from 'zod/v4';

export const bookSchema = z.object({
  id: z.coerce.number(),
  title: z
    .string()
    .min(4, 'Der Titel muss mindestens 4 Zeichen lang sein.')
    .max(25, 'Der Titel darf höchstens 25 Zeichen lang sein.'),
  author: z.string().min(1, 'Autor ist erforderlich.'),
  isbn: z.string().min(1, 'ISBN ist erforderlich.'),
  rating: z.number().min(0).max(5),
});

export const booksSchema = z.array(bookSchema);

export type Book = z.infer<typeof bookSchema>;

export const inputBookSchema = bookSchema.partial({ id: true, rating: true });

export type InputBook = z.infer<typeof inputBookSchema>;
