nitro/apps/frontend/src/api/catalog/FurnitureOffer.ts

121 lines
2.6 KiB
TypeScript

import { GetProductOfferComposer, IFurnitureData } from '@nitrots/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;
}
}