# Generated by Django 5.2.3 on 2025-06-30 16:24

import django.contrib.postgres.indexes
import django.contrib.postgres.search
import django.db.models.deletion
import uuid
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('lara_django_base', '0001_initial'),
        ('lara_django_material', '0001_initial'),
        ('lara_django_material_store', '0001_initial'),
        ('lara_django_organisms', '0001_initial'),
        ('lara_django_organisms_store', '0001_initial'),
        ('lara_django_people', '0001_initial'),
        ('lara_django_samples', '0001_initial'),
        ('lara_django_substances', '0001_initial'),
        ('lara_django_substances_store', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='ProcessStepClass',
            fields=[
                ('processstepclass_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.TextField(help_text='name of step class, e.g. move, transfer, decision, computation ...', null=True, unique=True)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('processstep_schema', models.JSONField(blank=True, help_text='JSON schema for the process step, e.g. for validation of parameters')),
                ('description', models.TextField(blank=True, help_text='description of step class', null=True)),
            ],
            options={
                'verbose_name_plural': 'ProcessStepClasses',
            },
        ),
        migrations.CreateModel(
            name='ExtraData',
            fields=[
                ('extradata_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name_display', models.TextField(blank=True, help_text='Human readable display name or title of extra data')),
                ('name', models.TextField(blank=True, help_text='name of extra data')),
                ('name_full', models.TextField(blank=True, help_text='full name of extra data', unique=True)),
                ('version', models.TextField(blank=True, help_text='version of extra data')),
                ('hash_sha256', models.CharField(blank=True, default=None, help_text='SHA256 hash of all data (JSON and XML)', max_length=256, unique=True)),
                ('data_json', models.JSONField(blank=True, help_text='generic JSON field', null=True)),
                ('iri', models.URLField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('url', models.URLField(blank=True, help_text='Universal Resource Locator - this can be used to link the data to external locations')),
                ('datetime_created', models.DateTimeField(blank=True, help_text='date and time when data was created', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when data was last modified', null=True)),
                ('description', models.TextField(blank=True, help_text='description of extra data')),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('image', models.ImageField(blank=True, help_text='location room map rel. path/filename to image', null=True, upload_to='processes/images/')),
                ('file', models.FileField(blank=True, help_text='rel. path/filename', null=True, upload_to='processes/data_extra/')),
                ('data_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_name_related', to='lara_django_base.datatype')),
                ('media_type', models.ForeignKey(blank=True, help_text='IANA media type of extra data file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_file_types_related', related_query_name='%(app_label)s_%(class)s_file_types_related_query', to='lara_django_base.mediatype')),
                ('namespace', models.ForeignKey(help_text='namespace of data', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
            ],
            options={
                'verbose_name_plural': 'ExtraData',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Method',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the process/method/procedure.')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process')),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persistent Identifier [PID/handle URI](https://www.handle.net/)', null=True, unique=True)),
                ('pac_id', models.URLField(blank=True, help_text='Publicly Addressable Content IDentifier is a globally unique                    identifier that operates independently of a central registry.', null=True, unique=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this method/procedure/process, e.g. 0.2.3')),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when data was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('parameters_schema', models.JSONField(blank=True, help_text='schema of the parameters for the method/procedure/process parameters and their corresponding instances', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('method_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('method_json', models.JSONField(blank=True, help_text='Method JSON representation', null=True)),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='extra data', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_setups', models.ManyToManyField(blank=True, help_text='DeviceSetup classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_setups_related', related_query_name='%(app_label)s_%(class)s_devices_setups_related_query', to='lara_django_material.devicesetup')),
                ('devices', models.ManyToManyField(blank=True, help_text='Devices classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material.device')),
                ('labware', models.ManyToManyField(blank=True, help_text='Labware classes', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material.labware')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('mixtures', models.ManyToManyField(blank=True, help_text='Substance Mixture Classes used in the method/procedure/process', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances.mixture')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of process/method/procedure/', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organisms', models.ManyToManyField(blank=True, help_text='Organisms class used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms.organism')),
                ('parts', models.ManyToManyField(blank=True, help_text='Part classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material.part')),
                ('polymers', models.ManyToManyField(blank=True, help_text='Polymer classes used ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances.polymer')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('substances', models.ManyToManyField(blank=True, help_text='Substance classes used, e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances.substance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='MethodInstance',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the method/procedure/process')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process', unique=True)),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512, null=True, unique=True)),
                ('datetime_start', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was started', null=True)),
                ('datetime_end', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was finished', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this data set, e.g. 0.0.1', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persitent Identifier [PID/handle URI](https://www.handle.net/)', max_length=512, null=True, unique=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('methodinstance_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('method_json', models.JSONField(blank=True, help_text='Method JSON representation', null=True)),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='e.g. manual', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_instances', models.ManyToManyField(blank=True, help_text='Devices used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material_store.deviceinstance')),
                ('device_setup_instances', models.ManyToManyField(blank=True, help_text='DeviceSetup instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_device_setups_related', related_query_name='%(app_label)s_%(class)s_device_setups_related_query', to='lara_django_material_store.devicesetupinstance')),
                ('labware_instances', models.ManyToManyField(blank=True, help_text='Labware instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material_store.labwareinstance')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('method_base', models.ForeignKey(blank=True, help_text='reference method = referring method class, like chromatography.HPLC', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_method_base_related', related_query_name='%(app_label)s_%(class)s_method_base_related_query', to='lara_django_processes.method')),
                ('mixture_instances', models.ManyToManyField(blank=True, help_text='Mixture instances used', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances_store.mixtureinstance')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organism_instances', models.ManyToManyField(blank=True, help_text='Organism instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms_store.organisminstance')),
                ('part_instances', models.ManyToManyField(blank=True, help_text='Part instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material_store.partinstance')),
                ('polymer_instances', models.ManyToManyField(blank=True, help_text='Polymers used e.g. for sequencing ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances_store.polymerinstance')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('status', models.ForeignKey(blank=True, help_text='state of the method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.itemstatus')),
                ('substance_instances', models.ManyToManyField(blank=True, help_text='S e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances_store.substanceinstance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='MethodInstancesSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('methodinstancessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='MethodsSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('methodssubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderedMethodInstancesSubset',
            fields=[
                ('orderedmethodssubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of method instance in subset')),
                ('method_instance', models.ForeignKey(help_text='method instance in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_method_instance_related', related_query_name='%(app_label)s_%(class)s_method_instance', to='lara_django_processes.methodinstance')),
                ('method_instances_subset', models.ForeignKey(help_text='subset of method instances', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_methodinstancessubset_related', related_query_name='%(app_label)s_%(class)s_methodinstancessubset', to='lara_django_processes.methodinstancessubset')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.AddField(
            model_name='methodinstancessubset',
            name='method_instances',
            field=models.ManyToManyField(blank=True, help_text='all method instances of a subset', related_name='%(app_label)s_%(class)s_method_instances_related', related_query_name='%(app_label)s_%(class)s_method_instances_related_query', through='lara_django_processes.OrderedMethodInstancesSubset', to='lara_django_processes.methodinstance'),
        ),
        migrations.CreateModel(
            name='OrderedMethodsSubset',
            fields=[
                ('orderedmethodssubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of method in subset')),
                ('method', models.ForeignKey(help_text='method in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_method_related', related_query_name='%(app_label)s_%(class)s_method', to='lara_django_processes.method')),
                ('methods_subset', models.ForeignKey(help_text='subset of methods', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_methodssubset_related', related_query_name='%(app_label)s_%(class)s_methodssubset', to='lara_django_processes.methodssubset')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.AddField(
            model_name='methodssubset',
            name='methods',
            field=models.ManyToManyField(blank=True, help_text='all methods of a subset', related_name='%(app_label)s_%(class)s_methods_related', related_query_name='%(app_label)s_%(class)s_methods_related_query', through='lara_django_processes.OrderedMethodsSubset', to='lara_django_processes.method'),
        ),
        migrations.CreateModel(
            name='Procedure',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the process/method/procedure.')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process')),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persistent Identifier [PID/handle URI](https://www.handle.net/)', null=True, unique=True)),
                ('pac_id', models.URLField(blank=True, help_text='Publicly Addressable Content IDentifier is a globally unique                    identifier that operates independently of a central registry.', null=True, unique=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this method/procedure/process, e.g. 0.2.3')),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when data was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('parameters_schema', models.JSONField(blank=True, help_text='schema of the parameters for the method/procedure/process parameters and their corresponding instances', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('procedure_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('procedure_txt', models.TextField(blank=True, help_text='Procedure text representation, e.g. SOP, python code, R-script, ...', null=True)),
                ('procedure_json', models.JSONField(blank=True, help_text='Procedure JSON representation', null=True)),
                ('procedure_file', models.FileField(blank=True, help_text='rel. path/filename to procedures', null=True, upload_to='lara_processes/procedures/')),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='extra data', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_setups', models.ManyToManyField(blank=True, help_text='DeviceSetup classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_setups_related', related_query_name='%(app_label)s_%(class)s_devices_setups_related_query', to='lara_django_material.devicesetup')),
                ('devices', models.ManyToManyField(blank=True, help_text='Devices classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material.device')),
                ('labware', models.ManyToManyField(blank=True, help_text='Labware classes', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material.labware')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('method', models.ForeignKey(blank=True, help_text='Reference to a method if this process is described by a method.', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_method_related', related_query_name='%(app_label)s_%(class)s_method_related', to='lara_django_processes.method')),
                ('mixtures', models.ManyToManyField(blank=True, help_text='Substance Mixture Classes used in the method/procedure/process', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances.mixture')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of process/method/procedure/', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organisms', models.ManyToManyField(blank=True, help_text='Organisms class used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms.organism')),
                ('parts', models.ManyToManyField(blank=True, help_text='Part classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material.part')),
                ('polymers', models.ManyToManyField(blank=True, help_text='Polymer classes used ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances.polymer')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('substances', models.ManyToManyField(blank=True, help_text='Substance classes used, e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances.substance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderedProceduresSubset',
            fields=[
                ('orderedproceduressubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of procedure in subset')),
                ('procedure', models.ForeignKey(help_text='procedure in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_related', related_query_name='%(app_label)s_%(class)s_procedure', to='lara_django_processes.procedure')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.CreateModel(
            name='ProcedureInstance',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the method/procedure/process')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process', unique=True)),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512, null=True, unique=True)),
                ('datetime_start', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was started', null=True)),
                ('datetime_end', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was finished', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this data set, e.g. 0.0.1', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persitent Identifier [PID/handle URI](https://www.handle.net/)', max_length=512, null=True, unique=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('procedureinstance_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('procedure_json', models.JSONField(blank=True, help_text='Procedure JSON representation', null=True)),
                ('procedure_file', models.FileField(blank=True, help_text='rel. path/filename to procedures', null=True, upload_to='lara_processes/procedure_inst/')),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='e.g. manual', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_instances', models.ManyToManyField(blank=True, help_text='Devices used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material_store.deviceinstance')),
                ('device_setup_instances', models.ManyToManyField(blank=True, help_text='DeviceSetup instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_device_setups_related', related_query_name='%(app_label)s_%(class)s_device_setups_related_query', to='lara_django_material_store.devicesetupinstance')),
                ('labware_instances', models.ManyToManyField(blank=True, help_text='Labware instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material_store.labwareinstance')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('mixture_instances', models.ManyToManyField(blank=True, help_text='Mixture instances used', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances_store.mixtureinstance')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organism_instances', models.ManyToManyField(blank=True, help_text='Organism instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms_store.organisminstance')),
                ('part_instances', models.ManyToManyField(blank=True, help_text='Part instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material_store.partinstance')),
                ('polymer_instances', models.ManyToManyField(blank=True, help_text='Polymers used e.g. for sequencing ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances_store.polymerinstance')),
                ('procedure_base', models.ForeignKey(blank=True, help_text='reference to abstract procedure', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procesure_ref_related', related_query_name='%(app_label)s_%(class)s_procedure_base_related_query', to='lara_django_processes.procedure')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('status', models.ForeignKey(blank=True, help_text='state of the method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.itemstatus')),
                ('substance_instances', models.ManyToManyField(blank=True, help_text='S e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances_store.substanceinstance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderedProcedureInstancesSubset',
            fields=[
                ('orderedproceduressubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of procedure instance in subset')),
                ('procedure_instance', models.ForeignKey(help_text='procedure instance in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_instance_related', related_query_name='%(app_label)s_%(class)s_procedure_instance', to='lara_django_processes.procedureinstance')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.CreateModel(
            name='ProcedureInstancesSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('procedureinstancessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('procedure_instances', models.ManyToManyField(blank=True, help_text='all procedure instances of a subset', related_name='%(app_label)s_%(class)s_procedure_instances_related', related_query_name='%(app_label)s_%(class)s_procedure_instances_related_query', through='lara_django_processes.OrderedProcedureInstancesSubset', to='lara_django_processes.procedureinstance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AddField(
            model_name='orderedprocedureinstancessubset',
            name='procedure_instances_subset',
            field=models.ForeignKey(help_text='subset of procedure instances', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedureinstancessubset_related', related_query_name='%(app_label)s_%(class)s_procedureinstancessubset', to='lara_django_processes.procedureinstancessubset'),
        ),
        migrations.CreateModel(
            name='ProceduresSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('proceduressubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('procedures', models.ManyToManyField(blank=True, help_text='all procedures of a subset', related_name='%(app_label)s_%(class)s_procedures_related', related_query_name='%(app_label)s_%(class)s_procedures_related_query', through='lara_django_processes.OrderedProceduresSubset', to='lara_django_processes.procedure')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AddField(
            model_name='orderedproceduressubset',
            name='procedures_subset',
            field=models.ForeignKey(help_text='subset of procedures', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_proceduressubset_related', related_query_name='%(app_label)s_%(class)s_proceduressubset', to='lara_django_processes.proceduressubset'),
        ),
        migrations.CreateModel(
            name='Process',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the process/method/procedure.')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process')),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persistent Identifier [PID/handle URI](https://www.handle.net/)', null=True, unique=True)),
                ('pac_id', models.URLField(blank=True, help_text='Publicly Addressable Content IDentifier is a globally unique                    identifier that operates independently of a central registry.', null=True, unique=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this method/procedure/process, e.g. 0.2.3')),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when data was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('parameters_schema', models.JSONField(blank=True, help_text='schema of the parameters for the method/procedure/process parameters and their corresponding instances', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('process_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('process_json', models.JSONField(blank=True, help_text='Process JSON representation', null=True)),
                ('process_file', models.FileField(blank=True, help_text='rel. path/filename to processes', null=True, upload_to='lara_processes/processes/')),
                ('graph_representation', models.JSONField(blank=True, help_text='Workflow graph representation of the process.', null=True)),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='extra data', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_setups', models.ManyToManyField(blank=True, help_text='DeviceSetup classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_setups_related', related_query_name='%(app_label)s_%(class)s_devices_setups_related_query', to='lara_django_material.devicesetup')),
                ('devices', models.ManyToManyField(blank=True, help_text='Devices classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material.device')),
                ('labware', models.ManyToManyField(blank=True, help_text='Labware classes', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material.labware')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('mixtures', models.ManyToManyField(blank=True, help_text='Substance Mixture Classes used in the method/procedure/process', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances.mixture')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of process/method/procedure/', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organisms', models.ManyToManyField(blank=True, help_text='Organisms class used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms.organism')),
                ('parts', models.ManyToManyField(blank=True, help_text='Part classes used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material.part')),
                ('polymers', models.ManyToManyField(blank=True, help_text='Polymer classes used ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances.polymer')),
                ('procedures', models.ManyToManyField(blank=True, help_text='all procedures of a process', related_name='procedures_processes', to='lara_django_processes.procedure')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('substances', models.ManyToManyField(blank=True, help_text='Substance classes used, e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances.substance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'verbose_name_plural': 'Processes',
            },
        ),
        migrations.CreateModel(
            name='OrderedProcessesSubset',
            fields=[
                ('orderedprocessessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of process in subset')),
                ('process', models.ForeignKey(help_text='process in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_related', related_query_name='%(app_label)s_%(class)s_process', to='lara_django_processes.process')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.CreateModel(
            name='ProcessesSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('processessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('processes', models.ManyToManyField(blank=True, help_text='all processes of a subset', related_name='%(app_label)s_%(class)s_processes_related', related_query_name='%(app_label)s_%(class)s_processes_related_query', through='lara_django_processes.OrderedProcessesSubset', to='lara_django_processes.process')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AddField(
            model_name='orderedprocessessubset',
            name='processes_subset',
            field=models.ForeignKey(help_text='subset of processes', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_processessubset_related', related_query_name='%(app_label)s_%(class)s_processessubset', to='lara_django_processes.processessubset'),
        ),
        migrations.CreateModel(
            name='ProcessInstance',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='human readable name of the method/procedure/process')),
                ('name', models.TextField(blank=True, help_text='name of the method/procedure/process', unique=True)),
                ('uri', models.URLField(blank=True, help_text='Uniform Resource Identifier to locate method/procedure/process', max_length=512, null=True, unique=True)),
                ('datetime_start', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was started', null=True)),
                ('datetime_end', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was finished', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when the Method/Produre/Process was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('version', models.TextField(blank=True, help_text='maj.min.patch version of this data set, e.g. 0.0.1', null=True)),
                ('icon', models.TextField(blank=True, help_text='XML/SVG icon / symbol of the method', null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('pid', models.TextField(blank=True, help_text='Persitent Identifier [PID/handle URI](https://www.handle.net/)', max_length=512, null=True, unique=True)),
                ('search_vector', django.contrib.postgres.search.SearchVectorField(null=True)),
                ('processinstance_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('process_json', models.JSONField(blank=True, help_text='Process JSON representation', null=True)),
                ('process_file', models.FileField(blank=True, help_text='rel. path/filename to processes', null=True, upload_to='lara_processes/processes/')),
                ('creators', models.ManyToManyField(blank=True, help_text='creators of method/procedure/process', related_name='%(app_label)s_%(class)s_creators_related', related_query_name='%(app_label)s_%(class)s_creators_related_query', to='lara_django_people.entity')),
                ('data_extra', models.ManyToManyField(blank=True, help_text='e.g. manual', related_name='%(app_label)s_%(class)s_data_extra_related', related_query_name='%(app_label)s_%(class)s_data_extra_related_query', to='lara_django_processes.extradata')),
                ('device_instances', models.ManyToManyField(blank=True, help_text='Devices used in this method/procedure/process', related_name='%(app_label)s_%(class)s_devices_related', related_query_name='%(app_label)s_%(class)s_devices_related_query', to='lara_django_material_store.deviceinstance')),
                ('device_setup_instances', models.ManyToManyField(blank=True, help_text='DeviceSetup instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_device_setups_related', related_query_name='%(app_label)s_%(class)s_device_setups_related_query', to='lara_django_material_store.devicesetupinstance')),
                ('labware_instances', models.ManyToManyField(blank=True, help_text='Labware instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_containers_related', related_query_name='%(app_label)s_%(class)s_containers_related_query', to='lara_django_material_store.labwareinstance')),
                ('media_type', models.ForeignKey(blank=True, help_text='file type of method file', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_media_types_related', to='lara_django_base.mediatype')),
                ('mixture_instances', models.ManyToManyField(blank=True, help_text='Mixture instances used', related_name='%(app_label)s_%(class)s_mixtures_related', related_query_name='%(app_label)s_%(class)s_mixtures_related_query', to='lara_django_substances_store.mixtureinstance')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('organism_instances', models.ManyToManyField(blank=True, help_text='Organism instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_organisms_related', related_query_name='%(app_label)s_%(class)s_organisms_related_query', to='lara_django_organisms_store.organisminstance')),
                ('part_instances', models.ManyToManyField(blank=True, help_text='Part instances used in this method/procedure/process', related_name='%(app_label)s_%(class)s_parts_related', related_query_name='%(app_label)s_%(class)s_parts_related_query', to='lara_django_material_store.partinstance')),
                ('polymer_instances', models.ManyToManyField(blank=True, help_text='Polymers used e.g. for sequencing ', related_name='%(app_label)s_%(class)s_polymers_related', related_query_name='%(app_label)s_%(class)s_polymers_related_query', to='lara_django_substances_store.polymerinstance')),
                ('process_base', models.ForeignKey(help_text='reference to abstract process', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_bases_related', related_query_name='%(app_label)s_%(class)s_process_bases_related_query', to='lara_django_processes.process')),
                ('resources_external', models.ManyToManyField(blank=True, help_text='external resources, like literature, websites, manuals, ...', related_name='%(app_label)s_%(class)s_external_resources_related', related_query_name='%(app_label)s_%(class)s_external_resources_related_query', to='lara_django_base.externalresource')),
                ('sample_sets', models.ManyToManyField(blank=True, help_text='SampleSets used in this method/procedure/process', related_name='%(app_label)s_%(class)s_sample_sets_related', related_query_name='%(app_label)s_%(class)s_sample_sets_related_query', to='lara_django_samples.sampleset')),
                ('samples', models.ManyToManyField(blank=True, help_text='Samples used in this method/procedure/process', related_name='%(app_label)s_%(class)s_samples_related', related_query_name='%(app_label)s_%(class)s_samples_related_query', to='lara_django_samples.sample')),
                ('status', models.ForeignKey(blank=True, help_text='state of the method/procedure/process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.itemstatus')),
                ('substance_instances', models.ManyToManyField(blank=True, help_text='S e.g. for chemical synthesis,', related_name='%(app_label)s_%(class)s_substances_related', related_query_name='%(app_label)s_%(class)s_substances_related_query', to='lara_django_substances_store.substanceinstance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderedProcessInstancesSubset',
            fields=[
                ('orderedprocessinstancessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of process instance in subset')),
                ('process_instance', models.ForeignKey(help_text='process instance in the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_instance_related', related_query_name='%(app_label)s_%(class)s_process_instance', to='lara_django_processes.processinstance')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.CreateModel(
            name='OrderedProcedureInstances',
            fields=[
                ('orderedprocedureinstances_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('order', models.IntegerField(help_text='order of procedure instance in process instance')),
                ('procedure_instance', models.ForeignKey(help_text='procedure instance in the process instance', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_instance_related', related_query_name='%(app_label)s_%(class)s_procedure_instance', to='lara_django_processes.procedureinstance')),
                ('process_instance', models.ForeignKey(help_text='process instance', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_instance_related', related_query_name='%(app_label)s_%(class)s_process_instance', to='lara_django_processes.processinstance')),
            ],
            options={
                'ordering': ('order',),
            },
        ),
        migrations.CreateModel(
            name='ProcessInstancesSubset',
            fields=[
                ('name_display', models.TextField(blank=True, help_text='display name of the subset')),
                ('name', models.TextField(blank=True, help_text='name of the subset')),
                ('description', models.TextField(blank=True, help_text='description of the subset', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='datetime of last modification of the selection', null=True)),
                ('processinstancessubset_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('entity', models.ForeignKey(blank=True, help_text='user who created the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_users_related', related_query_name='%(app_label)s_%(class)s_users_related_query', to='lara_django_people.entity')),
                ('group', models.ForeignKey(blank=True, help_text='group who created the subset', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_groups_related', related_query_name='%(app_label)s_%(class)s_groups_related_query', to='lara_django_people.group')),
                ('namespace', models.ForeignKey(blank=True, help_text='namespace of the subset', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_namespaces_related', related_query_name='%(app_label)s_%(class)s_namespaces_related_query', to='lara_django_base.namespace')),
                ('process_instances', models.ManyToManyField(blank=True, help_text='all process instances of a subset', related_name='%(app_label)s_%(class)s_process_instances_related', related_query_name='%(app_label)s_%(class)s_process_instances_related_query', through='lara_django_processes.OrderedProcessInstancesSubset', to='lara_django_processes.processinstance')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AddField(
            model_name='orderedprocessinstancessubset',
            name='process_instances_subset',
            field=models.ForeignKey(help_text='subset of process instances', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_processinstancessubset_related', related_query_name='%(app_label)s_%(class)s_processinstancessubset', to='lara_django_processes.processinstancessubset'),
        ),
        migrations.CreateModel(
            name='ProcessStep',
            fields=[
                ('orderedprocedures_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.TextField(blank=True, help_text='name of the step')),
                ('graph_reference', models.UUIDField(help_text='UUID of this process step in process workflow graph')),
                ('parameters', models.JSONField(blank=True, help_text='process step parameters', null=True)),
                ('parent_process', models.ForeignKey(help_text='process', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_parent_process_related', related_query_name='%(app_label)s_%(class)s_parent_process', to='lara_django_processes.process')),
                ('procedure', models.ForeignKey(help_text='procedure in the process, only one procedure or subprocess may be specified', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_related', related_query_name='%(app_label)s_%(class)s_procedure', to='lara_django_processes.procedure')),
                ('subprocess', models.ForeignKey(help_text='subprocess step in the process, only one procedure or subprocess may be specified', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_subprocess_related', related_query_name='%(app_label)s_%(class)s_subprocess', to='lara_django_processes.process')),
                ('step_class', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_step_classes_related', related_query_name='%(app_label)s_%(class)s_step_classes_related_query', to='lara_django_processes.processstepclass')),
            ],
        ),
        migrations.CreateModel(
            name='ProcessInstanceStep',
            fields=[
                ('processinstancestep_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('datetime_start', models.DateTimeField(blank=True, help_text='start datetime of step', null=True)),
                ('datetime_end', models.DateTimeField(blank=True, help_text='end datetime of step', null=True)),
                ('datetime_last_modified', models.DateTimeField(blank=True, help_text='date and time when data was last modified', null=True)),
                ('parameters', models.JSONField(blank=True, help_text='method/procedure/process parameters', null=True)),
                ('simulation', models.BooleanField(default=False, help_text='is this a simulation step?')),
                ('procedure_instance', models.ForeignKey(blank=True, help_text='reference to a procedure instance which handles execution of this step', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_instance_related', related_query_name='%(app_label)s_%(class)s_procedure_instance_related_query', to='lara_django_processes.procedureinstance')),
                ('process_instance', models.ForeignKey(help_text='reference to the process instance to which this step belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_instance_related', related_query_name='%(app_label)s_%(class)s_process_instance_related_query', to='lara_django_processes.processinstance')),
                ('status', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_status_related', related_query_name='%(app_label)s_%(class)s_status_related_query', to='lara_django_base.itemstatus')),
                ('process_step_base', models.ForeignKey(blank=True, help_text='reference to the process step of which this is an instance.', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_step_classes_related', related_query_name='%(app_label)s_%(class)s_step_classes_related_query', to='lara_django_processes.processstep')),
            ],
        ),
        migrations.CreateModel(
            name='ProcMethodClass',
            fields=[
                ('procmethodclass_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.TextField(help_text='name of the method class, ', unique=True)),
                ('iri', models.TextField(blank=True, help_text='International Resource Identifier - IRI: is used for semantic representation ', max_length=512, null=True, unique=True)),
                ('proc_method_schema', models.JSONField(blank=True, help_text='schema of the method/procedure/process class and their corresponding instances', null=True)),
                ('description', models.TextField(blank=True, help_text='description')),
                ('tags', models.ManyToManyField(blank=True, help_text='tags', related_name='%(app_label)s_%(class)s_tags_related', related_query_name='%(app_label)s_%(class)s_tags_related_query', to='lara_django_base.tag')),
            ],
            options={
                'verbose_name_plural': 'MethodClasses',
            },
        ),
        migrations.AddField(
            model_name='process',
            name='process_class',
            field=models.ForeignKey(blank=True, help_text='class of the process', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_process_classes_related', related_query_name='%(app_label)s_%(class)s_processes_class_related_query', to='lara_django_processes.procmethodclass'),
        ),
        migrations.AddField(
            model_name='procedure',
            name='procedure_class',
            field=models.ForeignKey(blank=True, help_text='class of the procedure', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_procedure_classes_related', related_query_name='%(app_label)s_%(class)s_procedure_classes_related_query', to='lara_django_processes.procmethodclass'),
        ),
        migrations.AddField(
            model_name='method',
            name='method_class',
            field=models.ForeignKey(blank=True, help_text='class of the method', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_method_classes_related', related_query_name='%(app_label)s_%(class)s_method_classes_related_query', to='lara_django_processes.procmethodclass'),
        ),
        migrations.AddIndex(
            model_name='extradata',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__a09087_gin'),
        ),
        migrations.AddConstraint(
            model_name='extradata',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_extradata_name_namespace_version_unique'),
        ),
        migrations.AddIndex(
            model_name='methodinstance',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__734c39_gin'),
        ),
        migrations.AddConstraint(
            model_name='methodinstance',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_methodinstance_namespace_name_version_unique'),
        ),
        migrations.AddConstraint(
            model_name='orderedmethodinstancessubset',
            constraint=models.UniqueConstraint(fields=('method_instance', 'method_instances_subset'), name='lara_django_processes_orderedmethodinstancessubset_method_instance_methodinstancessubset_unique'),
        ),
        migrations.AddConstraint(
            model_name='methodinstancessubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_methodinstancessubset_unique_name_namespace'),
        ),
        migrations.AddConstraint(
            model_name='orderedmethodssubset',
            constraint=models.UniqueConstraint(fields=('method', 'methods_subset'), name='lara_django_processes_orderedmethodssubset_method_methodssubset_unique'),
        ),
        migrations.AddConstraint(
            model_name='methodssubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_methodssubset_unique_name_namespace'),
        ),
        migrations.AddIndex(
            model_name='procedureinstance',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__562ab6_gin'),
        ),
        migrations.AddConstraint(
            model_name='procedureinstance',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_procedureinstance_namespace_name_version_unique'),
        ),
        migrations.AddConstraint(
            model_name='procedureinstancessubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_procedureinstancessubset_unique_name_namespace'),
        ),
        migrations.AddConstraint(
            model_name='orderedprocedureinstancessubset',
            constraint=models.UniqueConstraint(fields=('procedure_instance', 'procedure_instances_subset'), name='lara_django_processes_orderedprocedureinstancessubset_procedure_instance_procedureinstancessubset_unique'),
        ),
        migrations.AddConstraint(
            model_name='proceduressubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_proceduressubset_unique_name_namespace'),
        ),
        migrations.AddConstraint(
            model_name='orderedproceduressubset',
            constraint=models.UniqueConstraint(fields=('procedure', 'procedures_subset'), name='lara_django_processes_orderedproceduressubset_procedure_proceduressubset_unique'),
        ),
        migrations.AddConstraint(
            model_name='processessubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_processessubset_unique_name_namespace'),
        ),
        migrations.AddConstraint(
            model_name='orderedprocessessubset',
            constraint=models.UniqueConstraint(fields=('process', 'processes_subset'), name='lara_django_processes_orderedprocessessubset_process_processessubset_unique'),
        ),
        migrations.AddIndex(
            model_name='processinstance',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__22a39e_gin'),
        ),
        migrations.AddConstraint(
            model_name='processinstance',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_processinstance_namespace_name_version_unique'),
        ),
        migrations.AddConstraint(
            model_name='orderedprocedureinstances',
            constraint=models.UniqueConstraint(fields=('procedure_instance', 'process_instance'), name='lara_django_processes_orderedprocedureinstances_procedure_instance_process_instance_unique'),
        ),
        migrations.AddConstraint(
            model_name='processinstancessubset',
            constraint=models.UniqueConstraint(fields=('name', 'namespace'), name='lara_django_processes_processinstancessubset_unique_name_namespace'),
        ),
        migrations.AddConstraint(
            model_name='orderedprocessinstancessubset',
            constraint=models.UniqueConstraint(fields=('process_instance', 'process_instances_subset'), name='lara_django_processes_orderedprocessinstancessubset_process_instance_processinstancessubset_unique'),
        ),
        migrations.AddConstraint(
            model_name='processinstancestep',
            constraint=models.UniqueConstraint(fields=('process_instance', 'process_step_base'), name='lara_django_processes_processinstancestep_procedure_instance_name_unique'),
        ),
        migrations.AddConstraint(
            model_name='processstep',
            constraint=models.UniqueConstraint(fields=('procedure', 'graph_reference'), name='lara_django_processes_processstep_process_graph_ref_unique'),
        ),
        migrations.AddConstraint(
            model_name='processstep',
            constraint=models.UniqueConstraint(fields=('parent_process', 'name'), name='lara_django_processes_processstep_process_name_unique'),
        ),
        migrations.AddConstraint(
            model_name='processstep',
            constraint=models.CheckConstraint(condition=models.Q(('subprocess__isnull', True), ('procedure__isnull', True), _connector='OR'), name='lara_django_processes_processstep_only_subprocess_or_procedure'),
        ),
        migrations.AddIndex(
            model_name='procedure',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__bfec25_gin'),
        ),
        migrations.AddConstraint(
            model_name='procedure',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_procedure_namespace_name_version_unique'),
        ),
        migrations.AddIndex(
            model_name='method',
            index=django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='lara_django_search__f202e8_gin'),
        ),
        migrations.AddConstraint(
            model_name='method',
            constraint=models.UniqueConstraint(fields=('name', 'namespace', 'version'), name='lara_django_processes_method_namespace_name_version_unique'),
        ),
    ]
