All files / src/modules/search/dto filter-manifest.dto.ts

100% Statements 19/19
100% Branches 0/0
100% Functions 2/2
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33  11x     11x   11x     11x       11x   11x     11x     11x   33x 11x       11x 33x 11x    
// src/modules/search/dto/filter-manifest.dto.ts
import { Field, ObjectType } from '@nestjs/graphql';
 
@ObjectType()
export class FilterOption {
  @Field()
  label!: string;
 
  @Field()
  value!: string;
}
 
@ObjectType()
export class FilterDefinition {
  @Field()
  key!: string; // e.g. 'price'
 
  @Field()
  label!: string; // e.g. 'Price'
 
  @Field()
  type!: string; // 'range', 'terms', 'boolean'
 
  @Field(() => [FilterOption], { nullable: true })
  options?: FilterOption[];
}
 
@ObjectType()
export class FilterManifestResponse {
  @Field(() => [FilterDefinition])
  filters!: FilterDefinition[];
}