Index: .idea/sqldialects.xml
===================================================================
--- .idea/sqldialects.xml	(revision ec24aa9f7e2281863ffa18dc0e916cbd941c68aa)
+++ .idea/sqldialects.xml	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
@@ -11,4 +11,5 @@
     <file url="file://$PROJECT_DIR$/music/triggers/prevent_artist_deletion.sql" dialect="PostgreSQL" />
     <file url="file://$PROJECT_DIR$/music/triggers/prevent_genre_deletion.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/music/triggers/prevent_price_deletion.sql" dialect="PostgreSQL" />
     <file url="file://$PROJECT_DIR$/music/triggers/update_invoice_total_after_delete.sql" dialect="PostgreSQL" />
     <file url="file://$PROJECT_DIR$/music/triggers/update_invoice_total_after_insert.sql" dialect="PostgreSQL" />
Index: music/migrations/0008_remove_track_unit_price_album_deleted_at_and_more.py
===================================================================
--- music/migrations/0008_remove_track_unit_price_album_deleted_at_and_more.py	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
+++ music/migrations/0008_remove_track_unit_price_album_deleted_at_and_more.py	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
@@ -0,0 +1,57 @@
+# Generated by Django 5.1.3 on 2025-06-11 15:23
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("music", "0007_alter_price_options"),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name="track",
+            name="unit_price",
+        ),
+        migrations.AddField(
+            model_name="album",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="artist",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="customer",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="employee",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="genre",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="mediatype",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="playlist",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+        migrations.AddField(
+            model_name="track",
+            name="deleted_at",
+            field=models.DateTimeField(blank=True, null=True),
+        ),
+    ]
Index: music/migrations/0009_personalinfo_remove_customer_address_and_more.py
===================================================================
--- music/migrations/0009_personalinfo_remove_customer_address_and_more.py	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
+++ music/migrations/0009_personalinfo_remove_customer_address_and_more.py	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
@@ -0,0 +1,101 @@
+# Generated by Django 5.1.3 on 2025-06-11 15:28
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("music", "0008_remove_track_unit_price_album_deleted_at_and_more"),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name="PersonalInfo",
+            fields=[
+                (
+                    "id",
+                    models.BigAutoField(
+                        auto_created=True,
+                        primary_key=True,
+                        serialize=False,
+                        verbose_name="ID",
+                    ),
+                ),
+                ("address", models.CharField(max_length=255)),
+                ("city", models.CharField(max_length=100)),
+                ("state", models.CharField(blank=True, max_length=100, null=True)),
+                ("country", models.CharField(max_length=100)),
+                ("postal_code", models.CharField(blank=True, max_length=20, null=True)),
+                ("phone", models.CharField(blank=True, max_length=20, null=True)),
+            ],
+            options={
+                "db_table": "personalinfo",
+                "managed": False,
+            },
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="address",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="city",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="country",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="email",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="fax",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="phone",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="postal_code",
+        ),
+        migrations.RemoveField(
+            model_name="customer",
+            name="state",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="address",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="city",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="country",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="email",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="fax",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="phone",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="postal_code",
+        ),
+        migrations.RemoveField(
+            model_name="employee",
+            name="state",
+        ),
+    ]
Index: music/models.py
===================================================================
--- music/models.py	(revision ec24aa9f7e2281863ffa18dc0e916cbd941c68aa)
+++ music/models.py	(revision d93daa3c511c854d21cdf95d892c5aa478a6bfa4)
@@ -5,4 +5,5 @@
     artist_id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=120, blank=True, null=True)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -17,4 +18,5 @@
     title = models.CharField(max_length=160)
     artist = models.ForeignKey(Artist, on_delete=models.CASCADE, db_column='artist_id')
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -33,12 +35,5 @@
     birth_date = models.DateTimeField(blank=True, null=True)
     hire_date = models.DateTimeField(blank=True, null=True)
