10fbfc30aSopenharmony_ci/*
20fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
30fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
40fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License.
50fbfc30aSopenharmony_ci * You may obtain a copy of the License at
60fbfc30aSopenharmony_ci *
70fbfc30aSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
80fbfc30aSopenharmony_ci *
90fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
100fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
110fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and
130fbfc30aSopenharmony_ci * limitations under the License.
140fbfc30aSopenharmony_ci */
150fbfc30aSopenharmony_ci
160fbfc30aSopenharmony_ci#ifndef CALENDAR_NAPI_H
170fbfc30aSopenharmony_ci#define CALENDAR_NAPI_H
180fbfc30aSopenharmony_ci
190fbfc30aSopenharmony_ci#include "napi/native_api.h"
200fbfc30aSopenharmony_ci#include "napi/native_common.h"
210fbfc30aSopenharmony_ci#include "napi/native_node_api.h"
220fbfc30aSopenharmony_ci#include "native_calendar.h"
230fbfc30aSopenharmony_cinamespace OHOS::CalendarApi {
240fbfc30aSopenharmony_ciclass CalendarNapi {
250fbfc30aSopenharmony_cipublic:
260fbfc30aSopenharmony_ci    CalendarNapi() = default;
270fbfc30aSopenharmony_ci    ~CalendarNapi() = default;
280fbfc30aSopenharmony_ci    static napi_value Init(napi_env env, napi_value exports);
290fbfc30aSopenharmony_ci    static napi_value Constructor(napi_env env);
300fbfc30aSopenharmony_ci
310fbfc30aSopenharmony_ci    static napi_value New(napi_env env, napi_callback_info info);
320fbfc30aSopenharmony_ci    static napi_status ToJson(napi_env env, napi_value inner, CalendarNapi*& out);
330fbfc30aSopenharmony_ci
340fbfc30aSopenharmony_ci    void SetNative(std::shared_ptr<Native::Calendar>& calendar); // todo fix
350fbfc30aSopenharmony_ci    std::shared_ptr<Native::Calendar>& GetNative();
360fbfc30aSopenharmony_ci
370fbfc30aSopenharmony_ci    static napi_value AddEvent(napi_env env, napi_callback_info info);
380fbfc30aSopenharmony_ci    static napi_value AddEvents(napi_env env, napi_callback_info info);
390fbfc30aSopenharmony_ci    static napi_value DeleteEvent(napi_env env, napi_callback_info info);
400fbfc30aSopenharmony_ci    static napi_value DeleteEvents(napi_env env, napi_callback_info info);
410fbfc30aSopenharmony_ci    static napi_value UpdateEvent(napi_env env, napi_callback_info info);
420fbfc30aSopenharmony_ci    static napi_value UpdateEvents(napi_env env, napi_callback_info info);
430fbfc30aSopenharmony_ci    static napi_value GetEvents(napi_env env, napi_callback_info info);
440fbfc30aSopenharmony_ci    static napi_value GetConfig(napi_env env, napi_callback_info info);
450fbfc30aSopenharmony_ci    static napi_value SetConfig(napi_env env, napi_callback_info info);
460fbfc30aSopenharmony_ci    static napi_value GetAccount(napi_env env, napi_callback_info info);
470fbfc30aSopenharmony_ciprivate:
480fbfc30aSopenharmony_ci    std::shared_ptr<Native::Calendar> calendar_ = nullptr;
490fbfc30aSopenharmony_ci};
500fbfc30aSopenharmony_ci
510fbfc30aSopenharmony_ci
520fbfc30aSopenharmony_ci}  // namespace OHOS::CalendarApi
530fbfc30aSopenharmony_ci#endif  //  CALENDAR_NAPI_H
54