import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger';
import { UserDTO } from '../../dto/user-dto';
import { AssetFullDTO } from './asset-dto';

@ApiExtraModels(UserDTO)
@ApiExtraModels(AssetFullDTO)
export class AssetsFullResultObjectsDTO {
  @ApiProperty({
    type: 'object',
    additionalProperties: { $ref: getSchemaPath(AssetFullDTO) },
  })
  assets: {
    [key: string]: AssetFullDTO;
  };
  @ApiProperty({
    type: 'object',
    additionalProperties: { $ref: getSchemaPath(UserDTO) },
  })
  users: {
    [key: string]: UserDTO;
  };
}

export class AssetsFullResultDTO {
  @ApiProperty()
  ids: string[];

  @ApiProperty({ type: AssetsFullResultObjectsDTO })
  objects: AssetsFullResultObjectsDTO;

  @ApiProperty()
  total: number;
}
