Hi,
I am trying to model the following in ember-data and could do with some advice on how to proceed.
Conceptually, I have a listing which is created by a user and has various other fields e.g. dateCreated. Each listing has a specific product and each product will have a specific (and quite different) set of fields.
I am more used to working with languages which have algebraic data types and would typically model product as a sum type / tagged union e.g. (in Haskell)
data Product = ProductA { foo :: String, bar :: Int}
| ProductB { baz :: Int}
| ProductC { qux :: String }
The listing type would then have a product field with type Product.
I understand that the relationship between listing and product can be modeled with belongsTo but do not know how to represent the fact the a product is always one of 3 distinct types of product.
If I treat a product as an untyped object don’t I lose the benefit of ember-data managing (de)serialization for me?
Can anyone advise on how to handle this in ember-data?
(Feel free to ignore the Haskell-y stuff if this is confusing the issue!)
Many thanks,
Michael