import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('openclaw', '0002_add_hypertables'), ] operations = [ migrations.CreateModel( name='CronJob', fields=[ ('job_id', models.CharField(max_length=64, primary_key=True, serialize=False)), ('agent_id', models.CharField(blank=True, default='', max_length=128)), ('name', models.CharField(blank=True, default='', max_length=256)), ('session_key', models.CharField(blank=True, default='', max_length=256)), ('enabled', models.BooleanField(default=True)), ('schedule_kind', models.CharField(blank=True, default='', max_length=32)), ('schedule_expr', models.CharField(blank=True, default='', max_length=64)), ('schedule_tz', models.CharField(blank=True, default='', max_length=64)), ('payload_kind', models.CharField(blank=True, default='', max_length=32)), ('payload_message', models.TextField(blank=True, default='')), ('delivery_mode', models.CharField(blank=True, default='', max_length=32)), ('delivery_channel', models.CharField(blank=True, default='', max_length=32)), ('delivery_to', models.CharField(blank=True, default='', max_length=128)), ('state_next_run_at', models.DateTimeField(blank=True, null=True)), ('state_last_run_at', models.DateTimeField(blank=True, null=True)), ('state_last_run_status', models.CharField(blank=True, default='', max_length=16)), ('state_last_duration_ms', models.IntegerField(blank=True, null=True)), ('state_last_status', models.CharField(blank=True, default='', max_length=16)), ('state_consecutive_errors', models.IntegerField(default=0)), ('created_at_ms', models.BigIntegerField(blank=True, null=True)), ('updated_at_ms', models.BigIntegerField(blank=True, null=True)), ('raw_json', models.JSONField(blank=True, default=dict)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'cron_jobs', 'ordering': ['-updated_at'], }, ), migrations.CreateModel( name='CronJobRun', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('ts', models.BigIntegerField(help_text='event timestamp ms')), ('run_at', models.DateTimeField(blank=True, null=True)), ('action', models.CharField(blank=True, default='', max_length=32)), ('status', models.CharField(blank=True, default='', max_length=16)), ('error', models.TextField(blank=True, default='')), ('summary', models.TextField(blank=True, default='')), ('delivered', models.BooleanField(default=False)), ('delivery_status', models.CharField(blank=True, default='', max_length=32)), ('session_id', models.CharField(blank=True, default='', max_length=64)), ('session_key', models.CharField(blank=True, default='', max_length=256)), ('duration_ms', models.IntegerField(blank=True, null=True)), ('next_run_at', models.DateTimeField(blank=True, null=True)), ('model', models.CharField(blank=True, default='', max_length=128)), ('provider', models.CharField(blank=True, default='', max_length=64)), ('tokens_input', models.IntegerField(default=0)), ('tokens_output', models.IntegerField(default=0)), ('tokens_total', models.IntegerField(default=0)), ('raw_json', models.JSONField(blank=True, default=dict)), ('created_at', models.DateTimeField(auto_now_add=True)), ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='runs', to='openclaw.cronjob')), ], options={ 'db_table': 'cron_job_runs', 'ordering': ['-run_at'], }, ), migrations.AddConstraint( model_name='cronjobrun', constraint=models.UniqueConstraint(fields=('job', 'run_at', 'session_id'), name='cron_run_unique'), ), ]