import { Role } from '@/entities/role.entity';
import { SystemLang } from '@/system/lang/system.lang';
import { IsUniqueInDatabase } from '@/system/validators/decorators/is-unique-in-database.decorator';
import { IsString } from 'class-validator';

export class CreateRoleDto {
  @IsString({
    message: SystemLang.getCustomText({
      en: 'Role key must be a string.',
      vi: 'Khóa vai trò phải là chuỗi.',
    }),
  })
  @IsUniqueInDatabase(
    Role,
    'role_key',
    {},
    {
      message: SystemLang.getCustomText({
        en: 'Role key must be unique.',
        vi: 'Khóa vai trò phải là duy nhất.',
      }),
    },
  )
  role_key: Role['role_key'];

  @IsString({
    message: SystemLang.getCustomText({
      en: 'Role name must be a string.',
      vi: 'Tên vai trò phải là chuỗi.',
    }),
  })
  role_name: Role['role_name'];
}
