42 lines
1.4 KiB
TypeScript
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);
|
|
};
|
|
}
|