40 lines
3.1 KiB
Python
40 lines
3.1 KiB
Python
# Generated by Django 5.2.11 on 2026-02-15 02:38
|
|
|
|
import uuid
|
|
|
|
import django.db.models.deletion
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('core', '0021_alter_patternmitigationcorrection_clarification_and_more'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='PatternMitigationAutoSettings',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Stable identifier for this automation settings row.', primary_key=True, serialize=False)),
|
|
('enabled', models.BooleanField(default=False, help_text='Master toggle for mitigation automation in this conversation.')),
|
|
('auto_pattern_recognition', models.BooleanField(default=True, help_text='Run pattern/violation recognition automatically when triggered.')),
|
|
('auto_create_mitigation', models.BooleanField(default=False, help_text='Create a baseline mitigation plan automatically when missing.')),
|
|
('auto_create_corrections', models.BooleanField(default=False, help_text='Create correction items automatically from detected violations.')),
|
|
('auto_notify_enabled', models.BooleanField(default=False, help_text='Send NTFY notifications when new violations are detected.')),
|
|
('ntfy_topic_override', models.CharField(blank=True, help_text='Optional NTFY topic override for automation notifications.', max_length=255, null=True)),
|
|
('ntfy_url_override', models.CharField(blank=True, help_text='Optional NTFY server URL override for automation notifications.', max_length=255, null=True)),
|
|
('sample_message_window', models.PositiveIntegerField(default=40, help_text='How many recent messages to include in each automation check.')),
|
|
('check_cooldown_seconds', models.PositiveIntegerField(default=300, help_text='Minimum seconds between automatic checks for this conversation.')),
|
|
('last_checked_event_ts', models.BigIntegerField(blank=True, help_text='Latest source message timestamp included in automation checks.', null=True)),
|
|
('last_run_at', models.DateTimeField(blank=True, help_text='Timestamp when automation last ran.', null=True)),
|
|
('last_result_summary', models.TextField(blank=True, default='', help_text='Human-readable summary from the last automation run.')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, help_text='Row creation timestamp.')),
|
|
('updated_at', models.DateTimeField(auto_now=True, help_text='Last update timestamp.')),
|
|
('conversation', models.OneToOneField(help_text='Conversation scope this automation config applies to.', on_delete=django.db.models.deletion.CASCADE, related_name='mitigation_auto_settings', to='core.workspaceconversation')),
|
|
('user', models.ForeignKey(help_text='Owner of this automation settings row.', on_delete=django.db.models.deletion.CASCADE, related_name='pattern_mitigation_auto_settings', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
),
|
|
]
|