Implement hiding mechanism
[sdc.git] / catalog-ui / src / app / models / category.ts
index fcfe61b..dc7cf56 100644 (file)
@@ -1,47 +1,58 @@
-'use strict';
-
-
-
-export class ICategoryBase {
-
-    //server properties
-    name:string;
-    normalizedName:string;
-    uniqueId:string;
-    icons:Array<string>;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
 
-    //custom properties
-    filterTerms:string;
-    isDisabled:boolean;
-    filteredGroup:Array<IGroup>;
+'use strict';
 
-    constructor(category?:ICategoryBase) {
-        if (category) {
-            this.name = category.name;
-            this.normalizedName = category.normalizedName;
-            this.icons = category.icons;
-            this.filterTerms = category.filterTerms;
-            this.isDisabled = category.isDisabled;
-            this.filteredGroup = category.filteredGroup;
-        }
-    }
+export interface ICategoryBase {
+    // server properties
+    name: string;
+    displayName: string;
+    normalizedName: string;
+    uniqueId: string;
+    models: Array<string>;
+    icons: Array<string>;
+    metadataKeys: IMetadataKey[];
+
+    // custom properties
+    filterTerms: string;
+    isDisabled: boolean;
+    filteredGroup: Array<IGroup>;
 }
 
-export class IMainCategory extends ICategoryBase {
-    subcategories:Array<ISubCategory>;
-
-    constructor();
-    constructor(category?:IMainCategory) {
-        super(category);
-        if (category) {
-            this.subcategories = category.subcategories;
-        }
-    }
+export interface IMainCategory extends ICategoryBase {
+    subcategories: Array<ISubCategory>;
+    useServiceSubstitutionForNestedServices: boolean;
+    notApplicableMetadataKeys: Array<string>;
 }
 
-export class ISubCategory extends ICategoryBase {
-    groupings:Array<ICategoryBase>;
+export interface ISubCategory extends ICategoryBase {
+    groupings: Array<ICategoryBase>;
 }
 
 export interface IGroup extends ICategoryBase {
 }
+
+export interface IMetadataKey {
+    name: string;
+    displayName: string;
+    mandatory: boolean;
+    validValues: string[];
+    defaultValue: string;
+}