@@ -0,0 +1,81 @@
|
||||
# Generated by Django 5.2.16 on 2026-07-20 23:57
|
||||
|
||||
import apps.profiles.defaults
|
||||
import datetime
|
||||
import django.db.models.deletion
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SearchProfile',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('name', models.CharField(default='Primair profiel', max_length=120)),
|
||||
('is_active', models.BooleanField(default=True)),
|
||||
('locale', models.CharField(default='nl-BE', max_length=10)),
|
||||
('timezone', models.CharField(default='Europe/Brussels', max_length=64)),
|
||||
('home_postal_code', models.CharField(blank=True, max_length=12)),
|
||||
('home_municipality', models.CharField(blank=True, max_length=120)),
|
||||
('home_latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
|
||||
('home_longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
|
||||
('max_distance_km', models.PositiveIntegerField(default=45)),
|
||||
('desired_titles', models.JSONField(blank=True, default=list)),
|
||||
('excluded_titles', models.JSONField(blank=True, default=list)),
|
||||
('desired_skills', models.JSONField(blank=True, default=list)),
|
||||
('excluded_skills', models.JSONField(blank=True, default=list)),
|
||||
('allowed_employment_types', models.JSONField(blank=True, default=list)),
|
||||
('preferred_workplace', models.JSONField(blank=True, default=list)),
|
||||
('preferred_regions', models.JSONField(blank=True, default=list)),
|
||||
('excluded_regions', models.JSONField(blank=True, default=list)),
|
||||
('hard_rules', models.JSONField(blank=True, default=apps.profiles.defaults.default_hard_rules)),
|
||||
('soft_preferences', models.JSONField(blank=True, default=apps.profiles.defaults.default_soft_preferences)),
|
||||
('weights', models.JSONField(blank=True, default=apps.profiles.defaults.default_weights)),
|
||||
('recommendation_threshold', models.PositiveSmallIntegerField(default=65)),
|
||||
('top_match_threshold', models.PositiveSmallIntegerField(default=90)),
|
||||
('digest_time', models.TimeField(default=datetime.time(7, 30))),
|
||||
('quiet_hours_start', models.TimeField(default=datetime.time(22, 0))),
|
||||
('quiet_hours_end', models.TimeField(default=datetime.time(7, 0))),
|
||||
('learning_enabled', models.BooleanField(default=True)),
|
||||
('version', models.PositiveIntegerField(default=1)),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-is_active', 'name'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProfileRevision',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('version', models.PositiveIntegerField()),
|
||||
('snapshot', models.JSONField(default=dict)),
|
||||
('reason', models.CharField(blank=True, max_length=200)),
|
||||
('profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='revisions', to='profiles.searchprofile')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-version'],
|
||||
},
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name='searchprofile',
|
||||
constraint=models.UniqueConstraint(fields=('user', 'name'), name='unique_profile_name_per_user'),
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name='profilerevision',
|
||||
constraint=models.UniqueConstraint(fields=('profile', 'version'), name='unique_revision_version_per_profile'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("profiles", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="searchprofile",
|
||||
name="ai_scoring_enabled",
|
||||
field=models.BooleanField(default=False),
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("profiles", "0002_ai_scoring_enabled"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="searchprofile",
|
||||
name="learning_enabled",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
# Generated by Django 5.2.16 on 2026-07-21 00:00
|
||||
|
||||
import apps.profiles.defaults
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("profiles", "0003_learning_enabled_default_false"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="searchprofile",
|
||||
name="reminders_enabled",
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="searchprofile",
|
||||
name="top_match_reminders_enabled",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="searchprofile",
|
||||
name="follow_up_weekdays",
|
||||
field=models.JSONField(default=apps.profiles.defaults.default_follow_up_weekdays, blank=True),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user