-    address = models.CharField(max_length=70, blank=True, null=True)
-    city = models.CharField(max_length=40, blank=True, null=True)
-    state = models.CharField(max_length=40, blank=True, null=True)
-    country = models.CharField(max_length=40, blank=True, null=True)
-    postal_code = models.CharField(max_length=10, blank=True, null=True)
-    phone = models.CharField(max_length=24, blank=True, null=True)
-    fax = models.CharField(max_length=24, blank=True, null=True)
-    email = models.CharField(max_length=60, blank=True, null=True)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -54,13 +49,7 @@
     last_name = models.CharField(max_length=20)
     company = models.CharField(max_length=80, blank=True, null=True)
-    address = models.CharField(max_length=70, blank=True, null=True)
-    city = models.CharField(max_length=40, blank=True, null=True)
-    state = models.CharField(max_length=40, blank=True, null=True)
-    country = models.CharField(max_length=40, blank=True, null=True)
-    postal_code = models.CharField(max_length=10, blank=True, null=True)
-    phone = models.CharField(max_length=24, blank=True, null=True)
-    fax = models.CharField(max_length=24, blank=True, null=True)
-    email = models.CharField(max_length=60)
-    support_rep = models.ForeignKey(Employee, on_delete=models.SET_NULL, blank=True, null=True, db_column='support_rep_id')
+    support_rep = models.ForeignKey(Employee, on_delete=models.SET_NULL, blank=True, null=True,
+                                    db_column='support_rep_id')
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -74,4 +63,5 @@
     genre_id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=120, blank=True, null=True)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -85,4 +75,5 @@
     media_type_id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=120, blank=True, null=True)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -102,5 +93,5 @@
     milliseconds = models.IntegerField()
     bytes = models.IntegerField(blank=True, null=True)
-    unit_price = models.DecimalField(max_digits=10, decimal_places=2)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -121,4 +112,5 @@
     billing_postal_code = models.CharField(max_length=10, blank=True, null=True)
     total = models.DecimalField(max_digits=10, decimal_places=2)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -134,6 +126,6 @@
     invoice = models.ForeignKey(Invoice, on_delete=models.CASCADE, db_column='invoice_id')
     track = models.ForeignKey(Track, on_delete=models.CASCADE, db_column='track_id')
-    unit_price = models.DecimalField(max_digits=10, decimal_places=2)
     quantity = models.IntegerField()
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     class Meta:
@@ -145,4 +137,5 @@
     playlist_id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=120, blank=True, null=True)
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     def __str__(self):
@@ -157,4 +150,5 @@
     playlist = models.ForeignKey(Playlist, on_delete=models.CASCADE, db_column='playlist_id')
     track = models.ForeignKey(Track, on_delete=models.CASCADE, db_column='track_id')
+    deleted_at = models.DateTimeField(null=True, blank=True)
 
     class Meta:
@@ -174,4 +168,6 @@
     total_spent = models.DecimalField(max_digits=10, decimal_places=2)
     invoice_count = models.IntegerField()
+    deleted_at = models.DateTimeField(null=True, blank=True)
+
     class Meta:
         db_table = 'deleted_customer_log'
@@ -180,4 +176,5 @@
     def __str__(self):
         return f"{self.first_name} {self.last_name} - Deleted on {self.deleted_at} - Total Spent: ${self.total_spent} from {self.invoice_count} invoices"
+
 
 class Price(models.Model):
@@ -193,2 +190,18 @@
     def __str__(self):
         return f"{self.track_id} - {self.value} - {self.date}"
+
+
+class PersonalInfo(models.Model):
+    customer = models.OneToOneField(Customer, on_delete=models.CASCADE, related_name='personalinfo')
+    address = models.CharField(max_length=255)
+    city = models.CharField(max_length=100)
+    state = models.CharField(max_length=100, blank=True, null=True)
+    country = models.CharField(max_length=100)
+    postal_code = models.CharField(max_length=20, blank=True, null=True)
+    phone = models.CharField(max_length=20, blank=True, null=True)
+
+    class Meta:
+        managed = False
+        db_table = 'personalinfo'
+    def __str__(self):
+        return f"Personal info for {self.customer.first_name} {self.customer.last_name}"
