oncall-engine/engine/apps/user_management/migrations/0001_squashed_initial.py

110 lines
7.2 KiB
Python
Raw Permalink Normal View History

# Generated by Django 3.2.5 on 2022-05-31 14:46
import apps.user_management.models.organization
import apps.user_management.models.team
import apps.user_management.models.user
import datetime
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import mirage.fields
import django_migration_linter as linter
class Migration(migrations.Migration):
initial = True
dependencies = [
('alerts', '0001_squashed_initial'),
('slack', '0001_squashed_initial'),
]
operations = [
linter.IgnoreMigration(),
migrations.CreateModel(
name='Organization',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('maintenance_duration', models.DurationField(choices=[(datetime.timedelta(seconds=3600), '1 hour'), (datetime.timedelta(seconds=10800), '3 hours'), (datetime.timedelta(seconds=21600), '6 hours'), (datetime.timedelta(seconds=43200), '12 hours'), (datetime.timedelta(days=1), '24 hours')], default=None, null=True)),
('maintenance_mode', models.IntegerField(choices=[(0, 'Debug'), (1, 'Maintenance')], default=None, null=True)),
('maintenance_uuid', models.CharField(default=None, max_length=250, null=True, unique=True)),
('maintenance_started_at', models.DateTimeField(default=None, null=True)),
('public_primary_key', models.CharField(default=apps.user_management.models.organization.generate_public_primary_key_for_organization, max_length=20, unique=True, validators=[django.core.validators.MinLengthValidator(13)])),
('stack_id', models.PositiveIntegerField()),
('org_id', models.PositiveIntegerField()),
('stack_slug', models.CharField(max_length=300)),
('org_slug', models.CharField(max_length=300)),
('org_title', models.CharField(max_length=300)),
('grafana_url', models.URLField()),
('api_token', mirage.fields.EncryptedCharField(max_length=300)),
('api_token_status', models.IntegerField(choices=[(0, 'API Token Status Pending'), (1, 'API Token Status Ok'), (2, 'API Token Status Failed')], default=0)),
('gcom_token', mirage.fields.EncryptedCharField(default=None, max_length=300, null=True)),
('gcom_token_org_last_time_synced', models.DateTimeField(default=None, null=True)),
('last_time_synced', models.DateTimeField(default=None, null=True)),
('is_resolution_note_required', models.BooleanField(default=False)),
('archive_alerts_from', models.DateField(default='1970-01-01')),
('general_log_channel_id', models.CharField(default=None, max_length=100, null=True)),
('acknowledge_remind_timeout', models.IntegerField(choices=[(0, 'Never remind about ack-ed incidents'), (1, 'Remind every 1 hour'), (2, 'Remind every 3 hours'), (3, 'Remind every 5 hours'), (4, 'Remind every 10 hours')], default=0)),
('unacknowledge_timeout', models.IntegerField(choices=[(0, 'and never unack'), (1, 'and unack in 5 min if no response'), (2, 'and unack in 15 min if no response'), (3, 'and unack in 30 min if no response'), (4, 'and unack in 45 min if no response')], default=0)),
('datetime', models.DateTimeField(auto_now_add=True)),
('pricing_version', models.PositiveIntegerField(choices=[(0, 'Free public beta')], default=0)),
('is_amixr_migration_started', models.BooleanField(default=False)),
],
),
migrations.CreateModel(
name='Team',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('public_primary_key', models.CharField(default=apps.user_management.models.team.generate_public_primary_key_for_team, max_length=20, unique=True, validators=[django.core.validators.MinLengthValidator(13)])),
('team_id', models.PositiveIntegerField()),
('name', models.CharField(max_length=300)),
('email', models.CharField(blank=True, default=None, max_length=300, null=True)),
('avatar_url', models.URLField()),
('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teams', to='user_management.organization')),
],
),
migrations.CreateModel(
name='User',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('public_primary_key', models.CharField(default=apps.user_management.models.user.generate_public_primary_key_for_user, max_length=20, unique=True, validators=[django.core.validators.MinLengthValidator(13)])),
('user_id', models.PositiveIntegerField()),
('email', models.EmailField(max_length=254)),
('name', models.CharField(max_length=300)),
('username', models.CharField(max_length=300)),
('role', models.PositiveSmallIntegerField(choices=[(0, 'ADMIN'), (1, 'EDITOR'), (2, 'VIEWER')])),
('avatar_url', models.URLField()),
('unverified_phone_number', models.CharField(default=None, max_length=20, null=True)),
('_verified_phone_number', models.CharField(default=None, max_length=20, null=True)),
('is_active', models.BooleanField(default=True, null=True)),
('current_team', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='user_management.team')),
('notification', models.ManyToManyField(through='alerts.UserHasNotification', to='alerts.AlertGroup')),
('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='users', to='user_management.organization')),
('slack_user_identity', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='users', to='slack.slackuseridentity')),
],
options={
'unique_together': {('user_id', 'organization', 'is_active')},
},
),
migrations.AddField(
model_name='team',
name='users',
field=models.ManyToManyField(related_name='teams', to='user_management.User'),
),
migrations.AddField(
model_name='organization',
name='maintenance_author',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='organization_maintenances_created', to='user_management.user'),
),
migrations.AddField(
model_name='organization',
name='slack_team_identity',
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='organizations', to='slack.slackteamidentity'),
),
migrations.AlterUniqueTogether(
name='organization',
unique_together={('stack_id', 'org_id')},
),
]