/* eslint-disable class-methods-use-this */ /* eslint-disable no-underscore-dangle */ import moment from "moment"; export default class OpenTimeUtil { constructor(startTime, endTime, week, weekWords) { this.startTime = startTime || "08:00:00"; this.endTime = endTime || "23:00:00"; this.week = week || ""; this.weekWords = weekWords || {}; if (weekWords) { this.valueKey = Object.keys(weekWords); } this.selectStart = this.getTimeSelectValue(this.startTime); this.selectEnd = this.getTimeSelectValue(this.endTime); } getStartTimeStr() { return moment(this.startTime, "HH:mm:ss").format("HH:mm"); } getEndTimeStr() { return moment(this.endTime, "HH:mm:ss").format("HH:mm"); } getWeekStr() { let _weeks = this.week.split(","); if (_weeks.length === 7) { return this.weekWords.all; } _weeks = _weeks.map(item => { return this.weekWords[item]; }); return _weeks.join(","); } getTimeStr() { return `${this.getStartTimeStr()}~${this.getEndTimeStr()}`; } getShowStr() { return `${this.getStartTimeStr()}~${this.getEndTimeStr()} ${this.getWeekStr()}`; } setStartTime(startTime) { this.startTime = moment(startTime, "HH:mm").format("HH:mm:ss"); } setEndTime(endTime) { this.endTime = moment(endTime, "HH:mm").format("HH:mm:ss"); } setWeek(week) { this.week = week || []; } getWeek() { return this.week.split(",").filter(item => { return this.valueKey ? this.valueKey.includes(item) : false; }); } setWeekWords(weekWords) { this.weekWords = weekWords || {}; } getTimeSelectValue(time) { const _time = moment(time, "HH:mm:ss").format("H:m"); return _time.split(":").map(item => { return Number(item); }); } }