# Generated by Django 5.2.7 on 2026-02-12 12:36 import django.contrib.auth.models import django.contrib.auth.validators import django.contrib.postgres.fields import django.db.models.deletion import django.utils.timezone import model_utils.fields import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ('contenttypes', '0002_remove_content_type_name'), migrations.swappable_dependency(settings.EPDB_PACKAGE_MODEL), ] operations = [ migrations.CreateModel( name='ApplicabilityDomain', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('num_neighbours', models.IntegerField(default=5)), ('reliability_threshold', models.FloatField(default=0.5)), ('local_compatibilty_threshold', models.FloatField(default=0.5)), ('functional_groups', models.JSONField(blank=True, default=dict, null=True)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Edge', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='EPModel', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='ExternalDatabase', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('name', models.CharField(max_length=100, unique=True, verbose_name='Database Name')), ('full_name', models.CharField(blank=True, max_length=255, verbose_name='Full Database Name')), ('description', models.TextField(blank=True, verbose_name='Description')), ('base_url', models.URLField(blank=True, null=True, verbose_name='Base URL')), ('url_pattern', models.CharField(blank=True, help_text="URL pattern with {id} placeholder, e.g., 'https://pubchem.ncbi.nlm.nih.gov/compound/{id}'", max_length=500, verbose_name='URL Pattern')), ('is_active', models.BooleanField(default=True, verbose_name='Is Active')), ], options={ 'verbose_name': 'External Database', 'verbose_name_plural': 'External Databases', 'db_table': 'epdb_external_database', 'ordering': ['name'], }, ), migrations.CreateModel( name='Permission', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('permission', models.CharField(choices=[('read', 'Read'), ('write', 'Write'), ('all', 'All')], max_length=32)), ], ), migrations.CreateModel( name='License', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('cc_string', models.TextField(verbose_name='CC string')), ('link', models.URLField(verbose_name='link')), ('image_link', models.URLField(verbose_name='Image link')), ], ), migrations.CreateModel( name='Rule', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='User', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('email', models.EmailField(max_length=254, unique=True)), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('is_reviewer', models.BooleanField(default=False)), ('default_package', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Default Package')), ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='APIToken', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('hashed_key', models.CharField(help_text='SHA-256 hash of the token key', max_length=128, unique=True)), ('expires_at', models.DateTimeField(blank=True, help_text='Token expiration time (null for no expiration)', null=True)), ('name', models.CharField(help_text='Descriptive name for this token', max_length=100)), ('is_active', models.BooleanField(default=True, help_text='Whether this token is active')), ('user', models.ForeignKey(help_text='User who owns this token', on_delete=django.db.models.deletion.CASCADE, related_name='api_tokens', to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'API Token', 'verbose_name_plural': 'API Tokens', 'db_table': 'epdb_api_token', 'ordering': ['-created'], }, ), migrations.CreateModel( name='Compound', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ], ), migrations.CreateModel( name='CompoundStructure', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('smiles', models.TextField(verbose_name='SMILES')), ('canonical_smiles', models.TextField(verbose_name='Canonical SMILES')), ('inchikey', models.TextField(max_length=27, verbose_name='InChIKey')), ('normalized_structure', models.BooleanField(default=False)), ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.compound')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='compound', name='default_structure', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='compound_default_structure', to='epdb.compoundstructure', verbose_name='Default Structure'), ), migrations.CreateModel( name='PluginModel', fields=[ ('epmodel_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.epmodel')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.epmodel',), ), migrations.CreateModel( name='Group', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('name', models.TextField(verbose_name='Group name')), ('public', models.BooleanField(default=False, verbose_name='Public Group')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('group_member', models.ManyToManyField(blank=True, related_name='groups_in_group', to='epdb.group', verbose_name='Group member')), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Group Owner')), ('user_member', models.ManyToManyField(related_name='users_in_group', to=settings.AUTH_USER_MODEL, verbose_name='User members')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='user', name='default_group', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='default_group', to='epdb.group', verbose_name='Default Group'), ), migrations.CreateModel( name='JobLog', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('task_id', models.UUIDField(unique=True)), ('job_name', models.TextField()), ('status', models.CharField(choices=[('INITIAL', 'Initial'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('REVOKED', 'Revoked'), ('IGNORED', 'Ignored')], default='INITIAL', max_length=20)), ('done_at', models.DateTimeField(blank=True, default=None, null=True)), ('task_result', models.TextField(blank=True, default=None, null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Package', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('reviewed', models.BooleanField(default=False, verbose_name='Reviewstatus')), ('license', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.license', verbose_name='License')), ], options={ 'swappable': 'EPDB_PACKAGE_MODEL', }, ), migrations.CreateModel( name='Node', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('depth', models.IntegerField(verbose_name='Node depth')), ('stereo_removed', models.BooleanField(default=False)), ('default_node_label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='default_node_structure', to='epdb.compoundstructure', verbose_name='Default Node Label')), ('node_labels', models.ManyToManyField(related_name='node_structures', to='epdb.compoundstructure', verbose_name='All Node Labels')), ('out_edges', models.ManyToManyField(to='epdb.edge', verbose_name='Outgoing Edges')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='edge', name='end_nodes', field=models.ManyToManyField(related_name='edge_products', to='epdb.node', verbose_name='End Nodes'), ), migrations.AddField( model_name='edge', name='start_nodes', field=models.ManyToManyField(related_name='edge_educts', to='epdb.node', verbose_name='Start Nodes'), ), migrations.CreateModel( name='SequentialRule', fields=[ ('rule_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.rule')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.rule',), ), migrations.CreateModel( name='SimpleRule', fields=[ ('rule_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.rule')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.rule',), ), migrations.CreateModel( name='Pathway', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('predicted', models.BooleanField(default=False)), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='node', name='pathway', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.pathway', verbose_name='belongs to'), ), migrations.AddField( model_name='edge', name='pathway', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.pathway', verbose_name='belongs to'), ), migrations.CreateModel( name='Reaction', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('aliases', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), default=list, size=None, verbose_name='Aliases')), ('multi_step', models.BooleanField(verbose_name='Multistep Reaction')), ('medline_references', django.contrib.postgres.fields.ArrayField(base_field=models.TextField(), null=True, size=None, verbose_name='Medline References')), ('educts', models.ManyToManyField(related_name='reaction_educts', to='epdb.compoundstructure', verbose_name='Educts')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ('products', models.ManyToManyField(related_name='reaction_products', to='epdb.compoundstructure', verbose_name='Products')), ('rules', models.ManyToManyField(related_name='reaction_rule', to='epdb.rule', verbose_name='Rule')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='EnzymeLink', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('ec_number', models.TextField(verbose_name='EC Number')), ('classification_level', models.IntegerField(verbose_name='Classification Level')), ('linking_method', models.TextField(verbose_name='Linking Method')), ('edge_evidence', models.ManyToManyField(to='epdb.edge')), ('rule', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.rule')), ('reaction_evidence', models.ManyToManyField(to='epdb.reaction')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='edge', name='edge_label', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.reaction', verbose_name='Edge label'), ), migrations.CreateModel( name='Scenario', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('scenario_date', models.CharField(default='No date', max_length=256)), ('scenario_type', models.CharField(default='Not specified', max_length=256)), ('additional_information', models.JSONField(verbose_name='Additional Information')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Package')), ('parent', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='epdb.scenario')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='rule', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='reaction', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='pathway', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='node', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='edge', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='compoundstructure', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.AddField( model_name='compound', name='scenarios', field=models.ManyToManyField(to='epdb.scenario', verbose_name='Attached Scenarios'), ), migrations.CreateModel( name='Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID of this object')), ('name', models.TextField(default='no name', verbose_name='Name')), ('description', models.TextField(default='no description', verbose_name='Descriptions')), ('url', models.TextField(null=True, unique=True, verbose_name='URL')), ('kv', models.JSONField(blank=True, default=dict, null=True)), ('public', models.BooleanField(default=False)), ('global_default', models.BooleanField(default=False)), ('max_depth', models.IntegerField(default=5, verbose_name='Setting Max Depth')), ('max_nodes', models.IntegerField(default=30, verbose_name='Setting Max Number of Nodes')), ('model_threshold', models.FloatField(blank=True, default=0.25, null=True, verbose_name='Setting Model Threshold')), ('expansion_scheme', models.CharField(choices=[('BFS', 'Breadth First Search'), ('DFS', 'Depth First Search'), ('GREEDY', 'Greedy')], default='BFS', max_length=20)), ('model', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.epmodel', verbose_name='Setting EPModel')), ('rule_packages', models.ManyToManyField(blank=True, related_name='setting_rule_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Setting Rule Packages')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='pathway', name='setting', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='epdb.setting', verbose_name='Setting'), ), migrations.AddField( model_name='user', name='default_setting', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.setting', verbose_name='The users default settings'), ), migrations.CreateModel( name='EnviFormer', fields=[ ('epmodel_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.epmodel')), ('threshold', models.FloatField(default=0.5)), ('eval_results', models.JSONField(blank=True, default=dict, null=True)), ('multigen_eval', models.BooleanField(default=False)), ('model_status', models.CharField(choices=[('INITIAL', 'Initial'), ('INITIALIZING', 'Model is initializing.'), ('BUILDING', 'Model is building.'), ('BUILT_NOT_EVALUATED', 'Model is built and can be used for predictions, Model is not evaluated yet.'), ('EVALUATING', 'Model is evaluating'), ('FINISHED', 'Model has finished building and evaluation.'), ('ERROR', 'Model has failed.')], default='INITIAL')), ('app_domain', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.applicabilitydomain')), ('data_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_data_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Data Packages')), ('eval_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_eval_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Evaluation Packages')), ('rule_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_rule_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Rule Packages')), ], options={ 'abstract': False, }, bases=('epdb.epmodel',), ), migrations.CreateModel( name='MLRelativeReasoning', fields=[ ('epmodel_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.epmodel')), ('threshold', models.FloatField(default=0.5)), ('eval_results', models.JSONField(blank=True, default=dict, null=True)), ('multigen_eval', models.BooleanField(default=False)), ('model_status', models.CharField(choices=[('INITIAL', 'Initial'), ('INITIALIZING', 'Model is initializing.'), ('BUILDING', 'Model is building.'), ('BUILT_NOT_EVALUATED', 'Model is built and can be used for predictions, Model is not evaluated yet.'), ('EVALUATING', 'Model is evaluating'), ('FINISHED', 'Model has finished building and evaluation.'), ('ERROR', 'Model has failed.')], default='INITIAL')), ('app_domain', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.applicabilitydomain')), ('data_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_data_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Data Packages')), ('eval_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_eval_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Evaluation Packages')), ('rule_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_rule_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Rule Packages')), ], options={ 'abstract': False, }, bases=('epdb.epmodel',), ), migrations.AddField( model_name='applicabilitydomain', name='model', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.mlrelativereasoning'), ), migrations.CreateModel( name='RuleBasedRelativeReasoning', fields=[ ('epmodel_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.epmodel')), ('threshold', models.FloatField(default=0.5)), ('eval_results', models.JSONField(blank=True, default=dict, null=True)), ('multigen_eval', models.BooleanField(default=False)), ('model_status', models.CharField(choices=[('INITIAL', 'Initial'), ('INITIALIZING', 'Model is initializing.'), ('BUILDING', 'Model is building.'), ('BUILT_NOT_EVALUATED', 'Model is built and can be used for predictions, Model is not evaluated yet.'), ('EVALUATING', 'Model is evaluating'), ('FINISHED', 'Model has finished building and evaluation.'), ('ERROR', 'Model has failed.')], default='INITIAL')), ('min_count', models.IntegerField(default=10)), ('max_count', models.IntegerField(default=0)), ('app_domain', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='epdb.applicabilitydomain')), ('data_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_data_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Data Packages')), ('eval_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_eval_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Evaluation Packages')), ('rule_packages', models.ManyToManyField(related_name='%(app_label)s_%(class)s_rule_packages', to=settings.EPDB_PACKAGE_MODEL, verbose_name='Rule Packages')), ], options={ 'abstract': False, }, bases=('epdb.epmodel',), ), migrations.CreateModel( name='ExternalIdentifier', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('object_id', models.IntegerField()), ('identifier_value', models.CharField(max_length=255, verbose_name='Identifier Value')), ('url', models.URLField(blank=True, null=True, verbose_name='Direct URL')), ('is_primary', models.BooleanField(default=False, help_text='Mark this as the primary identifier for this database', verbose_name='Is Primary')), ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), ('database', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.externaldatabase', verbose_name='External Database')), ], options={ 'verbose_name': 'External Identifier', 'verbose_name_plural': 'External Identifiers', 'db_table': 'epdb_external_identifier', 'indexes': [models.Index(fields=['content_type', 'object_id'], name='epdb_extern_content_b76813_idx'), models.Index(fields=['database', 'identifier_value'], name='epdb_extern_databas_486422_idx')], 'unique_together': {('content_type', 'object_id', 'database', 'identifier_value')}, }, ), migrations.CreateModel( name='SimpleAmbitRule', fields=[ ('simplerule_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.simplerule')), ('smirks', models.TextField(verbose_name='SMIRKS')), ('reactant_filter_smarts', models.TextField(null=True, verbose_name='Reactant Filter SMARTS')), ('product_filter_smarts', models.TextField(null=True, verbose_name='Product Filter SMARTS')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.simplerule',), ), migrations.CreateModel( name='SimpleRDKitRule', fields=[ ('simplerule_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.simplerule')), ('reaction_smarts', models.TextField(verbose_name='SMIRKS')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.simplerule',), ), migrations.CreateModel( name='SequentialRuleOrdering', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('order_index', models.IntegerField()), ('sequential_rule', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.sequentialrule')), ('simple_rule', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.simplerule')), ], ), migrations.AddField( model_name='sequentialrule', name='simple_rules', field=models.ManyToManyField(through='epdb.SequentialRuleOrdering', to='epdb.simplerule', verbose_name='Simple rules'), ), migrations.CreateModel( name='ParallelRule', fields=[ ('rule_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='epdb.rule')), ('simple_rules', models.ManyToManyField(to='epdb.simplerule', verbose_name='Simple rules')), ], options={ 'abstract': False, 'base_manager_name': 'objects', }, bases=('epdb.rule',), ), migrations.AlterUniqueTogether( name='compound', unique_together={('uuid', 'package')}, ), migrations.CreateModel( name='GroupPackagePermission', fields=[ ('permission_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, to='epdb.permission')), ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False, verbose_name='UUID of this object')), ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.group', verbose_name='Permission to')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Permission on')), ], options={ 'unique_together': {('package', 'group')}, }, bases=('epdb.permission',), ), migrations.CreateModel( name='UserPackagePermission', fields=[ ('permission_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, to='epdb.permission')), ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False, verbose_name='UUID of this object')), ('package', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.EPDB_PACKAGE_MODEL, verbose_name='Permission on')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Permission to')), ], options={ 'unique_together': {('package', 'user')}, }, bases=('epdb.permission',), ), migrations.CreateModel( name='UserSettingPermission', fields=[ ('permission_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, to='epdb.permission')), ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False, verbose_name='UUID of this object')), ('setting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='epdb.setting', verbose_name='Permission on')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Permission to')), ], options={ 'unique_together': {('setting', 'user')}, }, bases=('epdb.permission',), ), ]