mirror of
				https://github.com/lingble/twenty.git
				synced 2025-10-30 20:27:55 +00:00 
			
		
		
		
	 a799370483
			
		
	
	a799370483
	
	
	
		
			
			First step of https://github.com/twentyhq/twenty/issues/6868 Adds min.., max.. queries for DATETIME fields adds min.., max.., avg.., sum.. queries for NUMBER fields (count distinct operation and composite fields such as CURRENCY handling will be dealt with in a future PR) <img width="1422" alt="Capture d’écran 2024-11-06 à 15 48 46" src="https://github.com/user-attachments/assets/4bcdece0-ad3e-4536-9720-fe4044a36719"> --------- Co-authored-by: Charles Bochet <charles@twenty.com> Co-authored-by: Weiko <corentin@twenty.com>
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
 | |
| 
 | |
| import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
 | |
| import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
 | |
| import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
 | |
| 
 | |
| export const generateObjectMetadataMaps = (
 | |
|   objectMetadataCollection: ObjectMetadataInterface[],
 | |
| ): ObjectMetadataMaps => {
 | |
|   const objectMetadataMaps: ObjectMetadataMaps = {
 | |
|     byId: {},
 | |
|     byNameSingular: {},
 | |
|     byNamePlural: {},
 | |
|   };
 | |
| 
 | |
|   for (const objectMetadata of objectMetadataCollection) {
 | |
|     const fieldsByIdMap: FieldMetadataMap = {};
 | |
|     const fieldsByNameMap: FieldMetadataMap = {};
 | |
| 
 | |
|     for (const fieldMetadata of objectMetadata.fields) {
 | |
|       fieldsByNameMap[fieldMetadata.name] = fieldMetadata;
 | |
|       fieldsByIdMap[fieldMetadata.id] = fieldMetadata;
 | |
|     }
 | |
| 
 | |
|     const processedObjectMetadata: ObjectMetadataItemWithFieldMaps = {
 | |
|       ...objectMetadata,
 | |
|       fieldsById: fieldsByIdMap,
 | |
|       fieldsByName: fieldsByNameMap,
 | |
|     };
 | |
| 
 | |
|     objectMetadataMaps.byId[objectMetadata.id] = processedObjectMetadata;
 | |
|     objectMetadataMaps.byNameSingular[objectMetadata.nameSingular] =
 | |
|       processedObjectMetadata;
 | |
|     objectMetadataMaps.byNamePlural[objectMetadata.namePlural] =
 | |
|       processedObjectMetadata;
 | |
|   }
 | |
| 
 | |
|   return objectMetadataMaps;
 | |
| };
 |