67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
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',
|
|
]) {}
|
|
|
|
export class StorageTransactionResponseDto extends OmitType(
|
|
StoredItemTransaction,
|
|
['storedItem', 'actor'],
|
|
) {}
|
|
|
|
export class StorageTransactionWithActorResponseDto extends StorageTransactionResponseDto {
|
|
@ApiProperty({ type: StorageActorResponse })
|
|
actor: StorageActorResponse;
|
|
}
|
|
|
|
export class StorageStoredItemResponseDto extends OmitType(StoredItem, [
|
|
'addedBy',
|
|
'transactions',
|
|
'storage',
|
|
'building',
|
|
'item',
|
|
]) {
|
|
@ApiProperty({ type: StorageActorResponse })
|
|
addedBy: StorageActorResponse;
|
|
|
|
@ApiProperty({ type: StorageItemResponseDto })
|
|
@Type(() => StorageItemResponseDto)
|
|
item: StorageItemResponseDto;
|
|
|
|
@ApiProperty({ type: StorageTransactionResponseDto, isArray: true })
|
|
@Type(() => StorageTransactionResponseDto)
|
|
transactions: StorageTransactionResponseDto[];
|
|
|
|
constructor(obj: Partial<StorageStoredItemResponseDto>) {
|
|
super(obj);
|
|
Object.assign(this, obj);
|
|
}
|
|
}
|
|
|
|
export class StorageStoredItemTransactionDto extends OmitType(
|
|
StoredItemTransaction,
|
|
['storedItem'],
|
|
) {
|
|
@ApiProperty({ type: StorageStoredItemResponseDto })
|
|
@Type(() => StorageStoredItemResponseDto)
|
|
storedItem: StorageStoredItemResponseDto;
|
|
}
|