107 lines
2.3 KiB
TypeScript
107 lines
2.3 KiB
TypeScript
import {GetProductOfferComposer, IFurnitureData} from "@nitro/renderer";
|
|
|
|
import {GetProductDataForLocalization, SendMessageComposer} from "..";
|
|
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
|
|
) as IProduct;
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|