FurnitureOffer.ts 2.7 Ko
Télécharger le fichier
import { GetProductOfferComposer, IFurnitureData } from '@octane/renderer';
import { GetProductDataForLocalization, SendMessageComposer } from '../octane';
import { ICatalogPage } from './ICatalogPage';
import { IProduct } from './IProduct';
import { IPurchasableOffer } from './IPurchasableOffer';
import { Offer } from './Offer';
import { Product } from './Product';
export class FurnitureOffer implements IPurchasableOffer {
private _furniData: IFurnitureData;
private _page: ICatalogPage;
private _product: IProduct;
constructor(furniData: IFurnitureData) {
this._furniData = furniData;
this._product = new Product(
this._furniData.type,
this._furniData.id,
this._furniData.customParams,
1,
GetProductDataForLocalization(this._furniData.className),
this._furniData
);
}
public activate(): void {
SendMessageComposer(new GetProductOfferComposer(this._furniData.rentOfferId > -1 ? this._furniData.rentOfferId : this._furniData.purchaseOfferId));
}
public get offerId(): number {
return this.isRentOffer ? this._furniData.rentOfferId : this._furniData.purchaseOfferId;
}
public get priceInActivityPoints(): number {
return 0;
}
public get activityPointType(): number {
return 0;
}
public get priceInCredits(): number {
return 0;
}
public get page(): ICatalogPage {
return this._page;
}
public set page(page: ICatalogPage) {
this._page = page;
}
public get priceType(): string {
return '';
}
public get product(): IProduct {
return this._product;
}
public get products(): IProduct[] {
return [this._product];
}
public get localizationId(): string {
return 'roomItem.name.' + this._furniData.id;
}
public get bundlePurchaseAllowed(): boolean {
return false;
}
public get isRentOffer(): boolean {
return this._furniData.rentOfferId > -1;
}
public get giftable(): boolean {
return false;
}
public get pricingModel(): string {
return Offer.PRICING_MODEL_FURNITURE;
}
public get clubLevel(): number {
return 0;
}
public get badgeCode(): string {
return '';
}
public get localizationName(): string {
return this._furniData?.name ?? '';
}
public get localizationDescription(): string {
return this._furniData?.description ?? '';
}
public get isLazy(): boolean {
return true;
}
public get itemIds(): string {
return String(this._furniData?.id ?? '');
}
public get haveOffer(): boolean {
return false;
}
}
