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);