#pragma once // STUB-HEADER: Diese Datei wird normalerweise von DDS/RTI Codegen generiert // Für die Migration mit BUILD_RTI=OFF erstellen wir minimale Implementierungen #include "flm_enums.hpp" #include #include #include #include #include #include #include namespace FileManagement { // Forward declarations class Folder; class FileContent; /** * @brief Folder class - Stub für DDS-generierten Code * * Diese Klasse wird normalerweise von DDS aus flm_service.xml generiert. * Für BUILD_RTI=OFF verwenden wir diese minimale Implementierung. */ class Folder { public: Folder() : m_id(0), m_parentId(0), m_mainFolder(MainFolder::None), m_operatorId(0) {} // Getter int32_t id() const { return m_id; } std::string name() const { return m_name.toStdString(); } int32_t parentId() const { return m_parentId; } std::vector path() const { return m_path; } QDateTime created() const { return m_created; } QDateTime modified() const { return m_modified; } MainFolder mainFolder() const { return m_mainFolder; } int32_t operatorId() const { return m_operatorId; } bool isHidden() const { return m_hidden; } bool isEditable() const { return m_editable; } bool isDeleted() const { return m_deleted; } // Setter void setId(int32_t id) { m_id = id; } void setName(const QString& name) { m_name = name; } void setName(const std::string& name) { m_name = QString::fromStdString(name); } void setParentId(int32_t parentId) { m_parentId = parentId; } void setPath(const std::vector& path) { m_path = path; } void setCreated(const QDateTime& created) { m_created = created; } void setModified(const QDateTime& modified) { m_modified = modified; } void setMainFolder(MainFolder mainFolder) { m_mainFolder = mainFolder; } void setOperatorId(int32_t operatorId) { m_operatorId = operatorId; } void setHidden(bool hidden) { m_hidden = hidden; } void setEditable(bool editable) { m_editable = editable; } void setDeleted(bool deleted) { m_deleted = deleted; } // Utility bool isValid() const { return m_id > 0; } private: int32_t m_id; QString m_name; int32_t m_parentId; std::vector m_path; QDateTime m_created; QDateTime m_modified; MainFolder m_mainFolder; int32_t m_operatorId; bool m_hidden = false; bool m_editable = true; bool m_deleted = false; }; /** * @brief FileContent class - Stub für DDS-generierten Code * * Diese Klasse wird normalerweise von DDS aus flm_service.xml generiert. * Für BUILD_RTI=OFF verwenden wir diese minimale Implementierung. */ class FileContent { public: FileContent() : m_id(0) , m_fileId(0) , m_folderId(0) , m_operatorId(0) , m_exerciseId(std::nullopt) , m_phaseId(std::nullopt) , m_size(0) , m_fileStatus(FileStatus::Valid) , m_fileCategory(FileCategory::Global) , m_fileType(FileType::Unknown) , m_isTemplate(false) , m_mainFolder(MainFolder::None) , m_hidden(false) , m_used(false) { } // Getter int32_t id() const { return m_id; } int32_t fileId() const { return m_fileId; } int32_t folderId() const { return m_folderId; } int32_t operatorId() const { return m_operatorId; } std::optional exerciseId() const { return m_exerciseId; } std::optional phaseId() const { return m_phaseId; } QString name() const { return m_fileName; } QString fileName() const { return m_fileName; } QString mimeType() const { return m_mimeType; } int64_t size() const { return m_size; } QByteArray content() const { return m_content; } std::string properties() const { return m_properties; } QDateTime created() const { return m_created; } QDateTime modified() const { return m_modified; } QDateTime lastModified() const { return m_modified; } FileStatus fileStatus() const { return m_fileStatus; } FileCategory fileCategory() const { return m_fileCategory; } FileType fileType() const { return m_fileType; } bool isTemplate() const { return m_isTemplate; } bool isDeleted() const { return m_fileStatus == FileStatus::Deleted; } bool isHidden() const { return m_hidden; } bool isUsedBy() const { return m_used; } std::string usedBy() const { return m_usedBy; } MainFolder mainFolder() const { return m_mainFolder; } // Setter void setId(int32_t id) { m_id = id; } void setFileId(int32_t fileId) { m_fileId = fileId; } void setFolderId(int32_t folderId) { m_folderId = folderId; } void setOperatorId(int32_t operatorId) { m_operatorId = operatorId; } void setExerciseId(std::optional exerciseId) { m_exerciseId = exerciseId; } void setPhaseId(std::optional phaseId) { m_phaseId = phaseId; } void setName(const QString& fileName) { m_fileName = fileName; } void setFileName(const QString& fileName) { m_fileName = fileName; } void setMimeType(const QString& mimeType) { m_mimeType = mimeType; } void setSize(int64_t size) { m_size = size; } void setContent(const QByteArray& content) { m_content = content; } void setProperties(const std::string& properties) { m_properties = properties; } void setCreated(const QDateTime& created) { m_created = created; } void setModified(const QDateTime& modified) { m_modified = modified; } void setFileStatus(FileStatus status) { m_fileStatus = status; } void setFileCategory(FileCategory category) { m_fileCategory = category; } void setFileType(FileType type) { m_fileType = type; } void setTemplate(bool isTemplate) { m_isTemplate = isTemplate; } void setHidden(bool hidden) { m_hidden = hidden; } void setUsedBy(bool used) { m_used = used; } void setUsedBy(const std::string& usedBy) { m_usedBy = usedBy; m_used = !usedBy.empty(); } void setMainFolder(MainFolder mainFolder) { m_mainFolder = mainFolder; } // Utility bool isValid() const { return m_id > 0; } private: int32_t m_id; int32_t m_fileId; int32_t m_folderId; int32_t m_operatorId; std::optional m_exerciseId; std::optional m_phaseId; QString m_fileName; QString m_mimeType; int64_t m_size; QByteArray m_content; std::string m_properties; QDateTime m_created; QDateTime m_modified; FileStatus m_fileStatus; FileCategory m_fileCategory; FileType m_fileType; bool m_isTemplate; MainFolder m_mainFolder; bool m_hidden; bool m_used; std::string m_usedBy; }; } // namespace FileManagement