labfy-investigation/include/models/investigation_record.h
2026-07-16 12:41:34 +02:00

92 lines
2.3 KiB
C

/******************************************************************************
* @file investigation_record.h
* @brief Modèle représentant les informations persistées d'une enquête.
******************************************************************************/
#ifndef LABFY_INVESTIGATION_INVESTIGATION_RECORD_H
#define LABFY_INVESTIGATION_INVESTIGATION_RECORD_H
/**
* @brief Modèle opaque représentant une ligne de la table investigation.
*/
typedef struct InvestigationRecord InvestigationRecord;
/**
* @brief Crée un modèle représentant une enquête persistée.
*
* Toutes les chaînes sont copiées par le modèle.
*
* @param id Identifiant UUID de l'enquête.
* @param name Nom de l'enquête.
* @param root_path Chemin racine de l'enquête.
* @param created_at Date de création.
* @param updated_at Date de dernière modification.
*
* @return Un nouveau modèle, ou NULL si les données sont invalides
* ou si une allocation échoue.
*/
InvestigationRecord *investigation_record_new(
const char *id,
const char *name,
const char *root_path,
const char *created_at,
const char *updated_at
);
/**
* @brief Libère un modèle InvestigationRecord.
*
* Cette fonction accepte NULL.
*
* @param record Modèle à libérer.
*/
void investigation_record_free(
InvestigationRecord *record
);
/**
* @brief Retourne l'identifiant de l'enquête.
*
* @return Identifiant appartenant au modèle, ou NULL.
*/
const char *investigation_record_get_id(
const InvestigationRecord *record
);
/**
* @brief Retourne le nom de l'enquête.
*
* @return Nom appartenant au modèle, ou NULL.
*/
const char *investigation_record_get_name(
const InvestigationRecord *record
);
/**
* @brief Retourne le chemin racine de l'enquête.
*
* @return Chemin appartenant au modèle, ou NULL.
*/
const char *investigation_record_get_root_path(
const InvestigationRecord *record
);
/**
* @brief Retourne la date de création.
*
* @return Date appartenant au modèle, ou NULL.
*/
const char *investigation_record_get_created_at(
const InvestigationRecord *record
);
/**
* @brief Retourne la date de dernière modification.
*
* @return Date appartenant au modèle, ou NULL.
*/
const char *investigation_record_get_updated_at(
const InvestigationRecord *record
);
#endif