/
VirusVK
/
ServerIT
Обзор
Документация
Войти
/
VirusVK
/
ServerIT
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
armdb/include/models.h
79 строк
2 KB
VirusVK
upload files
13 дек 2025, 14:28
13 дек 2025, 14:28
a626524
Код
Авторство
О чём код?
#ifndef MODELS_H #define MODELS_H #include "db_types.h" /* Диск в АРМ */ typedef struct { char serial[64]; char model[128]; uint64_t size_gb; char interface[32]; } Disk; /* АРМ (Автоматизированное рабочее место) */ typedef struct { ObjectID id; char inventory_number[32]; char name[128]; char type[64]; ObjectID responsible; // ссылка на пользователя char network_name[64]; char ip_address[46]; char location[256]; Disk disks[2]; // два диска char notes[512]; Timestamp created_at; Timestamp updated_at; bool is_deleted; } ArmRecord; /* Пользователь */ typedef struct { ObjectID id; char username[64]; char full_name[256]; ObjectID department_id; // подразделение char phone[32]; ObjectID assigned_arms[MAX_ARRAY_SIZE]; // привязанные АРМ uint8_t assigned_count; char notes[512]; Timestamp created_at; Timestamp updated_at; bool is_deleted; } UserRecord; /* Подразделение */ typedef struct { ObjectID id; char name[128]; char notes[512]; Timestamp created_at; bool is_deleted; } DepartmentRecord; /* Запись в журнале изменений */ typedef struct { ObjectID id; ObjectType object_type; ObjectID object_id; OperationType operation; ObjectID user_id; // кто выполнил Timestamp timestamp; char changes_json[1024]; // JSON с изменениями char comment[512]; } AuditRecord; /* Функции для работы с записями */ size_t arm_record_size(void); size_t user_record_size(void); size_t department_record_size(void); size_t audit_record_size(void); /* Создание новых ID */ ObjectID create_arm_id(uint64_t counter); ObjectID create_user_id(uint64_t counter); ObjectID create_department_id(uint64_t counter); ObjectID create_audit_id(uint64_t counter); #endif