File indexing completed on 2026-04-27 07:41:44
0001
0002
0003 import django.core.validators
0004 from django.db import migrations, models
0005 import django.db.models.deletion
0006
0007
0008 class Migration(migrations.Migration):
0009
0010 initial = True
0011
0012 dependencies = [
0013 ]
0014
0015 operations = [
0016 migrations.CreateModel(
0017 name='EvgenTag',
0018 fields=[
0019 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0020 ('tag_number', models.IntegerField(unique=True)),
0021 ('tag_label', models.CharField(max_length=10, unique=True)),
0022 ('status', models.CharField(choices=[('draft', 'Draft'), ('locked', 'Locked')], default='draft', max_length=10)),
0023 ('description', models.TextField(blank=True, default='')),
0024 ('parameters', models.JSONField(default=dict)),
0025 ('created_by', models.CharField(max_length=100)),
0026 ('created_at', models.DateTimeField(auto_now_add=True)),
0027 ('updated_at', models.DateTimeField(auto_now=True)),
0028 ],
0029 options={
0030 'db_table': 'pcs_evgen_tag',
0031 'ordering': ['tag_number'],
0032 },
0033 ),
0034 migrations.CreateModel(
0035 name='PhysicsCategory',
0036 fields=[
0037 ('digit', models.PositiveSmallIntegerField(help_text='Single digit 1-9. Physics tag numbers = digit * 1000 + N.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(9)])),
0038 ('name', models.CharField(max_length=100, unique=True)),
0039 ('description', models.TextField(blank=True, default='')),
0040 ('created_by', models.CharField(max_length=100)),
0041 ('created_at', models.DateTimeField(auto_now_add=True)),
0042 ],
0043 options={
0044 'verbose_name_plural': 'physics categories',
0045 'db_table': 'pcs_physics_category',
0046 'ordering': ['digit'],
0047 },
0048 ),
0049 migrations.CreateModel(
0050 name='RecoTag',
0051 fields=[
0052 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0053 ('tag_number', models.IntegerField(unique=True)),
0054 ('tag_label', models.CharField(max_length=10, unique=True)),
0055 ('status', models.CharField(choices=[('draft', 'Draft'), ('locked', 'Locked')], default='draft', max_length=10)),
0056 ('description', models.TextField(blank=True, default='')),
0057 ('parameters', models.JSONField(default=dict)),
0058 ('created_by', models.CharField(max_length=100)),
0059 ('created_at', models.DateTimeField(auto_now_add=True)),
0060 ('updated_at', models.DateTimeField(auto_now=True)),
0061 ],
0062 options={
0063 'db_table': 'pcs_reco_tag',
0064 'ordering': ['tag_number'],
0065 },
0066 ),
0067 migrations.CreateModel(
0068 name='SimuTag',
0069 fields=[
0070 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0071 ('tag_number', models.IntegerField(unique=True)),
0072 ('tag_label', models.CharField(max_length=10, unique=True)),
0073 ('status', models.CharField(choices=[('draft', 'Draft'), ('locked', 'Locked')], default='draft', max_length=10)),
0074 ('description', models.TextField(blank=True, default='')),
0075 ('parameters', models.JSONField(default=dict)),
0076 ('created_by', models.CharField(max_length=100)),
0077 ('created_at', models.DateTimeField(auto_now_add=True)),
0078 ('updated_at', models.DateTimeField(auto_now=True)),
0079 ],
0080 options={
0081 'db_table': 'pcs_simu_tag',
0082 'ordering': ['tag_number'],
0083 },
0084 ),
0085 migrations.CreateModel(
0086 name='PhysicsTag',
0087 fields=[
0088 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0089 ('tag_number', models.IntegerField(unique=True)),
0090 ('tag_label', models.CharField(max_length=10, unique=True)),
0091 ('status', models.CharField(choices=[('draft', 'Draft'), ('locked', 'Locked')], default='draft', max_length=10)),
0092 ('description', models.TextField(blank=True, default='')),
0093 ('parameters', models.JSONField(default=dict)),
0094 ('created_by', models.CharField(max_length=100)),
0095 ('created_at', models.DateTimeField(auto_now_add=True)),
0096 ('updated_at', models.DateTimeField(auto_now=True)),
0097 ('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='tags', to='pcs.physicscategory')),
0098 ],
0099 options={
0100 'db_table': 'pcs_physics_tag',
0101 'ordering': ['tag_number'],
0102 },
0103 ),
0104 migrations.CreateModel(
0105 name='Dataset',
0106 fields=[
0107 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0108 ('dataset_name', models.CharField(max_length=255)),
0109 ('scope', models.CharField(default='group.EIC', max_length=100)),
0110 ('detector_version', models.CharField(max_length=50)),
0111 ('detector_config', models.CharField(max_length=100)),
0112 ('block_num', models.PositiveIntegerField(default=1)),
0113 ('blocks', models.PositiveIntegerField(default=1)),
0114 ('did', models.CharField(max_length=300, unique=True)),
0115 ('file_count', models.IntegerField(default=0)),
0116 ('data_size', models.BigIntegerField(default=0)),
0117 ('description', models.TextField(blank=True, default='')),
0118 ('metadata', models.JSONField(blank=True, null=True)),
0119 ('created_by', models.CharField(max_length=100)),
0120 ('created_at', models.DateTimeField(auto_now_add=True)),
0121 ('evgen_tag', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='datasets', to='pcs.evgentag')),
0122 ('physics_tag', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='datasets', to='pcs.physicstag')),
0123 ('reco_tag', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='datasets', to='pcs.recotag')),
0124 ('simu_tag', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='datasets', to='pcs.simutag')),
0125 ],
0126 options={
0127 'db_table': 'pcs_dataset',
0128 'ordering': ['-created_at'],
0129 'unique_together': {('dataset_name', 'block_num')},
0130 },
0131 ),
0132 ]