16e80583aSopenharmony_ci/**
26e80583aSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
36e80583aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
46e80583aSopenharmony_ci * you may not use this file except in compliance with the License.
56e80583aSopenharmony_ci * You may obtain a copy of the License at
66e80583aSopenharmony_ci *
76e80583aSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
86e80583aSopenharmony_ci *
96e80583aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
106e80583aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
116e80583aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
126e80583aSopenharmony_ci * See the License for the specific language governing permissions and
136e80583aSopenharmony_ci * limitations under the License.
146e80583aSopenharmony_ci */
156e80583aSopenharmony_ci
166e80583aSopenharmony_ciimport { Log } from '../utils/Log';
176e80583aSopenharmony_ciimport { amsMissionManager }from '../manager/AmsMissionManager';
186e80583aSopenharmony_ci
196e80583aSopenharmony_ciconst TAG = 'RecentMissionsModel';
206e80583aSopenharmony_ci
216e80583aSopenharmony_ci/**
226e80583aSopenharmony_ci * Recent missions data model.
236e80583aSopenharmony_ci */
246e80583aSopenharmony_ciexport class RecentMissionsModel {
256e80583aSopenharmony_ci
266e80583aSopenharmony_ci  private constructor() {
276e80583aSopenharmony_ci  }
286e80583aSopenharmony_ci
296e80583aSopenharmony_ci  /**
306e80583aSopenharmony_ci   * Return an instance of RecentMissionsModel.
316e80583aSopenharmony_ci   *
326e80583aSopenharmony_ci   * @return {object} the model.
336e80583aSopenharmony_ci   */
346e80583aSopenharmony_ci  static getInstance(): RecentMissionsModel {
356e80583aSopenharmony_ci    if (globalThis.RecentMissionsModelInstance == null) {
366e80583aSopenharmony_ci      globalThis.RecentMissionsModelInstance = new RecentMissionsModel();
376e80583aSopenharmony_ci    }
386e80583aSopenharmony_ci    return globalThis.RecentMissionsModelInstance;
396e80583aSopenharmony_ci  }
406e80583aSopenharmony_ci
416e80583aSopenharmony_ci  /**
426e80583aSopenharmony_ci   * Get recent missions list.
436e80583aSopenharmony_ci   *
446e80583aSopenharmony_ci   * @return {Array} the missions list.
456e80583aSopenharmony_ci   */
466e80583aSopenharmony_ci  async getRecentMissionsList() {
476e80583aSopenharmony_ci    Log.showInfo(TAG, 'getRecentMissionsList start');
486e80583aSopenharmony_ci    const recentMissionsList = await amsMissionManager.getRecentMissionsList();
496e80583aSopenharmony_ci    Log.showInfo(TAG, `getRecentMissionsList length: ${recentMissionsList.length}`);
506e80583aSopenharmony_ci    return recentMissionsList;
516e80583aSopenharmony_ci  }
526e80583aSopenharmony_ci}