82 lines
4.4 KiB
Python
82 lines
4.4 KiB
Python
# 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'),
|
|
),
|
|
]
|