---
# System prepended metadata

title: Current notes

---

# Current notes
```json=

db.getCollection("systemFunctions").insert([{
    "systemApplicationId": 0,
    "systemFunctionId": 591,
    "function": "/api-credentials",
    "description": "D",
    "permissionLevel": "workspace",
    "availablePermissionTypeIds": [
        2, 3
    ],
    "name": "/projects",
    "paths": []
},
{
    "systemApplicationId": 0,
    "systemFunctionId": 592,
    "function": "/api-credentials",
    "description": "D",
     parentId: 591,
    "permissionLevel": "workspace",
    "availablePermissionTypeIds": [
        2, 3
    ],
    "name": "/api-credentials",
    "paths": [
        {
            id: 'patch', path: "/api-credentials/:apiCredentialId"
        }]
},
{
    "systemApplicationId": 0,
    "systemFunctionId": 593,
    "function": "/api-credentials/access-token",
    "description": "D",
     parentId: 591,
    "permissionLevel": "workspace",
    "availablePermissionTypeIds": [
        2
    ],
    "name": "/api-credentials/access-token",
    "paths": []
}
])
```
1) Update mongo trigger for each workspace platfrom ( bacause of replace method)
2) Create a mongo trigggers for:
    3) sessions ( workspace name +, entity information)
    4) workspaces (count modules +)
3) Session duration



## Reports
- Do we want to sort session by duration ?
    -  if true => needs to be calculated
        -  active sessions ?
- By workspace name ? - problems
```json=
{
    duration: expirationDateTime - startDateTime,
    referenceValues: {
        workpsace: {
            name: ""
        }
    },
    	"entities" : [
		{
			"isInitiator" : true,
			"originalEntityIds" : [ ],
			"isMute" : false,
			"isRemoved" : false,
			"_id" : ObjectId("60eeea38d6d3ef000b4c2624"),
			"entityId" : 145258,
			"platformId" : 4,
            referenceValues: {
                platform: {
                    name: ""
                },
                entity: {
                    firstName: "",
                    lastName: "",
                    profile: {
                        imageUrl: "",
                        color: ""
                    }
                }
            }
			"platformConnectorId" : null,
			"chatId" : null
		}
	],
}
```
## Sessions
```json=
{
    
}
```


## new collection
**collections**
```json=
{
    name: 'entities',
    filterRules: [
        {
            field: "email"
        }
    ],
    sortRules: [
    {
            field: "email",
            value: { 
            'sort.email': -1, 
            email: '{querySortValue}'  }
        },
    {
            field: "firstName",
            value: { 'sort.firstName': -1, firstName:'{querySortValue}'  }
        }
        {
            field: "lastName",
            value: { 'sort.lastName': -1, lastName:'{querySortValue}'  }
        }
    ]
}
```

## rake live chat "type"
{
    rakeLiveChatConfigId: 1,
    scope: { type: 'project', ids: [7,8]},
   // type: "Workspace | Project" -- remove it
}


## Rake live chat config (isDefault)
   - update system config
```json=
 "scope": {
            "type": "system",
            "ids": []
        },
"isDefault": true
```
  - update all configs
 ```json=
 
 ```
  - add/delete index
 ```json=
 db.rakeLiveChat_Configurations.dropIndex("type_1")
 
 ```


## Script for updating entities collection with sore rules
```json=
 db.entities.updateMany(
    { },
    [
        {
            $set: {
                'sortPriority.lastName': {
                    $cond: [
                        {
                            $regexMatch: {
                                "input": "$lastName",
                                "regex": /.+/
                            }
                        },
                        1,
                        0
                    ]
                }
            }
        },
         {
            $set: {
                'sortPriority.firstName': {
                    $cond: [
                        {
                            $regexMatch: {
                                "input": "$firstName",
                                "regex": /.+/
                            }
                        },
                        1,
                        0
                    ]
                }
            }
        },
         {
            $set: {
                'sortPriority.email': {
                    $cond: [
                        {
                            $regexMatch: {
                                "input": "$email",
                                "regex": /.+/
                            }
                        },
                        1,
                        0
                    ]
                }
            }
        }
    ]
);
```

### draft
```json=

 let indexes = db.entities.aggregate([ { $indexStats: { } } ]).toArray()
 const combinations = [];
 for(let item of indexes){
     combinations.push(Object.keys(item.key))
 }
 console.log(combinations)
 
 if(combinations.find(item => JSON.stringify(item) == JSON.stringify(['firstName']))){
     console.log(true)
 }
 
```

# To dic/.
https://chatbots-studio.atlassian.net/browse/W5GOL-3341

