# Generated by Django 2.1.10 on 2019-08-16 14:36

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Accessory',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model of the accessory')),
                ('acquired', models.DateField(blank=True, null=True, verbose_name='Date that this accessory was acquired')),
                ('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Purchase cost of the accessory')),
                ('lost', models.DateField(blank=True, null=True, verbose_name='Date that this accessory was lost')),
                ('lost_price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Sale price of the accessory')),
            ],
        ),
        migrations.CreateModel(
            name='AccessoryType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=45, unique=True, verbose_name='Type of accessory')),
            ],
        ),
        migrations.CreateModel(
            name='Archive',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Name of this archive')),
                ('max_width', models.IntegerField(blank=True, null=True, verbose_name='Maximum width of media that this archive can store')),
                ('max_height', models.IntegerField(blank=True, null=True, verbose_name='Maximum height of media that this archive can store')),
                ('location', models.CharField(blank=True, max_length=45, null=True, verbose_name='Location of this archive')),
                ('storage', models.CharField(blank=True, max_length=45, null=True, verbose_name='The type of storage used for this archive, e.g. box, folder, ringbinder, etc')),
                ('sealed', models.BooleanField(default=0, verbose_name='Whether or not this archive is sealed (closed to new additions)')),
            ],
        ),
        migrations.CreateModel(
            name='ArchiveType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=45, unique=True, verbose_name='Name of this type of archive')),
            ],
        ),
        migrations.CreateModel(
            name='Battery',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Common name of the battery')),
                ('voltage', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Nominal voltage of the battery')),
                ('chemistry', models.CharField(blank=True, max_length=45, null=True, verbose_name='Battery chemistry (e.g. Alkaline, Lithium, etc)')),
                ('other_names', models.CharField(blank=True, max_length=45, null=True, verbose_name='Alternative names for this kind of battery')),
            ],
        ),
        migrations.CreateModel(
            name='BodyType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=45, unique=True, verbose_name='Name of camera body type (e.g. SLR, compact, etc)')),
            ],
        ),
        migrations.CreateModel(
            name='BulkFilm',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('purchase_date', models.DateField(blank=True, null=True, verbose_name='Purchase date of this bulk roll')),
                ('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Purchase cost of this bulk roll')),
                ('source', models.CharField(blank=True, max_length=45, null=True, verbose_name='Place where this bulk roll was bought from')),
                ('batch', models.CharField(blank=True, max_length=45, null=True, verbose_name='Batch code of this bulk roll')),
                ('expiry', models.DateField(blank=True, null=True, verbose_name='Expiry date of this bulk roll')),
            ],
        ),
        migrations.CreateModel(
            name='Camera',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('acquired', models.DateField(blank=True, null=True, verbose_name='Date on which the camera was acquired')),
                ('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Price paid for this camera')),
                ('serial', models.CharField(blank=True, max_length=45, null=True, verbose_name='Serial number of the camera')),
                ('datecode', models.CharField(blank=True, max_length=45, null=True, verbose_name='Date code of the camera, if different from the serial number')),
                ('manufactured', models.IntegerField(blank=True, null=True, verbose_name='Year of manufacture of the camera')),
                ('own', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera is currently owned')),
                ('notes', models.CharField(blank=True, max_length=100, null=True, verbose_name='Freeform text field for extra notes')),
                ('lost', models.DateField(blank=True, null=True, verbose_name='Date on which the camera was lost/sold/etc')),
                ('lost_price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Price at which the camera was sold')),
                ('source', models.CharField(blank=True, max_length=150, null=True, verbose_name='Where the camera was acquired from')),
                ('condition_notes', models.CharField(blank=True, max_length=150, null=True, verbose_name='Description of condition')),
            ],
        ),
        migrations.CreateModel(
            name='CameraModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='The model name of the camera')),
                ('metering', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has built-in metering')),
                ('coupled_metering', models.BooleanField(blank=True, null=True, verbose_name='Whether the cameras meter is coupled automatically')),
                ('weight', models.IntegerField(blank=True, null=True, verbose_name='Weight of the camera body (without lens or batteries) in grammes (g)')),
                ('introduced', models.IntegerField(blank=True, null=True, verbose_name='Year in which the camera model was introduced')),
                ('discontinued', models.IntegerField(blank=True, null=True, verbose_name='Year in which the camera model was discontinued')),
                ('shutter_model', models.CharField(blank=True, max_length=45, null=True, verbose_name='Model of shutter')),
                ('cable_release', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has the facility for a remote cable release')),
                ('viewfinder_coverage', models.IntegerField(blank=True, null=True, verbose_name='Percentage coverage of the viewfinder. Mostly applicable to SLRs.')),
                ('power_drive', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has integrated motor drive')),
                ('continuous_fps', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='The maximum rate at which the camera can shoot, in frames per second')),
                ('video', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera can take video/movie')),
                ('digital', models.BooleanField(blank=True, default=0, null=True, verbose_name='Whether this is a digital camera')),
                ('fixed_mount', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has a fixed lens')),
                ('battery_qty', models.IntegerField(blank=True, null=True, verbose_name='Quantity of batteries needed')),
                ('notes', models.CharField(blank=True, max_length=100, null=True, verbose_name='Freeform text field for extra notes')),
                ('bulb', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera supports bulb (B) exposure')),
                ('time', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera supports time (T) exposure')),
                ('min_iso', models.IntegerField(blank=True, null=True, verbose_name='Minimum ISO the camera will accept for metering')),
                ('max_iso', models.IntegerField(blank=True, null=True, verbose_name='Maximum ISO the camera will accept for metering')),
                ('af_points', models.IntegerField(blank=True, null=True, verbose_name='Number of autofocus points')),
                ('int_flash', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has an integrated flash')),
                ('int_flash_gn', models.IntegerField(blank=True, null=True, verbose_name='Guide number of internal flash')),
                ('ext_flash', models.BooleanField(blank=True, null=True, verbose_name=' Whether the camera supports an external flash')),
                ('pc_sync', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has a PC sync socket for flash')),
                ('hotshoe', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has a hotshoe')),
                ('coldshoe', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has a coldshoe or accessory shoe')),
                ('meter_min_ev', models.IntegerField(blank=True, null=True, verbose_name='Lowest EV/LV the built-in meter supports')),
                ('meter_max_ev', models.IntegerField(blank=True, null=True, verbose_name='Highest EV/LV the built-in meter supports')),
                ('dof_preview', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has depth of field preview')),
                ('tripod', models.BooleanField(blank=True, null=True, verbose_name='Whether the camera has a tripod bush')),
                ('battery_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Battery')),
                ('body_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.BodyType')),
            ],
        ),
        migrations.CreateModel(
            name='Condition',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.CharField(max_length=6, verbose_name='Condition shortcode (e.g. EXC)')),
                ('name', models.CharField(max_length=45, verbose_name='Full name of condition (e.g. Excellent)')),
                ('min_rating', models.IntegerField(verbose_name='The lowest percentage rating that encompasses this condition')),
                ('max_rating', models.IntegerField(verbose_name='The highest percentage rating that encompasses this condition')),
                ('description', models.CharField(max_length=300, verbose_name='Longer description of condition')),
            ],
        ),
        migrations.CreateModel(
            name='Developer',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of the developer')),
                ('for_paper', models.BooleanField(blank=True, null=True, verbose_name='Whether this developer can be used with paper')),
                ('for_film', models.BooleanField(blank=True, null=True, verbose_name='Whether this developer can be used with film')),
                ('chemistry', models.CharField(blank=True, max_length=45, null=True, verbose_name='The key chemistry on which this developer is based (e.g. phenidone)')),
            ],
        ),
        migrations.CreateModel(
            name='Enlarger',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Name/model of the enlarger')),
                ('acquired', models.DateField(blank=True, null=True, verbose_name='Date on which the enlarger was acquired')),
                ('lost', models.DateField(blank=True, null=True, verbose_name='Date on which the enlarger was lost/sold')),
                ('introduced', models.IntegerField(blank=True, null=True, verbose_name='Year in which the enlarger was introduced')),
                ('discontinued', models.IntegerField(blank=True, null=True, verbose_name='Year in which the enlarger was discontinued')),
                ('cost', models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True, verbose_name='Purchase cost of the enlarger')),
                ('lost_price', models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True, verbose_name='Sale price of the enlarger')),
            ],
        ),
        migrations.CreateModel(
            name='ExposureProgram',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of exposure program as defined by EXIF tag ExposureProgram')),
            ],
        ),
        migrations.CreateModel(
            name='Film',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('exposed_at', models.IntegerField(verbose_name='ISO at which the film was exposed')),
                ('date_loaded', models.DateField(verbose_name='Date when the film was loaded into a camera')),
                ('date_processed', models.DateField(verbose_name='Date when the film was processed')),
                ('title', models.CharField(max_length=150, verbose_name='Title of the film')),
                ('frames', models.IntegerField(verbose_name='Expected (not actual) number of frames from the film')),
                ('directory', models.CharField(max_length=100, verbose_name='Name of the directory that contains the scanned images from this film')),
                ('dev_uses', models.IntegerField(verbose_name='Number of previous uses of the developer')),
                ('dev_time', models.DurationField(verbose_name='Duration of development')),
                ('dev_temp', models.DecimalField(decimal_places=1, max_digits=3, verbose_name='Temperature of development')),
                ('dev_n', models.IntegerField(verbose_name='Number of the Push/Pull rating of the film, e.g. N+1, N-2')),
                ('development_notes', models.CharField(max_length=200, verbose_name='Extra freeform notes about the development process')),
                ('bulk_film_loaded', models.DateField(verbose_name='Date that this film was cut from a bulk roll')),
                ('film_batch', models.CharField(max_length=45, verbose_name='Batch number of the film')),
                ('expiry_date', models.DateField(verbose_name='Expiry date of the film')),
                ('purchase_date', models.DateField(verbose_name='Date this film was purchased')),
                ('price', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='Price paid for this film')),
                ('processed_by', models.CharField(max_length=45, verbose_name='Person or place that processed this film')),
                ('archive', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Archive')),
                ('bulk_film', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.BulkFilm')),
                ('camera', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Camera')),
                ('developer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Developer')),
            ],
        ),
        migrations.CreateModel(
            name='FilmStock',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of the filmstock')),
                ('iso', models.IntegerField(blank=True, null=True, verbose_name='Nominal ISO speed of the film')),
                ('colour', models.BooleanField(blank=True, null=True, verbose_name='Whether the film is colour')),
                ('panchromatic', models.BooleanField(blank=True, null=True, verbose_name='Whether this film is panchromatic')),
            ],
        ),
        migrations.CreateModel(
            name='Filter',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=45, verbose_name='Filter type (e.g. Red, CPL, UV)')),
                ('thread', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Diameter of screw thread in mm')),
                ('attenuation', models.DecimalField(blank=True, decimal_places=1, max_digits=3, null=True, verbose_name='Attenuation of this filter in decimal stops')),
                ('qty', models.IntegerField(blank=True, default=1, null=True, verbose_name='Quantity of these filters available')),
            ],
        ),
        migrations.CreateModel(
            name='FilterAdapter',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('camera_thread', models.DecimalField(decimal_places=1, max_digits=3, verbose_name='Diameter of camera-facing screw thread in mm')),
                ('filter_thread', models.DecimalField(decimal_places=1, max_digits=3, verbose_name='Diameter of filter-facing screw thread in mm')),
            ],
        ),
        migrations.CreateModel(
            name='Flash',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model name/number of the flash')),
                ('guide_number', models.IntegerField(blank=True, null=True, verbose_name='Guide number of the flash')),
                ('gn_info', models.CharField(blank=True, max_length=45, null=True, verbose_name='Extra freeform info about how the guide number was measured')),
                ('battery_powered', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash takes batteries')),
                ('pc_sync', models.BooleanField(blank=True, null=True, verbose_name='Whether the flash has a PC sync socket')),
                ('hot_shoe', models.BooleanField(blank=True, null=True, verbose_name='Whether the flash has a hot shoe connection')),
                ('light_stand', models.BooleanField(blank=True, null=True, verbose_name='Whether the flash can be used on a light stand')),
                ('battery_qty', models.IntegerField(blank=True, null=True, verbose_name='Quantity of batteries needed in this flash')),
                ('manual_control', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash offers manual power control')),
                ('swivel_head', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash has a horizontal swivel head')),
                ('tilt_head', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash has a vertical tilt head')),
                ('zoom', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash can zoom')),
                ('dslr_safe', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash is safe to use with a digital camera')),
                ('ttl', models.BooleanField(blank=True, null=True, verbose_name='Whether this flash supports TTL metering')),
                ('trigger_voltage', models.DecimalField(blank=True, decimal_places=1, max_digits=5, null=True, verbose_name='Trigger voltage of the flash, in Volts')),
                ('own', models.BooleanField(blank=True, null=True, verbose_name='Whether we currently own this flash')),
                ('acquired', models.DateField(blank=True, null=True, verbose_name='Date this flash was acquired')),
                ('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Purchase cost of this flash')),
                ('battery_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Battery')),
            ],
        ),
        migrations.CreateModel(
            name='FlashProtocol',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of the flash protocol')),
            ],
        ),
        migrations.CreateModel(
            name='FocusType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of focus type')),
            ],
        ),
        migrations.CreateModel(
            name='Format',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('format', models.CharField(max_length=45, unique=True, verbose_name='The name of this film/sensor format')),
                ('digital', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a digital format')),
            ],
        ),
        migrations.CreateModel(
            name='Lens',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('serial', models.CharField(blank=True, max_length=45, null=True, verbose_name='Serial number of this lens')),
                ('date_code', models.CharField(blank=True, max_length=45, null=True, verbose_name='Date code of this lens, if different from the serial number')),
                ('manufactured', models.IntegerField(blank=True, null=True, verbose_name='Year in which this specific lens was manufactured')),
                ('acquired', models.DateField(blank=True, null=True, verbose_name='Date on which this lens was acquired')),
                ('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Price paid for this lens')),
                ('notes', models.CharField(blank=True, max_length=45, null=True, verbose_name='Freeform notes field')),
                ('own', models.BooleanField(blank=True, null=True, verbose_name='Whether we currently own this lens')),
                ('lost', models.DateField(blank=True, null=True, verbose_name='Date on which lens was lost/sold/disposed')),
                ('lost_price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Price for which the lens was sold')),
                ('source', models.CharField(blank=True, max_length=150, null=True, verbose_name='Place where the lens was acquired from')),
                ('condition_notes', models.CharField(blank=True, max_length=150, null=True, verbose_name='Description of condition')),
                ('condition', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Condition')),
            ],
        ),
        migrations.CreateModel(
            name='LensModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model name of this lens')),
                ('zoom', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a zoom lens')),
                ('min_focal_length', models.IntegerField(blank=True, null=True, verbose_name='Shortest focal length of this lens, in mm')),
                ('max_focal_length', models.IntegerField(blank=True, null=True, verbose_name='Longest focal length of this lens, in mm')),
                ('closest_focus', models.IntegerField(blank=True, null=True, verbose_name='The closest focus possible with this lens, in cm')),
                ('max_aperture', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Maximum (widest) aperture available on this lens (numerical part only, e.g. 2.8)')),
                ('min_aperture', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Minimum (narrowest) aperture available on this lens (numerical part only, e.g. 22)')),
                ('elements', models.IntegerField(blank=True, null=True, verbose_name='Number of optical lens elements')),
                ('groups', models.IntegerField(blank=True, null=True, verbose_name='Number of optical groups')),
                ('weight', models.IntegerField(blank=True, null=True, verbose_name='Weight of this lens, in grammes (g)')),
                ('nominal_min_angle_diag', models.IntegerField(blank=True, null=True, verbose_name='Nominal minimum diagonal field of view from manufacturer specs')),
                ('nominal_max_angle_diag', models.IntegerField(blank=True, null=True, verbose_name='Nominal maximum diagonal field of view from manufacturer specs')),
                ('aperture_blades', models.IntegerField(blank=True, null=True, verbose_name='Number of aperture blades')),
                ('autofocus', models.BooleanField(blank=True, null=True, verbose_name='Whether this lens has autofocus capability')),
                ('filter_thread', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Diameter of lens filter thread, in mm')),
                ('magnification', models.DecimalField(blank=True, decimal_places=3, max_digits=5, null=True, verbose_name='Maximum magnification ratio of the lens, expressed like 0.765')),
                ('url', models.URLField(blank=True, null=True, verbose_name='URL to more information about this lens')),
                ('introduced', models.IntegerField(blank=True, null=True, verbose_name='Year in which this lens model was introduced')),
                ('discontinued', models.IntegerField(blank=True, null=True, verbose_name='Year in which this lens model was discontinued')),
                ('fixed_mount', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a fixed lens (i.e. on a compact camera)')),
                ('notes', models.CharField(blank=True, max_length=100, null=True, verbose_name='Freeform notes field')),
                ('coating', models.CharField(blank=True, max_length=45, null=True, verbose_name='Notes about the lens coating type')),
                ('hood', models.CharField(blank=True, max_length=45, null=True, verbose_name='Model number of the compatible lens hood')),
                ('exif_lenstype', models.CharField(blank=True, max_length=45, null=True, verbose_name='EXIF LensID number, if this lens has one officially registered. See documentation at http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/')),
                ('rectilinear', models.BooleanField(blank=True, default=1, null=True, verbose_name='Whether this is a rectilinear lens')),
                ('length', models.IntegerField(blank=True, null=True, verbose_name='Length of lens in mm')),
                ('diameter', models.IntegerField(blank=True, null=True, verbose_name='Width of lens in mm')),
                ('image_circle', models.IntegerField(blank=True, null=True, verbose_name='Diameter of image circle projected by lens, in mm')),
                ('formula', models.CharField(blank=True, max_length=45, null=True, verbose_name='Name of the type of lens formula (e.g. Tessar)')),
                ('shutter_model', models.CharField(blank=True, max_length=45, null=True, verbose_name='Name of the integrated shutter, if any')),
            ],
        ),
        migrations.CreateModel(
            name='LightMeter',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model name or number of the light meter')),
                ('reflected', models.BooleanField(blank=True, null=True, verbose_name='Whether the meter is capable of reflected-light metering')),
                ('incident', models.BooleanField(blank=True, null=True, verbose_name='Whether the meter is capable of incident-light metering')),
                ('flash', models.BooleanField(blank=True, null=True, verbose_name='Whether the meter is capable of flash metering')),
                ('spot', models.BooleanField(blank=True, null=True, verbose_name='Whether the meter is capable of spot metering')),
                ('min_asa', models.IntegerField(blank=True, null=True, verbose_name='Minimum ISO/ASA that this meter is capable of handling')),
                ('max_asa', models.IntegerField(blank=True, null=True, verbose_name='Maximum ISO/ASA that this meter is capable of handling')),
                ('min_lv', models.IntegerField(blank=True, null=True, verbose_name='Minimum light value (LV/EV) that this meter is capable of handling')),
                ('max_lv', models.IntegerField(blank=True, null=True, verbose_name='Maximum light value (LV/EV) that this meter is capable of handling')),
            ],
        ),
        migrations.CreateModel(
            name='Manufacturer',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Name of the manufacturer')),
                ('city', models.CharField(blank=True, max_length=45, null=True, verbose_name='City in which the manufacturer is based')),
                ('country', models.CharField(blank=True, max_length=45, null=True, verbose_name='Country in which the manufacturer is based')),
                ('url', models.URLField(blank=True, max_length=45, null=True, verbose_name='URL to the manufacturers main website')),
                ('founded', models.DateField(blank=True, null=True, verbose_name='Year in which the manufacturer was founded')),
                ('dissolved', models.DateField(blank=True, null=True, verbose_name='Year in which the manufacturer was dissolved')),
            ],
        ),
        migrations.CreateModel(
            name='MeteringMode',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of metering mode as defined by EXIF tag MeteringMode')),
            ],
        ),
        migrations.CreateModel(
            name='MeteringType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of the metering technology (e.g. Selenium)')),
            ],
        ),
        migrations.CreateModel(
            name='Mount',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('mount', models.CharField(max_length=45, unique=True, verbose_name='Name of this lens mount (e.g. Canon FD)')),
                ('fixed', models.BooleanField(default=0, verbose_name='Whether this is a fixed (non-interchangable) lens mount')),
                ('shutter_in_lens', models.BooleanField(blank=True, default=0, null=True, verbose_name='Whether this lens mount system incorporates the shutter models.IntegerFieldo the lens')),
                ('type', models.CharField(blank=True, max_length=25, null=True, verbose_name='The physical mount type of this lens mount (e.g. Screw, Bayonet, etc)')),
                ('purpose', models.CharField(blank=True, max_length=25, null=True, verbose_name='The intended purpose of this lens mount (e.g. camera, enlarger, projector)')),
                ('notes', models.CharField(blank=True, max_length=100, null=True, verbose_name='Freeform notes field')),
                ('digital_only', models.BooleanField(blank=True, default=0, null=True, verbose_name='Whether this mount is models.intended only for digital cameras')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer')),
            ],
        ),
        migrations.CreateModel(
            name='Movie',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=45, verbose_name='Title of this movie')),
                ('description', models.CharField(blank=True, max_length=200, null=True, verbose_name='Description of this movie')),
                ('sound', models.BooleanField(blank=True, null=True, verbose_name='Whether this movie has sound')),
                ('fps', models.IntegerField(blank=True, null=True, verbose_name='Frame rate of this movie, in fps')),
                ('feet', models.IntegerField(blank=True, null=True, verbose_name='Length of this movie in feet')),
                ('duration', models.DurationField(blank=True, null=True, verbose_name='Duration of this movie')),
                ('date_loaded', models.DateField(blank=True, null=True, verbose_name='Date that the filmstock was loaded into a camera')),
                ('date_shot', models.DateField(blank=True, null=True, verbose_name='Date on which this movie was shot')),
                ('date_processed', models.DateField(blank=True, null=True, verbose_name='Date on which this movie was processed')),
                ('camera', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Camera')),
                ('filmstock', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.FilmStock')),
                ('format', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Format')),
                ('lens', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Lens')),
            ],
        ),
        migrations.CreateModel(
            name='Negative',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('frame', models.CharField(max_length=8, verbose_name='Frame number or code of this negative')),
                ('caption', models.CharField(blank=True, max_length=150, null=True, verbose_name='Caption of this picture')),
                ('date', models.DateTimeField(blank=True, null=True, verbose_name='Date & time on which this picture was taken')),
                ('aperture', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Aperture used to take this picture (numerical part only)')),
                ('notes', models.CharField(blank=True, max_length=200, null=True, verbose_name='Extra freeform notes about this exposure')),
                ('focal_length', models.IntegerField(blank=True, null=True, verbose_name='If a zoom lens was used, specify the focal length of the lens')),
                ('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, verbose_name='Latitude of the location where the picture was taken')),
                ('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, verbose_name='Longitude of the location where the picture was taken')),
                ('flash', models.BooleanField(blank=True, null=True, verbose_name='Whether flash was used')),
                ('exposure_program', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.ExposureProgram')),
                ('film', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Film')),
                ('filter', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Filter')),
                ('lens', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Lens')),
                ('metering_mode', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.MeteringMode')),
            ],
        ),
        migrations.CreateModel(
            name='NegativeSize',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Common name of the negative size (e.g. 35mm, 6x7, etc)')),
                ('width', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Width of the negative size in mm')),
                ('height', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Height of the negative size in mm')),
                ('crop_factor', models.DecimalField(blank=True, decimal_places=2, max_digits=4, null=True, verbose_name='Crop factor of this negative size')),
                ('area', models.IntegerField(blank=True, null=True, verbose_name='Area of this negative size in sq. mm')),
                ('aspect_ratio', models.DecimalField(blank=True, decimal_places=2, max_digits=4, null=True, verbose_name='Aspect ratio of this negative size, expressed as a single decimal (e.g. 3:2 is expressed as 1.5)')),
            ],
        ),
        migrations.CreateModel(
            name='Order',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('width', models.IntegerField(blank=True, null=True, verbose_name='Width of print to be made')),
                ('height', models.IntegerField(blank=True, null=True, verbose_name='Height of print to be made')),
                ('added', models.DateField(blank=True, null=True, verbose_name='Date that the order was placed')),
                ('printed', models.BooleanField(blank=True, null=True, verbose_name='Whether the print has been made')),
                ('negative', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Negative')),
            ],
        ),
        migrations.CreateModel(
            name='PaperStock',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of this paper stock')),
                ('resin_coated', models.BooleanField(blank=True, null=True, verbose_name='Whether the paper is resin-coated')),
                ('tonable', models.BooleanField(blank=True, null=True, verbose_name='Whether this paper accepts chemical toning')),
                ('colour', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a colour paper')),
                ('finish', models.CharField(blank=True, max_length=25, null=True, verbose_name='The finish of the paper surface')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer')),
            ],
        ),
        migrations.CreateModel(
            name='Person',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Name of the photographer')),
            ],
        ),
        migrations.CreateModel(
            name='Print',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField(blank=True, null=True, verbose_name='The date that the print was made')),
                ('height', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Height of the print in inches')),
                ('width', models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, verbose_name='Width of the print in inches')),
                ('aperture', models.DecimalField(blank=True, decimal_places=1, max_digits=3, null=True, verbose_name='Aperture used to make this print (numerical part only, e.g. 5.6)')),
                ('exposure_time', models.DurationField(blank=True, null=True, verbose_name='Exposure time of this print')),
                ('filtration_grade', models.DecimalField(blank=True, decimal_places=1, max_digits=2, null=True, verbose_name='Contrast grade of paper used')),
                ('development_time', models.DurationField(blank=True, null=True, verbose_name='Development time of this print')),
                ('bleach_time', models.DurationField(blank=True, null=True, verbose_name='Duration of bleaching')),
                ('toner_dilution', models.CharField(blank=True, max_length=8, null=True, verbose_name='Dilution of the first toner used to make this print')),
                ('toner_time', models.DurationField(blank=True, null=True, verbose_name='Duration of first toning')),
                ('own', models.BooleanField(blank=True, null=True, verbose_name='Whether we currently own this print')),
                ('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='The place where this print is currently')),
                ('sold_price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Sale price of the print')),
                ('fine', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a fine print')),
                ('notes', models.CharField(blank=True, max_length=200, null=True, verbose_name='Freeform notes about this print, e.g. dodging, burning & complex toning')),
                ('archive', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Archive')),
                ('developer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Developer')),
                ('enlarger', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Enlarger')),
                ('lens', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Lens')),
                ('negative', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Negative')),
                ('paper_stock', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.PaperStock')),
                ('printer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Person')),
            ],
        ),
        migrations.CreateModel(
            name='Process',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=25, unique=True, verbose_name='Name of this developmenmt process (e.g. C-41, E-6)')),
                ('colour', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a colour process')),
                ('positive', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a positive/reversal process')),
            ],
        ),
        migrations.CreateModel(
            name='Projector',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model name of this projector')),
                ('own', models.BooleanField(blank=True, null=True, verbose_name='Whether we currently own this projector')),
                ('cine', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a cine (movie) projector')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer')),
                ('mount', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Mount')),
                ('negative_size', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.NegativeSize')),
            ],
        ),
        migrations.CreateModel(
            name='Repair',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField(blank=True, null=True, verbose_name='The date of the repair')),
                ('summary', models.CharField(max_length=100, verbose_name='Brief summary of the repair')),
                ('description', models.CharField(blank=True, max_length=500, null=True, verbose_name='Longer description of the repair')),
                ('camera', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Camera')),
                ('lens', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Lens')),
            ],
        ),
        migrations.CreateModel(
            name='Scan',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('filename', models.CharField(max_length=128, verbose_name='Filename of the scan')),
                ('date', models.DateField(blank=True, null=True, verbose_name='Date that this scan was made')),
                ('colour', models.BooleanField(blank=True, null=True, verbose_name='Whether this is a colour image')),
                ('width', models.IntegerField(blank=True, null=True, verbose_name='Width of the scanned image in pixels')),
                ('height', models.IntegerField(blank=True, null=True, verbose_name='Height of the scanned image in pixels')),
                ('negative', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Negative')),
                ('print', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Print')),
            ],
        ),
        migrations.CreateModel(
            name='Series',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, unique=True, verbose_name='Name of this collection, e.g. Canon FD SLRs')),
            ],
        ),
        migrations.CreateModel(
            name='ShutterSpeed',
            fields=[
                ('shutter_speed', models.CharField(max_length=10, primary_key=True, serialize=False, verbose_name='Shutter speed in fractional notation, e.g. 1/250')),
                ('duration', models.DecimalField(decimal_places=5, max_digits=9, verbose_name='Shutter speed in models.DecimalField notation, e.g. 0.04')),
            ],
        ),
        migrations.CreateModel(
            name='ShutterType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=45, unique=True, verbose_name='Name of the shutter type (e.g. Focal plane, Leaf, etc)')),
            ],
        ),
        migrations.CreateModel(
            name='Teleconverter',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('model', models.CharField(max_length=45, verbose_name='Model name of this teleconverter')),
                ('factor', models.DecimalField(blank=True, decimal_places=2, max_digits=4, null=True, verbose_name='Magnification factor of this teleconverter (numerical part only, e.g. 1.4)')),
                ('elements', models.IntegerField(blank=True, null=True, verbose_name='Number of optical elements used in this teleconverter')),
                ('groups', models.IntegerField(blank=True, null=True, verbose_name='Number of optical groups used in this teleconverter')),
                ('multicoated', models.BooleanField(blank=True, null=True, verbose_name='Whether this teleconverter is multi-coated')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer')),
                ('mount', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Mount')),
            ],
        ),
        migrations.CreateModel(
            name='Toner',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=45, verbose_name='Name of the toner')),
                ('formulation', models.CharField(blank=True, max_length=45, null=True, verbose_name='Chemical formulation of the toner')),
                ('stock_dilution', models.CharField(blank=True, max_length=10, null=True, verbose_name='Stock dilution of the toner')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer')),
            ],
        ),
        migrations.AddField(
            model_name='print',
            name='toner',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Toner'),
        ),
        migrations.AddField(
            model_name='order',
            name='print',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Print'),
        ),
        migrations.AddField(
            model_name='order',
            name='recipient',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Person'),
        ),
        migrations.AddField(
            model_name='negative',
            name='photographer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Person'),
        ),
        migrations.AddField(
            model_name='negative',
            name='shutter_speed',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.ShutterSpeed'),
        ),
        migrations.AddField(
            model_name='negative',
            name='teleconverter',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Teleconverter'),
        ),
        migrations.AddField(
            model_name='movie',
            name='process',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Process'),
        ),
        migrations.AddField(
            model_name='lightmeter',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='lightmeter',
            name='metering_type',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.MeteringType'),
        ),
        migrations.AddField(
            model_name='lensmodel',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='lensmodel',
            name='mount',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Mount'),
        ),
        migrations.AddField(
            model_name='lensmodel',
            name='negative_size',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.NegativeSize'),
        ),
        migrations.AddField(
            model_name='lensmodel',
            name='series',
            field=models.ManyToManyField(blank=True, to='schema.Series'),
        ),
        migrations.AddField(
            model_name='lens',
            name='lensmodel',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.LensModel'),
        ),
        migrations.AddField(
            model_name='format',
            name='negative_size',
            field=models.ManyToManyField(blank=True, to='schema.NegativeSize'),
        ),
        migrations.AddField(
            model_name='flashprotocol',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='flash',
            name='flash_protocol',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.FlashProtocol'),
        ),
        migrations.AddField(
            model_name='flash',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='filter',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='filmstock',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='filmstock',
            name='process',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Process'),
        ),
        migrations.AddField(
            model_name='film',
            name='filmstock',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.FilmStock'),
        ),
        migrations.AddField(
            model_name='film',
            name='format',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Format'),
        ),
        migrations.AddField(
            model_name='enlarger',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='enlarger',
            name='negative_size',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.NegativeSize'),
        ),
        migrations.AddField(
            model_name='developer',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='exposure_programs',
            field=models.ManyToManyField(blank=True, to='schema.ExposureProgram'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='flash_metering',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.FlashProtocol'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='focus_type',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.FocusType'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='format',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Format'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='lensmodel',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.LensModel'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='metering_modes',
            field=models.ManyToManyField(blank=True, to='schema.MeteringMode'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='metering_type',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.MeteringType'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='mount',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Mount'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='negative_size',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.NegativeSize'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='series',
            field=models.ManyToManyField(blank=True, to='schema.Series'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='shutter_speeds',
            field=models.ManyToManyField(blank=True, to='schema.ShutterSpeed'),
        ),
        migrations.AddField(
            model_name='cameramodel',
            name='shutter_type',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.ShutterType'),
        ),
        migrations.AddField(
            model_name='camera',
            name='cameramodel',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.CameraModel'),
        ),
        migrations.AddField(
            model_name='camera',
            name='condition',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Condition'),
        ),
        migrations.AddField(
            model_name='camera',
            name='lens',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Lens'),
        ),
        migrations.AddField(
            model_name='bulkfilm',
            name='filmstock',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.FilmStock'),
        ),
        migrations.AddField(
            model_name='bulkfilm',
            name='format',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.Format'),
        ),
        migrations.AddField(
            model_name='archive',
            name='type',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.ArchiveType'),
        ),
        migrations.AddField(
            model_name='accessory',
            name='manufacturer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schema.Manufacturer'),
        ),
        migrations.AddField(
            model_name='accessory',
            name='type',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='schema.AccessoryType'),
        ),
    ]
