bemade-addons/unifi_integration/doc/model_relations.md
2025-03-26 08:46:03 -04:00

317 lines
8 KiB
Markdown

# Relations entre les modèles du module d'intégration UniFi
Ce document présente visuellement les relations entre les différents modèles du module d'intégration UniFi.
## Diagramme de relations principal
```
+-------------------+
| |
| udm.site |<-------------------+
| | |
+--------+----------+ |
| |
| |
v |
+--------+---------+ +---------------+--------------+
| | | |
| udm.auth.session | | udm.site.import.wizard |
| | | (TransientModel) |
+------------------+ | |
+---------------+--------------+
|
|
v
+---------------+--------------+
| |
| udm.site.discovery |
| (TransientModel) |
| |
+------------------------------+
```
## Hiérarchie des modèles avec le site comme entité centrale
```
+-------------------+
| |
| udm.site |
| |
+--+------+------+--+
| | |
| | |
| | |
| | |
v v v
+---------------+ +------------------+ +----------------+ +----------------+
| | | | | | | |
| udm.device | | udm.network | | udm.vlan | | udm.user |
| | | | | | | |
+---------------+ +------------------+ +----------------+ +----------------+
|
|
v
+----------+---------+
| |
| udm.firewall.rule |
| |
+--------------------+
```
## Modèles de support et leur relation avec udm.site
```
+-------------------+
| |
| udm.site |
| |
+--+------+------+--+
| | |
| | |
v v v
+--+------+ +---+----+ +---+----+
| | | | | |
| udm.api. | | udm. | | udm. |
| config | | api.log| | sync. |
| | | | | job |
+----------+ +--------+ +--------+
```
## Détail des relations entre les modèles principaux
```
+-------------------+
| udm.site |
|-------------------|
| name |
| api_type |<---+
| site_id | |
| ... | |
+-------------------+ |
^ |
| |
| |
+-------+-------+ |
| udm.network | |
|----------------| |
| site_id +------+
| name |
| subnet |
| ... |
+----------------+
^
|
|
+-------+-------+
| udm.device |
|----------------|
| site_id |
| network_id +------+
| name | |
| mac_address | |
| ... | |
+----------------+ |
^ |
| |
| |
+-------+-------+ |
| udm.user | |
|----------------| |
| site_id | |
| network_id +------+
| name |
| email |
| ... |
+----------------+
```
## Relations spécifiques à l'authentification
```
+-------------------+
| udm.site |
|-------------------|
| api_type |
| ... |
+--------+----------+
|
|
v
+--------+---------+ +---------------+
| udm.auth.session | | udm.mfa |
|------------------| |---------------|
| site_id | | site_id |
| auth_type | | mfa_type |
| token | | mfa_code |
| expiry | | ... |
| ... | | |
+------------------+ +---------------+
```
## Modèles spécifiques à chaque type d'API
### API Site Manager (distante)
```
+-------------------+
| udm.site |
|-------------------|
| api_type='site_manager' |
| api_key |
| mfa_enabled |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.device |
|------------------|
| site_id |
| cloud_device_id |
| ... |
+------------------+
+-------------------+
| udm.site |
|-------------------|
| api_type='site_manager' |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.network |
|------------------|
| site_id |
| cloud_network_id |
| ... |
+------------------+
```
### API Controller (locale)
```
+-------------------+
| udm.site |
|-------------------|
| api_type='controller' |
| host |
| port |
| username |
| password |
| controller_type |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.device |
|------------------|
| site_id |
| device_id |
| adopted |
| ... |
+------------------+
+-------------------+
| udm.site |
|-------------------|
| api_type='controller' |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.network |
|------------------|
| site_id |
| network_id |
| ... |
+------------------+
```
## Flux de données pour la synchronisation
```
+-------------------+
| udm.site |
|-------------------|
| api_type |
| last_sync |
| sync_interval |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.sync.job |
|------------------|
| site_id |
| start_time |
| end_time |
| state |
| sync_type |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.api.log |
|------------------|
| site_id |
| sync_job_id |
| endpoint |
| method |
| status_code |
| ... |
+------------------+
```
## Assistant d'importation de site
```
+-------------------+
| udm.site.import. |
| wizard |
|-------------------|
| state |
| api_type |
| ... |
+--------+----------+
|
|
v
+--------+---------+
| udm.site.discovery|
|------------------|
| wizard_id |
| site_name |
| site_id |
| selected |
| ... |
+------------------+
|
|
v
+--------+---------+
| udm.site |
|------------------|
| (Créé par |
| l'assistant) |
+------------------+
```
## Légende
- Les flèches indiquent les relations entre les modèles
- Les relations Many2one sont représentées par des flèches simples
- Les relations One2many sont implicites dans la direction opposée aux flèches Many2one
- Les modèles TransientModel sont utilisés pour les assistants et ne sont pas persistants
Cette représentation visuelle montre comment les différents modèles sont liés entre eux, avec le modèle `udm.site` comme entité centrale autour de laquelle s'articulent tous les autres modèles.