How do I create a base content type and subtypes ("bundles")? I've been trying to figure out how to create a base content type and subtypes (bundles) in Drupal 8, but haven't been able to figure it out.

For example:

Base Content Type


Base Event (fields: event name, start/end dates and times, location, etc.)


Subtypes (Bundles)


Seminar
Conference


I looked into:


ECK (Entity Construction Kit) module: didn't seem to be working 100% in Drupal 8.  Using their example, I was able to create a 'Vehicle' ECK base type and 'Car' and 'Truck' ECK subtypes, but wasn't able to define any fields for the 'Vehicle' base type that would be shared between 'Car' and 'Truck'.  Also, the types appeared under 'ECK Types' in 'Admin > Structure', so not sure if they would be usable throughout Drupal in the same way that regular Content Types are used/referenced?
Paragraphs module: doesn't seem to the right module for this


It looks as though I have to do this through code somehow, but couldn't find any clear documentation that explains step-by-step how to do this in Drupal 8.

Any help would be greatly appreciated.  Thank you.
Creating entity is quite complicated, but it will be easier if you generate a base code with Drupal console command first.

drupal generate:entity:content [options]



  Options
  
  
  --module  The Module name.
  --entity-class    The content entity class
  --entity-name The content entity name
  --base-path   The base-path for the content entity routes
  --label   The label
  --has-bundles Entity has bundles
  --is-translatable Content entity translatable
  




I post some useful tutorial / documentation here:


https://www.acquia.com/resources/webinars/creating-custom-entities-drupal-8
https://www.drupal.org/developing/api/entity