UNPKG

srtrain

Version:
54 lines (53 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SRTPassengers = exports.SRTPassenger = void 0; const passengerType_1 = require("./constants/passengerType"); class SRTPassenger { name; typeCode; count; constructor(name, count) { this.name = name; this.typeCode = passengerType_1.SRTPassengerCode[name]; this.count = count; } static [Symbol.for('nodejs.util.inspect.custom')]() { return this.toString(); } static getTotalCount(passengers) { let count = 0; passengers.forEach((passenger) => { count += passenger.count; }); return count; } static toObject(passengers) { const passengerData = {}; passengers.forEach((passenger, index) => { passengerData[`psgTpCd${index + 1}`] = passenger.typeCode; passengerData[`psgInfoPerPrnb${index + 1}`] = passenger.count; passengerData[`locSeatAttCd${index + 1}`] = '000'; passengerData[`rqSeatAttCd${index + 1}`] = '015'; passengerData[`dirSeatAttCd${index + 1}`] = '009'; passengerData[`smkSeatAttCd${index + 1}`] = '000'; passengerData[`etcSeatAttCd${index + 1}`] = '000'; passengerData[`psrmClCd${index + 1}`] = '2'; }); return { totPrnb: `${SRTPassenger.getTotalCount(passengers)}`, psgGridcnt: `${passengers.length}`, ...passengerData, }; } toString() { return `${this.name} ${this.count}명`; } } exports.SRTPassenger = SRTPassenger; exports.SRTPassengers = { Adult: (count = 1) => new SRTPassenger('어른/청소년', count), Child: (count = 1) => new SRTPassenger('어린이', count), Senior: (count = 1) => new SRTPassenger('경로', count), Disability1To3: (count = 1) => new SRTPassenger('장애 1~3급', count), Disability4To6: (count = 1) => new SRTPassenger('장애 4~6급', count), };