diff --git a/src/ptf/migrations/0089_collection_last_container_doi.py b/src/ptf/migrations/0089_collection_last_container_doi.py
new file mode 100644
index 0000000000000000000000000000000000000000..a54813502be398d4a96b9f2cbe2dd6ab1b0c148c
--- /dev/null
+++ b/src/ptf/migrations/0089_collection_last_container_doi.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.16 on 2025-02-25 09:26
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ptf', '0088_rename_new_date_accepted_resource_date_accepted_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='collection',
+            name='last_container_doi',
+            field=models.IntegerField(default=0),
+        ),
+    ]
diff --git a/src/ptf/model_helpers.py b/src/ptf/model_helpers.py
index e8f4ae932700c41847a76137272f1ebc23cd870a..32be5f286e4f540f57315fa1dcb1b3401e953917 100644
--- a/src/ptf/model_helpers.py
+++ b/src/ptf/model_helpers.py
@@ -820,6 +820,20 @@ def assign_doi(pid):
     return doi
 
 
+def assign_container_doi(pid):
+    collection = get_collection(pid)
+    if collection is None:
+        return None
+
+    last_container_doi = collection.last_container_doi + 1
+    doi = f"10.5802/{pid.lower()}.sp.{str(last_container_doi)}"
+    if pid == "CRBIOL" and last_container_doi == 175:
+        last_container_doi = 176
+    collection.last_container_doi = last_container_doi
+    collection.save()
+    return doi
+
+
 # TODO make a command ?
 
 
diff --git a/src/ptf/models.py b/src/ptf/models.py
index 1e06947c039aa030f5f0c0856a06c2b2d4eb7c4e..d67426e6f94a690c6eb7162de9af424b1e57134b 100644
--- a/src/ptf/models.py
+++ b/src/ptf/models.py
@@ -733,7 +733,6 @@ class Resource(models.Model):
             else:
                 try:
                     obj = self.datastream_set.get(mimetype=mimetype)
-                    
 
                 except DataStream.DoesNotExist:
                     # status = 404
@@ -1008,6 +1007,7 @@ class Collection(Resource):
     fyear = models.IntegerField(default=0)
     lyear = models.IntegerField(default=0)
     last_doi = models.IntegerField(default=0)
+    last_container_doi = models.IntegerField(default=0)
 
     # Ancestors means journals that existed before the creation of the Collection: time-based relation
     # (the name 'ancestor' does not fit with 'parent' as 'parent' refers to a tree structure)