Files
ocs-portal-web/lib/price-plan-detail/view-model/index.ts
2025-04-15 13:56:54 +07:00

42 lines
1.4 KiB
TypeScript

import { OptionProps } from "@/lib/helper/type";
import { toOptionProps } from "@/lib/helper/option";
import { useUsageEventQuery } from "../queries";
import { useCreatePricePlanMutation } from "@/lib/price-plan/mutations";
import { RatePlanPayload } from "../data/repository";
import PricePlanDetailState from "../state/price-plan-detail-state";
import RatePlanFormState from "../state/rate-plan-form-state";
import { makeAutoObservable } from "mobx";
import PriceVersionFormState from "../state/price-version-form-state";
export default class PricePlanDetailViewModel {
private pricePlanDetailState = new PricePlanDetailState();
private ratePlanFormState = new RatePlanFormState();
private priceVersionFormState = new PriceVersionFormState()
// query + mutation results
private usageEventsQuery = useUsageEventQuery();
private createRatePlanMutate = useCreatePricePlanMutation(() => {
console.log("Rate plan created");
});
constructor() {
makeAutoObservable(this)
}
getMainState = () => this.pricePlanDetailState;
getRatePlanFormState = () => this.ratePlanFormState;
getPriceVersionFormState = () => this.priceVersionFormState
getUsageEventOptions = (): OptionProps[] => {
const data: any = this.usageEventsQuery.data;
return toOptionProps(data);
};
// --- MUTATIONS ---
createRatePlan = (payload: RatePlanPayload) => {
this.createRatePlanMutate.mutate(payload);
};
}