File indexing completed on 2025-02-02 05:02:29

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef IMPORTEXPORT_H
0008 #define IMPORTEXPORT_H
0009 
0010 class DocumentManager;
0011 class FavoriteLocationModel;
0012 class HealthCertificateManager;
0013 class LiveDataManager;
0014 class PassManager;
0015 class PkPassManager;
0016 class ReservationManager;
0017 class TransferManager;
0018 
0019 namespace KItinerary {
0020 class File;
0021 }
0022 
0023 class QString;
0024 
0025 /** Data export handling. */
0026 class Exporter
0027 {
0028 public:
0029     explicit Exporter(KItinerary::File *file);
0030 
0031     void exportReservations(const ReservationManager *resMgr);
0032     void exportReservationBatch(const ReservationManager *resMgr, const QString &batchId);
0033     void exportPasses(const PkPassManager *pkPassMgr);
0034     void exportPkPass(const PkPassManager *pkPassMgr, const QString &passId);
0035     void exportDocuments(const DocumentManager *docMgr);
0036     void exportDocument(const DocumentManager *docMgr, const QString &docId);
0037     void exportTransfers(const ReservationManager *resMgr, const TransferManager *transferMgr);
0038     void exportTransfersForBatch(const QString &batchId, const TransferManager *transferMgr);
0039     void exportFavoriteLocations(const FavoriteLocationModel *favLocModel);
0040     void exportPasses(const PassManager *passMgr);
0041     void exportHealthCertificates(const HealthCertificateManager *healthCertMgr);
0042     void exportLiveData();
0043     void exportLiveDataForBatch(const QString &batchId);
0044     void exportSettings();
0045 
0046 private:
0047     KItinerary::File *m_file;
0048 };
0049 
0050 /** Data import handling. */
0051 class Importer
0052 {
0053 public:
0054     explicit Importer(const KItinerary::File *file);
0055 
0056     int importReservations(ReservationManager *resMgr);
0057     int importPasses(PkPassManager *pkPassMgr);
0058     int importDocuments(DocumentManager *docMgr);
0059     int importTransfers(const ReservationManager *resMgr, TransferManager *transferMgr);
0060     int importFavoriteLocations(FavoriteLocationModel *favLocModel);
0061     int importPasses(PassManager *passMgr);
0062     int importHealthCertificates(HealthCertificateManager *healthCertMgr);
0063     int importLiveData(LiveDataManager *liveDataMgr);
0064     int importSettings();
0065 
0066 private:
0067     const KItinerary::File *m_file;
0068 };
0069 
0070 #endif // IMPORTEXPORT_H