homemanager-be/src/app-storage/dto/storage-item-response.dto.ts

67 lines
1.9 KiB
TypeScript
Raw Normal View History

2023-01-12 21:04:42 +00:00
import { ApiProperty, OmitType, PickType } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { StoredItemTransaction } from 'src/objects/storage/entities/item-transaction.entity';
import { Item } from 'src/objects/storage/entities/item.entity';
import { StoredItem } from 'src/objects/storage/entities/stored-item.entity';
import { StorageActorResponse } from './storage-response.dto';
export class StorageItemResponseDto extends OmitType(Item, [
'instances',
'addedBy',
]) {
@ApiProperty({ type: StorageActorResponse })
addedBy: StorageActorResponse;
}
export class StorageItemSearchResponseDto extends PickType(Item, [
'id',
'displayName',
'type',
'barcode',
'image',
'createdAt',
]) {}
2023-01-13 19:42:21 +00:00
export class StorageTransactionResponseDto extends OmitType(
StoredItemTransaction,
['storedItem', 'actor'],
) {}
2023-01-15 06:42:40 +00:00
export class StorageTransactionWithActorResponseDto extends StorageTransactionResponseDto {
@ApiProperty({ type: StorageActorResponse })
actor: StorageActorResponse;
}
2023-01-12 21:04:42 +00:00
export class StorageStoredItemResponseDto extends OmitType(StoredItem, [
2023-01-13 19:42:21 +00:00
'addedBy',
2023-01-12 21:04:42 +00:00
'transactions',
'storage',
2023-01-24 19:03:43 +00:00
'building',
2023-01-12 21:04:42 +00:00
'item',
]) {
2023-01-13 19:42:21 +00:00
@ApiProperty({ type: StorageActorResponse })
addedBy: StorageActorResponse;
2023-01-12 21:04:42 +00:00
@ApiProperty({ type: StorageItemResponseDto })
@Type(() => StorageItemResponseDto)
item: StorageItemResponseDto;
2023-01-13 19:42:21 +00:00
@ApiProperty({ type: StorageTransactionResponseDto, isArray: true })
@Type(() => StorageTransactionResponseDto)
transactions: StorageTransactionResponseDto[];
constructor(obj: Partial<StorageStoredItemResponseDto>) {
super(obj);
Object.assign(this, obj);
}
2023-01-12 21:04:42 +00:00
}
export class StorageStoredItemTransactionDto extends OmitType(
StoredItemTransaction,
['storedItem'],
) {
@ApiProperty({ type: StorageStoredItemResponseDto })
@Type(() => StorageStoredItemResponseDto)
storedItem: StorageStoredItemResponseDto;
}