import { Role } from '@/entities/role.entity';
import { SystemLang } from '@/system/lang/system.lang';
import { IsExistInDatabase } from '@/system/validators/decorators/is-exist-in-database';
import { IsArray, IsNumber } from 'class-validator';

export class ExtendsDto {
  @IsExistInDatabase(
    Role,
    'id',
    {},
    {
      each: true,
      message: SystemLang.getCustomText({
        en: 'One or more selected roles do not exist.',
        vi: 'Một hoặc nhiều vai trò được chọn không tồn tại.',
      }),
    },
  )
  @IsNumber(
    {},
    {
      message: SystemLang.getCustomText({
        en: 'Role ID must be a number.',
        vi: 'ID vai trò phải là một số.',
      }),
    },
  )
  id: Role['id'];

  @IsArray()
  @IsExistInDatabase(
    Role,
    'role_key',
    {},
    {
      each: true,
      message: SystemLang.getCustomText({
        en: 'One or more inherited roles do not exist in the system.',
        vi: 'Một hoặc nhiều vai trò kế thừa không tồn tại trong hệ thống.',
      }),
    },
  )
  inherits: Role['role_key'][];
}
