Sitecore XConnect provides some default collection models to save user data like Personal Information, Email, Address, etc. the complete list you can find in an assembly named Sitecore.XConnect.Collection.Model.dll.
You need to perform the below-mentioned steps to create custom facets in Sitecore.
Create a Custom Facet Model
Register the Custom Facet Model
From Sitecore 9 onwards, creating a facet model is changed, you need to re-write your model class for it, below are the sample points you need to consider -
Create a class that inherits Sitecore.XConnect.Facet, let take an example from your code and name it Data
Add one or more properties to it and if you are going to use it in the context of the tracker ...
Custom facets are not getting registered on one of the environments, it could be because of incorrect deployment of configs files.
After creating Custom Facet Model and serializing the collection model into JSON, you'll need to deploy the JSON file to