import BaseEntity from '../../common/entities/BaseEntity'; import ValidableInterface from '../../common/interfaces/ValidableInterface'; import JourneyVehicle from '../../JourneyVehicle/entity/JourneyVehicle'; import Route from '../../Route/entity/Route'; import JourneyDirection from '../../common/enums/JourneyDirection'; import User from '../../User/entity/User'; import PaymentMethod from '../enums/PaymentMethods'; import PaymentStatus from '../enums/PaymentStatus'; import PromoCode from '../../PromoCode/entity/PromoCode'; import Customer from '../../Customer/entity/Customer'; export default class Payment extends BaseEntity implements ValidableInterface { private _customer: Customer; private _amount_paid: number; private _original_amount: number; private _payment_method: PaymentMethod; private _payment_status: PaymentStatus; private _charge_id: string; private _authorization_limit_date: string; private _promo_code: PromoCode; get customer(): Customer { return this._customer; } set customer(value: Customer) { this._customer = value; } get amount_paid(): number { return this._amount_paid; } set amount_paid(value: number) { this._amount_paid = value; } get original_amount(): number { return this._original_amount; } set original_amount(value: number) { this._original_amount = value; } get payment_method(): PaymentMethod { return this._payment_method; } set payment_method(value: PaymentMethod) { this._payment_method = value; } get payment_status(): PaymentStatus { return this._payment_status; } set payment_status(value: PaymentStatus) { this._payment_status = value; } get charge_id(): string { return this._charge_id; } set charge_id(value: string) { this._charge_id = value; } get authorization_limit_date(): string { return this._authorization_limit_date; } set authorization_limit_date(value: string) { this._authorization_limit_date = value; } get promo_code(): PromoCode { return this._promo_code; } set promo_code(value: PromoCode) { this._promo_code = value; } isValid() { return this.invalidFields().length === 0; } invalidFields(prefix: string = '') { let fields = []; return fields; } }