# Domain Model ## Entitਨ principali ### Object Rappresenta qualsiasi entitਨ mappabile. Campi iniziali: - `id` - `name` - `slug` - `type` (`site`, `area`, `rack`, `physical_host`, `vm`, `lxc`, `app`, `switch`, `firewall`, `router`, `ap`, `camera`, `storage`, `other`) - `status` - `vendor` - `model` - `serial` - `os_name` - `os_version` - `notes` ### ObjectRelation Relazione tra due oggetti. Campi iniziali: - `id` - `source_object_id` - `target_object_id` - `relation_type` (`contains`, `hosts`, `connected_to`, `depends_on`, `managed_by`, `runs`) - `confidence` - `source_type` (`manual`, `nmap`, `snmp`, `lldp`, `arp`, `api`) ### NetworkInterface Interfaccia di rete collegata a un oggetto. Campi iniziali: - `id` - `object_id` - `name` - `mac_address` - `mtu` - `speed` - `admin_state` - `oper_state` - `description` ### IPAddress Indirizzo IP associato a un oggetto o a un'interfaccia. Campi iniziali: - `id` - `address` - `version` - `prefix_length` - `hostname` - `dns_name` - `status` - `object_id` - `interface_id` - `is_primary` - `source_type` ### DiscoveryJob Esecuzione di un task di discovery. Campi iniziali: - `id` - `job_type` - `scope` - `status` - `started_at` - `finished_at` - `requested_by` - `parameters_json` - `result_summary` ### Evidence Dato grezzo o semi-normalizzato raccolto da una sorgente. Campi iniziali: - `id` - `source_type` - `object_hint` - `payload_json` - `observed_at` - `fingerprint` ## Nota di progettazione Separare oggetti, relazioni e evidenze consente di distinguere ciò che il sistema ha osservato da ciò che il sistema ha consolidato nel modello finale.