UNPKG

react-native-priv-sdk

Version:

Official MyCover.ai SDK. Supercharge your product with MyCover AI Insurance offerings. Create embedded insurance offerings or full white label insurance applications that excite your customers.

219 lines (211 loc) 8.03 kB
import { ProviderLiteModel } from './ProviderLiteModel'; // Ensure correct import path import { ProductCategoriesModel } from './ProductCategoriesModel'; // Ensure correct import path import { FormFieldModel } from './FormFieldModel'; // Ensure correct import path export class ProductDetailsModel { id: string | null; name: string | null; keyBenefits: string | null; description: string | null; prefix: string | null; routeName: string | null; renewable: boolean | null; claimable: boolean | null; inspectable: boolean | null; certificateable: boolean | null; isDynamicPricing: boolean | null; price: string | null; coverPeriod: string | null; active: boolean | null; stabilityPercentageTestMode: number | null; stabilityPercentageLiveMode: number | null; howItWorks: string | null; howToClaim: string | null; businessHowItWorks: string | null; businessHowToClaim: string | null; fullBenefits: string | null; createdAt: Date | null; updatedAt: Date | null; productCategoryId: string | null; providerId: string | null; provider: ProviderLiteModel | null; productCategory: ProductCategoriesModel | null; formFields: FormFieldModel[] | null; // formFields: any; constructor(data: any) { this.id = data.id || null; this.name = data.name || null; this.keyBenefits = data.keyBenefits || null; this.description = data.description || null; this.prefix = data.prefix || null; this.routeName = data.routeName || null; this.renewable = data.renewable || null; this.claimable = data.claimable || null; this.inspectable = data.inspectable; this.certificateable = data.certificateable || null; this.isDynamicPricing = data.isDynamicPricing || null; this.price = data.price || null; this.coverPeriod = data.coverPeriod || null; this.active = data.active || null; this.stabilityPercentageTestMode = data.stabilityPercentageTestMode || null; this.stabilityPercentageLiveMode = data.stabilityPercentageLiveMode || null; this.howItWorks = data.howItWorks || null; this.howToClaim = data.howToClaim || null; this.businessHowItWorks = data.businessHowItWorks || null; this.businessHowToClaim = data.businessHowToClaim || null; this.fullBenefits = data.fullBenefits || null; this.createdAt = data.createdAt ? new Date(data.createdAt) : null; this.updatedAt = data.updatedAt ? new Date(data.updatedAt) : null; this.productCategoryId = data.productCategoryId || null; this.providerId = data.providerId || null; this.provider = data.provider; // ? ProviderLiteModel.fromJson(data.provider) // : null; this.productCategory = data.productCategory ? ProductCategoriesModel.fromJson(data.productCategory) : null; this.formFields = data.formFields; // ? data.formFields.map((field: any) => FormFieldModel.fromJson(field)) // : []; } static fromJson(json: any): ProductDetailsModel { // // log.info("JSON", json['form_fields']); // log.info(JSON.stringify(json['form_fields'], null, 2) ); // // log.info(JSON.stringify(json, null, 2) ); return new ProductDetailsModel({ id: json['id'], name: json['name'], keyBenefits: json['key_benefits'], description: json['description'], prefix: json['prefix'], routeName: json['route_name'], renewable: json['renewable'], claimable: json['claimable'], inspectable: json['inspectable'], certificateable: json['certificateable'], isDynamicPricing: json['is_dynamic_pricing'], price: json['price'], coverPeriod: json['cover_period'], active: json['active'], stabilityPercentageTestMode: json['stability_percentage_test_mode'] ? parseFloat(json['stability_percentage_test_mode']) : null, stabilityPercentageLiveMode: json['stability_percentage_live_mode'] ? parseFloat(json['stability_percentage_live_mode']) : null, howItWorks: json['how_it_works'], howToClaim: json['how_to_claim'], businessHowItWorks: json['business_how_it_works'], businessHowToClaim: json['business_how_to_claim'], fullBenefits: typeof json['full_benefits'] === 'string' ? json['full_benefits'] : null, createdAt: json['created_at'] ? new Date(json['created_at']) : null, updatedAt: json['updated_at'] ? new Date(json['updated_at']) : null, productCategoryId: json['product_category_id'], providerId: json['provider_id'], provider: json['provider'] ? // json['provider'].map((field: any) => // ProviderLiteModel.fromJson(field), // ) // : ProviderLiteModel.fromJson(json['provider']) : null, productCategory: json['productCategory'] ? ProductCategoriesModel.fromJson(json['productCategory']) : null, formFields: json['form_fields'] ? json['form_fields'].map((field: any) => FormFieldModel.fromJson(field) ) : [], }); } toJson(): any { return { id: this.id, name: this.name, key_benefits: this.keyBenefits, description: this.description, prefix: this.prefix, route_name: this.routeName, renewable: this.renewable, claimable: this.claimable, inspectable: this.inspectable, certificateable: this.certificateable, is_dynamic_pricing: this.isDynamicPricing, price: this.price, cover_period: this.coverPeriod, active: this.active, stability_percentage_test_mode: this.stabilityPercentageTestMode, stability_percentage_live_mode: this.stabilityPercentageLiveMode, how_it_works: this.howItWorks, how_to_claim: this.howToClaim, business_how_it_works: this.businessHowItWorks, business_how_to_claim: this.businessHowToClaim, full_benefits: this.fullBenefits, created_at: this.createdAt ? this.createdAt.toISOString() : null, updated_at: this.updatedAt ? this.updatedAt.toISOString() : null, product_category_id: this.productCategoryId, provider_id: this.providerId, product_category: this.productCategory ? this.productCategory.toJson() : null, // form_fields: this.formFields // ? this.formFields.map((field) => field.toJson()) // : [], }; } } // const jsonResponse = { // id: "1", // name: "Insurance Product", // key_benefits: "Comprehensive coverage", // description: "This is a description", // prefix: "INS", // route_name: "insurance", // renewable: true, // claimable: true, // inspectable: false, // certificateable: true, // is_dynamic_pricing: false, // price: "100", // cover_period: "1 year", // active: true, // stability_percentage_test_mode: "0.95", // stability_percentage_live_mode: "0.9", // how_it_works: "Details on how it works", // how_to_claim: "Details on how to claim", // business_how_it_works: "Business process", // business_how_to_claim: "Business claim process", // full_benefits: "Full benefits of the product", // created_at: "2023-09-01T00:00:00Z", // updated_at: "2023-09-01T00:00:00Z", // product_category_id: "123", // provider_id: "456", // provider: { // id: "456", // name: "Provider Name", // }, // productCategory: { // id: "123", // name: "Health", // product_count: 5, // created_at: "2023-09-01T00:00:00Z", // }, // form_fields: [ // { // id: "field1", // name: "First Name", // label: "Enter your first name", // position: 1, // }, // // More form fields // ], // }; // // Creating an instance from JSON // const productDetails = ProductDetailsModel.fromJson(jsonResponse); // console.log(productDetails); // // Converting the instance back to JSON // const json = productDetails.toJson(); // console.log(json);