labfy-investigation/include/models/identity_traceability.h
2026-07-30 11:10:32 +02:00

58 lines
2.4 KiB
C

#ifndef LABFY_IDENTITY_TRACEABILITY_H
#define LABFY_IDENTITY_TRACEABILITY_H
#include <glib.h>
G_BEGIN_DECLS
typedef struct {
char *identifier, *evidence_identifier, *ocr_run_identifier;
char *status, *justification, *assessed_at;
char *previous_identifier, *technical_note, *origin;
} DocumentAuthenticityAssessment;
typedef struct {
char *identifier, *person_identifier, *evidence_identifier;
char *ocr_run_identifier, *relation_type, *factual_note;
char *observed_at, *origin;
gboolean active;
} PersonEvidenceFactualRelation;
typedef struct {
char *code, *label, *description;
gint display_order;
gboolean active, requires_justification, sensitive;
} PersonRoleVocabularyEntry;
typedef PersonRoleVocabularyEntry IdentificationStatusVocabularyEntry;
gboolean identity_traceability_authenticity_status_valid(const char *status);
gboolean identity_traceability_relation_type_valid(const char *type);
gboolean identity_traceability_identification_status_valid(const char *status);
gboolean identity_traceability_value_quality_valid(const char *quality);
gboolean identity_traceability_field_is_projectable(
const char *review_status, const char *quality,
const char *confirmation_state, const char *confirmed_value);
DocumentAuthenticityAssessment *document_authenticity_assessment_new(
const char *identifier, const char *evidence_identifier,
const char *ocr_run_identifier, const char *status,
const char *justification, const char *assessed_at,
const char *previous_identifier, const char *technical_note);
DocumentAuthenticityAssessment *document_authenticity_assessment_copy(
const DocumentAuthenticityAssessment *assessment);
void document_authenticity_assessment_free(
DocumentAuthenticityAssessment *assessment);
PersonEvidenceFactualRelation *person_evidence_factual_relation_new(
const char *identifier, const char *person_identifier,
const char *evidence_identifier, const char *ocr_run_identifier,
const char *relation_type, const char *factual_note,
const char *observed_at, gboolean active);
PersonEvidenceFactualRelation *person_evidence_factual_relation_copy(
const PersonEvidenceFactualRelation *relation);
void person_evidence_factual_relation_free(
PersonEvidenceFactualRelation *relation);
void person_role_vocabulary_entry_free(PersonRoleVocabularyEntry *entry);
void identification_status_vocabulary_entry_free(
IdentificationStatusVocabularyEntry *entry);
G_END_DECLS
#endif