Dynavera/apps/onboarding/migrations/0001_initial.py

101 lines
5.9 KiB
Python
Raw Normal View History

from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
('orgs', '0001_initial'),
('mlstore', '0001_initial'),
('users', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='OnboardingFlow',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('title', models.CharField(max_length=255)),
('description', models.TextField(blank=True, default='')),
('status', models.CharField(choices=[('draft', 'Draft'), ('published', 'Published'), ('archived', 'Archived')], default='draft', max_length=20)),
('agent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='onboarding_flows', to='mlstore.agent')),
('role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='onboarding_flows', to='orgs.role')),
],
options={
'verbose_name': 'Onboarding Flow',
'verbose_name_plural': 'Onboarding Flows',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='OnboardingPage',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('order', models.IntegerField(default=0)),
('title', models.CharField(max_length=255)),
('body', models.TextField(blank=True, default='')),
('meta', models.JSONField(blank=True, default=dict)),
('flow', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pages', to='onboarding.onboardingflow')),
],
options={
'verbose_name': 'Onboarding Page',
'verbose_name_plural': 'Onboarding Pages',
'ordering': ['order', 'created_at'],
},
),
migrations.CreateModel(
name='OnboardingField',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('order', models.IntegerField(default=0)),
('key', models.CharField(max_length=120)),
('label', models.CharField(max_length=255)),
('field_type', models.CharField(choices=[('text', 'Text'), ('textarea', 'Textarea'), ('select', 'Select'), ('multiselect', 'Multi Select'), ('number', 'Number'), ('boolean', 'Boolean'), ('date', 'Date')], default='text', max_length=30)),
('required', models.BooleanField(default=False)),
('help_text', models.TextField(blank=True, default='')),
('placeholder', models.CharField(blank=True, default='', max_length=255)),
('options', models.JSONField(blank=True, default=list)),
('default_value', models.JSONField(blank=True, null=True, default=None)),
('validation', models.JSONField(blank=True, default=dict)),
('page', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fields', to='onboarding.onboardingpage')),
],
options={
'verbose_name': 'Onboarding Field',
'verbose_name_plural': 'Onboarding Fields',
'ordering': ['order', 'created_at'],
'unique_together': {('page', 'key')},
},
),
migrations.CreateModel(
name='OnboardingSession',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('status', models.CharField(choices=[('in_progress', 'In Progress'), ('completed', 'Completed'), ('abandoned', 'Abandoned')], default='in_progress', max_length=20)),
('current_page_order', models.IntegerField(default=0)),
('responses', models.JSONField(blank=True, default=dict)),
('completed_at', models.DateTimeField(blank=True, null=True)),
('agent_run', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='onboarding_sessions', to='mlstore.agentrun')),
('flow', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sessions', to='onboarding.onboardingflow')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='onboarding_sessions', to='users.user')),
],
options={
'verbose_name': 'Onboarding Session',
'verbose_name_plural': 'Onboarding Sessions',
'ordering': ['-created_at'],
},
),
]