import { Entitlement } from './Entitlement'; export class Product { name?: string; id: string; entitlements: Set; constructor({ id, name, entitlements, }: { id: string; name?: string; entitlements: Set; }) { this.id = id; this.name = name; this.entitlements = entitlements; } // Factory method to create a Product instance from a JSON object static fromJson(json: { [key: string]: any }): Product { return new Product({ id: json.id, name: json.name, entitlements: new Set( Array.isArray(json.entitlements) ? json.entitlements.map((item: any) => Entitlement.fromJson(item)) : [] ), }); } }