Files
banu-front/src/features/admin/courses/schema/index.js
T
2026-08-16 17:03:36 +03:30

30 lines
1.3 KiB
JavaScript

import { array, boolean, mixed, number, object, string } from 'yup'
export const courseSchema = object().shape({
title: string().required().min(3).max(255),
// The backend intentionally allows courses without an assigned teacher.
teacherId: mixed().nullable().notRequired(),
capacity: number()
.typeError('ظرفیت باید به‌صورت عدد وارد شود')
.required()
.integer('ظرفیت باید عدد صحیح باشد')
.min(1, 'ظرفیت باید حداقل ۱ نفر باشد'),
prerequisiteCourseIds: array().nullable().default([]),
coverMediaId: number().typeError('شناسه تصویر دوره باید عدد باشد').nullable().notRequired(),
description: string().nullable().notRequired(),
termId: mixed().required(),
isActive: boolean().nullable().notRequired(),
})
export const offeredCourseSchema = object().shape({
termId: string().required(),
title: string().required(),
capacity: number()
.typeError('ظرفیت باید به‌صورت عدد وارد شود')
.required()
.integer('ظرفیت باید عدد صحیح باشد')
.min(1, 'ظرفیت باید حداقل ۱ نفر باشد'),
imageId: string().nullable().notRequired(),
isActive: boolean().nullable().notRequired(),
})