From b833a11fb657c41755f18002aa4daca50c43ccd6 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Wed, 4 Apr 2018 19:38:28 +0200
Subject: [PATCH] FollowRequest model

---
 .../migrations/0004_followrequest.py          | 28 +++++++++++++++++++
 api/funkwhale_api/federation/models.py        | 18 ++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 api/funkwhale_api/federation/migrations/0004_followrequest.py

diff --git a/api/funkwhale_api/federation/migrations/0004_followrequest.py b/api/funkwhale_api/federation/migrations/0004_followrequest.py
new file mode 100644
index 0000000000..6ede72747f
--- /dev/null
+++ b/api/funkwhale_api/federation/migrations/0004_followrequest.py
@@ -0,0 +1,28 @@
+# Generated by Django 2.0.3 on 2018-04-04 17:11
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+import uuid
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('federation', '0003_auto_20180403_1921'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='FollowRequest',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('uuid', models.UUIDField(default=uuid.uuid4, unique=True)),
+                ('creation_date', models.DateTimeField(default=django.utils.timezone.now)),
+                ('last_modification_date', models.DateTimeField(default=django.utils.timezone.now)),
+                ('approved', models.NullBooleanField(default=None)),
+                ('actor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='emmited_follow_requests', to='federation.Actor')),
+                ('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='received_follow_requests', to='federation.Actor')),
+            ],
+        ),
+    ]
diff --git a/api/funkwhale_api/federation/models.py b/api/funkwhale_api/federation/models.py
index a228a38033..50ff9d319c 100644
--- a/api/funkwhale_api/federation/models.py
+++ b/api/funkwhale_api/federation/models.py
@@ -103,3 +103,21 @@ class Follow(models.Model):
 
     def get_federation_url(self):
         return '{}#follows/{}'.format(self.actor.url, self.uuid)
+
+
+class FollowRequest(models.Model):
+    uuid = models.UUIDField(default=uuid.uuid4, unique=True)
+    actor = models.ForeignKey(
+        Actor,
+        related_name='emmited_follow_requests',
+        on_delete=models.CASCADE,
+    )
+    target = models.ForeignKey(
+        Actor,
+        related_name='received_follow_requests',
+        on_delete=models.CASCADE,
+    )
+    creation_date = models.DateTimeField(default=timezone.now)
+    last_modification_date = models.DateTimeField(
+        default=timezone.now)
+    approved = models.NullBooleanField(default=None)
-- 
GitLab