From 76823e3ef98b59c6de7e91cb1319f99c32efd315 Mon Sep 17 00:00:00 2001
From: Vincent Simonin <vincent.simonin@ext.ec.europa.eu>
Date: Tue, 27 Jun 2023 11:56:52 +0200
Subject: [PATCH] Update HttpHeader schema

* add constraint: name, mapping_id and apply_to combinaison are unique
* value can be null and limit is 256 char now

Some Fix
---
 setup.py                                      |  2 +-
 src/netbox_rps_plugin/__init__.py             |  2 +-
 .../0003_http_header_unique_constraint.py     | 21 +++++++++++++++++++
 src/netbox_rps_plugin/models.py               |  6 ++++--
 4 files changed, 27 insertions(+), 4 deletions(-)
 create mode 100644 src/netbox_rps_plugin/migrations/0003_http_header_unique_constraint.py

diff --git a/setup.py b/setup.py
index 37801a3..2afc414 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
 
 setup(
     name='netbox-rps-plugin',
-    version='0.7.0',
+    version='0.7.1',
     description='A Netbox plugin to add RPS resources',
     install_requires=[],
     packages=find_packages('./src'),
diff --git a/src/netbox_rps_plugin/__init__.py b/src/netbox_rps_plugin/__init__.py
index 979d093..1cec540 100644
--- a/src/netbox_rps_plugin/__init__.py
+++ b/src/netbox_rps_plugin/__init__.py
@@ -5,7 +5,7 @@ class NetBoxRpsConfig(PluginConfig):
     name = 'netbox_rps_plugin'
     verbose_name = 'NetBox RPS'
     description = 'A Netbox plugin to add RPS resources'
-    version = '0.7.0'
+    version = '0.7.1'
     author = "Vincent Simonin"
     author_email = "vincent.simonin@ext.ec.europa.eu"
     base_url = 'rps'
diff --git a/src/netbox_rps_plugin/migrations/0003_http_header_unique_constraint.py b/src/netbox_rps_plugin/migrations/0003_http_header_unique_constraint.py
new file mode 100644
index 0000000..9f2a106
--- /dev/null
+++ b/src/netbox_rps_plugin/migrations/0003_http_header_unique_constraint.py
@@ -0,0 +1,21 @@
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('netbox_rps_plugin', '0002_http_header')
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='httpheader',
+            name='value',
+            field=models.CharField(max_length=256, null=True, blank=True),
+        ),
+        migrations.AddConstraint(
+            model_name='httpheader',
+            constraint=models.UniqueConstraint(fields=('mapping', 'name', 'apply_to'), name='netbox_rps_plugin_httpheader_unique_mapping_name_apply_to'),
+        ),
+    ]
diff --git a/src/netbox_rps_plugin/models.py b/src/netbox_rps_plugin/models.py
index be5a2cb..f086f88 100644
--- a/src/netbox_rps_plugin/models.py
+++ b/src/netbox_rps_plugin/models.py
@@ -85,8 +85,9 @@ class HttpHeader(NetBoxModel):
         verbose_name='Header name'
     )
     value = models.CharField(
-        max_length=120,
-        blank=False,
+        max_length=256,
+        null=True,
+        blank=True,
         verbose_name='Header value'
     )
     apply_to = models.CharField(
@@ -98,4 +99,5 @@ class HttpHeader(NetBoxModel):
     )
 
     class Meta:
+        unique_together = ['mapping', 'name', 'apply_to']
         ordering = ['name']
-- 
GitLab