import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared/models"; import { PropertyConfiguration, PropertyDefinition, PropertyDefinitionId } from "@omnia/fx-models"; import { PropertyIndexedType } from "../Enums"; import { EnterprisePropertiesDisplaySettings, EnterprisePropertySettings } from "./EnterprisePropertySettings"; import { MultilingualString } from "../MultilingualString"; export interface EnterprisePropertyDataType { id: GuidValue; title: string; uiOptions: EnterprisePropertyUIOptions; valuePropertyPaths: string[]; indexedType: PropertyIndexedType; omniaSearchable: boolean; spSearchable: boolean; msSearchable?: boolean; } export interface IExtendedEnterprisepropertiesPropertyDefinitionSettings extends PropertyConfiguration> { readonly propertyDefinitionId: PropertyDefinitionId; } export interface ExtendedPropertyEnterprisePropertyDefinition extends EnterprisePropertyDefinition { settings: IExtendedEnterprisepropertiesPropertyDefinitionSettings; } export interface EnterprisePropertyDefinition { id: GuidValue; internalName: string; title: MultilingualString; enterprisePropertyDataTypeId: GuidValue; settings: EnterprisePropertySettings; spSearchable: boolean; msSearchable?: boolean; builtIn: boolean; managedPropertySettings?: ManagedPropertySettings; msSearchPropertySettings?: ManagedPropertySettings; enterprisePropertyDataType: EnterprisePropertyDataType; enterprisePropertyCategoryId?: GuidValue; multilingualTitle: string; uniqueMultilingualTitle: string; deletedAt?: Date; } export interface ProvisioningTemplateEnterpriseProperty { id: GuidValue; internalName: string; allowMultipleValues?: boolean; required?: boolean; hidden?: boolean; } export interface ManagedPropertySettings { managedProperty: string; retrievableManagedProperty?: string; refinableManagedProeprty?: string; queryableManagedProperty?: string; sortableManagedProperty?: string; retrievable: boolean; refinable: boolean; queryable: boolean; sortable: boolean; } export interface EnterprisePropertyUIOptions { settingsElementName?: string; editModeElementName: string; displayModeElementName?: string; valueDefinitionElementName?: string; } export interface ExternalPropertySelectionItem { internalName: string; multilingualTitle: string; categoryId?: GuidValue; hideSquareBrackets?: boolean; } export interface Property { title: string; internalName: string; value: any; displayElement: string; contentProperty: EnterprisePropertyDefinition; settings: EnterprisePropertiesDisplaySettings; }