facet-value.entity.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { Column, Entity, ManyToOne, OneToMany } from 'typeorm';
  2. import { DeepPartial, HasCustomFields } from '../../../../shared/shared-types';
  3. import { LocaleString, Translatable, Translation } from '../../common/types/locale-types';
  4. import { VendureEntity } from '../base/base.entity';
  5. import { CustomFacetValueFields } from '../custom-entity-fields';
  6. import { Facet } from '../facet/facet.entity';
  7. import { FacetValueTranslation } from './facet-value-translation.entity';
  8. /**
  9. * @description
  10. * A particular value of a {@link Facet}.
  11. *
  12. * @docsCategory entities
  13. */
  14. @Entity()
  15. export class FacetValue extends VendureEntity implements Translatable, HasCustomFields {
  16. constructor(input?: DeepPartial<FacetValue>) {
  17. super(input);
  18. }
  19. name: LocaleString;
  20. @Column() code: string;
  21. @OneToMany(type => FacetValueTranslation, translation => translation.base, { eager: true })
  22. translations: Array<Translation<FacetValue>>;
  23. @ManyToOne(type => Facet, group => group.values, { onDelete: 'CASCADE' })
  24. facet: Facet;
  25. @Column(type => CustomFacetValueFields)
  26. customFields: CustomFacetValueFields;
  27. }