Files
fullstack-fuware/src/service/house.schema.ts
Sam 1d3e79c546 add function for user
- create house
- edit house
- delete house
- list all member for active house
2026-02-08 13:43:14 +07:00

46 lines
1.3 KiB
TypeScript

import { m } from '@paraglide/messages';
import z from 'zod';
export const baseHouse = z.object({
id: z.string().nonempty(m.houses_page_message_house_not_found()),
});
export const houseListSchema = z.object({
page: z.coerce.number().min(1).default(1),
limit: z.coerce.number().min(10).max(100).default(10),
keyword: z.string().optional(),
});
export const houseCreateSchema = z.object({
name: z
.string()
.nonempty(m.common_is_required({ field: m.houses_page_form_name() })),
userId: z
.string()
.nonempty(m.common_is_required({ field: m.houses_page_form_user() })),
color: z
.string()
.nonempty(m.common_is_required({ field: m.houses_page_form_color() })),
});
export const houseCreateBESchema = houseCreateSchema.extend({
slug: z.string().nonempty(m.common_is_required({ field: 'Slug' })),
});
export const houseCreateByUserBESchema = houseCreateBESchema.omit({
userId: true,
});
export const houseEditSchema = baseHouse.extend({
name: z
.string()
.nonempty(m.common_is_required({ field: m.houses_page_form_name() })),
color: z
.string()
.nonempty(m.common_is_required({ field: m.houses_page_form_color() })),
});
export const houseEditBESchema = houseEditSchema.extend({
slug: z.string().nonempty(m.common_is_required({ field: 'Slug' })),
});