Преглед изворни кода

feat(core): Support custom fields on Channel entity

Relates to #598
Rohan Rajpal пре 5 година
родитељ
комит
489faf58a9

+ 1 - 0
packages/core/src/config/custom-field/custom-field-types.ts

@@ -184,6 +184,7 @@ export type CustomFieldConfig =
  */
 export interface CustomFields {
     Address?: CustomFieldConfig[];
+    Channel?: CustomFieldConfig[];
     Collection?: CustomFieldConfig[];
     Customer?: CustomFieldConfig[];
     Facet?: CustomFieldConfig[];

+ 1 - 0
packages/core/src/config/default-config.ts

@@ -137,6 +137,7 @@ export const defaultConfig: RuntimeVendureConfig = {
     },
     customFields: {
         Address: [],
+        Channel: [],
         Collection: [],
         Customer: [],
         Facet: [],

+ 5 - 4
packages/core/src/entity/channel/channel.entity.ts

@@ -3,6 +3,7 @@ import { DeepPartial } from '@vendure/common/lib/shared-types';
 import { Column, Entity, ManyToOne } from 'typeorm';
 
 import { VendureEntity } from '../base/base.entity';
+import { CustomChannelFields } from '../custom-entity-fields';
 import { Zone } from '../zone/zone.entity';
 
 /**
@@ -38,13 +39,13 @@ export class Channel extends VendureEntity {
     @Column('varchar')
     currencyCode: CurrencyCode;
 
+    @Column(type => CustomChannelFields)
+    customFields: CustomChannelFields;
+
     @Column() pricesIncludeTax: boolean;
 
     private generateToken(): string {
-        const randomString = () =>
-            Math.random()
-                .toString(36)
-                .substr(3, 10);
+        const randomString = () => Math.random().toString(36).substr(3, 10);
         return `${randomString()}${randomString()}`;
     }
 }

+ 1 - 0
packages/core/src/entity/custom-entity-fields.ts

@@ -10,6 +10,7 @@ export class CustomProductFields {}
 export class CustomProductFieldsTranslation {}
 export class CustomCollectionFields {}
 export class CustomCollectionFieldsTranslation {}
+export class CustomChannelFields {}
 export class CustomProductOptionFields {}
 export class CustomProductOptionFieldsTranslation {}
 export class CustomProductOptionGroupFields {}

+ 2 - 0
packages/core/src/entity/register-custom-entity-fields.ts

@@ -20,6 +20,7 @@ import { VendureConfig } from '../config/vendure-config';
 
 import {
     CustomAddressFields,
+    CustomChannelFields,
     CustomCollectionFields,
     CustomCollectionFieldsTranslation,
     CustomCustomerFields,
@@ -211,6 +212,7 @@ export function registerCustomEntityFields(config: VendureConfig) {
     registerCustomFieldsForEntity(config, 'Collection', CustomCollectionFields);
     registerCustomFieldsForEntity(config, 'Collection', CustomCollectionFieldsTranslation, true);
     registerCustomFieldsForEntity(config, 'Customer', CustomCustomerFields);
+    registerCustomFieldsForEntity(config, 'Channel', CustomChannelFields);
     registerCustomFieldsForEntity(config, 'Facet', CustomFacetFields);
     registerCustomFieldsForEntity(config, 'Facet', CustomFacetFieldsTranslation, true);
     registerCustomFieldsForEntity(config, 'FacetValue', CustomFacetValueFields);