import { Attr } from 'ts-framework' import { CoordinatesDTO } from './coordinates' export class ProviderPricingResponseDTO { id: string basePrice: number perMilePrice: number perMinutePrice: number cancellationPrice: number noShowPrice: number surgeMultiple: number federalTax: number stateTax: number surcharges: number updatedAt: object createdAt: object } export class UpsertProviderPricingDTO { @Attr({ type: String, optional: true }) id?: string @Attr({ type: Number, optional: true }) basePrice?: number @Attr({ type: Number, optional: true }) perMilePrice?: number @Attr({ type: Number, optional: true }) surcharges?: number @Attr({ type: Number, optional: true }) perMinutePrice?: number @Attr({ type: Number, optional: true }) surgeMultiple?: number @Attr({ type: Number, optional: true }) federalTax?: number @Attr({ type: Number, optional: true }) stateTax?: number @Attr({ type: Number, optional: true }) cancellationPrice?: number @Attr({ type: Number, optional: true }) noShowPrice?: number } export class CalculateFullPriceDTO { @Attr({ type: String }) duration: number @Attr({ type: String }) distance: number @Attr({ type: Number }) riderCount: number @Attr({ type: String }) pricingId: string @Attr({ type: String }) orgId: string @Attr({ type: String }) riderId: string } export class CalculateFullPriceGeoDTO { @Attr({ type: String }) pickup: string @Attr({ type: String }) dropoff: string @Attr({ type: Number }) riderCount: number @Attr({ type: String }) pricingId: string @Attr({ type: String }) orgId: string @Attr({ type: String }) riderId: string } export class CalculateGeoDTO { @Attr({ type: String }) pricingId: string @Attr({ type: String }) pickup: string @Attr({ type: String }) dropoff: string @Attr({ type: Number }) riderCount: number @Attr({ type: String }) riderId: string } export class CalculateCoordinatesDTO { @Attr({ type: String }) pricingId: string @Attr({ type: CoordinatesDTO }) pickup: CoordinatesDTO @Attr({ type: CoordinatesDTO }) dropoff: CoordinatesDTO @Attr({ type: Number }) riderCount: number } export class CalculateDTO { @Attr({ type: Number }) duration: number @Attr({ type: Number }) distance: number @Attr({ type: Number }) riderCount: number @Attr({ type: String }) pricingId: string } export class PaymentAPIProviderPricingResponseDTO { data: ProviderPricingResponseDTO } export class PricingResponseDTO { cost: number fare: number constructor(model: PricingResponseDTO) { this.cost = model.cost this.fare = model.fare } static of(model: PricingResponseDTO): PricingResponseDTO { return new PricingResponseDTO(model) } }