diff --git a/src/modules/teams/dtos/team.dto.ts b/src/modules/teams/dtos/team.dto.ts index 1394e05..e971432 100644 --- a/src/modules/teams/dtos/team.dto.ts +++ b/src/modules/teams/dtos/team.dto.ts @@ -1,6 +1,6 @@ import { z } from 'zod/v4'; import { createZodDto } from 'nestjs-zod'; -import { createPaginationSchema } from '../../../shared/schemas'; +import { createPaginationSchema } from '@shared/schemas'; export const CreateTeamSchema = z.object({ name: z.string().min(2).max(100).describe('Название команды, отображаемое в интерфейсе'), @@ -11,8 +11,11 @@ export const CreateTeamSchema = z.object({ .describe('Краткое описание деятельности или целей команды'), slug: z.string().optional().describe('Уникальная ссылка на изображение команду'), tags: z - .array(z.string()) + .array(z.string().toLowerCase()) .optional() + .refine((items) => !items || new Set(items).size === items.length, { + message: 'Теги в списке не должны повторяться', + }) .describe('Список строковых названий тегов для классификации'), }); diff --git a/src/modules/teams/services/teams.service.ts b/src/modules/teams/services/teams.service.ts index 4675851..f56ce3f 100644 --- a/src/modules/teams/services/teams.service.ts +++ b/src/modules/teams/services/teams.service.ts @@ -50,6 +50,7 @@ export class TeamsService { } const { tags, ...teamData } = dto; + const uniqueTags = tags ? [...new Set(tags.map((tag) => tag.toLowerCase()))] : []; try { const result = await this.teamsRepo.create( @@ -58,7 +59,7 @@ export class TeamsService { ...teamData, slug: baseSlug, }, - tags, + uniqueTags, ); return {