# Generated by Django 2.1.4 on 2023-06-27 09:25

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='DeviceUser',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('user_tag', models.IntegerField(choices=[(1, '专业用户'), (2, '销售用户'), (3, '普通用户')], default=3, verbose_name='用户分类')),
                ('uid', models.PositiveIntegerField(default=0, unique=True)),
                ('role_id', models.PositiveIntegerField(default=0)),
                ('mobile', models.CharField(default='', max_length=15)),
                ('username_change_times', models.PositiveIntegerField(default=0)),
                ('email', models.EmailField(default='', max_length=80)),
                ('real_name', models.CharField(default='', max_length=100)),
                ('image', models.CharField(default='', max_length=100)),
                ('state', models.PositiveIntegerField(default=1)),
                ('province', models.CharField(default='', max_length=50, verbose_name='设备归属  省')),
                ('city', models.CharField(default='', max_length=50, verbose_name='设备归属  市')),
                ('district', models.CharField(default='', max_length=50, verbose_name='设备归属 县')),
                ('remark', models.TextField(default='', verbose_name='用户备注')),
                ('regiest_source', models.PositiveIntegerField(default=0)),
                ('login_time', models.PositiveIntegerField(default=0)),
                ('user_type', models.PositiveIntegerField(default=4)),
                ('user_area', models.CharField(default='', max_length=50, verbose_name='用户区域')),
                ('package_time', models.PositiveIntegerField(default=31536000)),
                ('addtime', models.PositiveIntegerField(default=0)),
                ('uptime', models.PositiveIntegerField(default=0)),
                ('user_group_id', models.PositiveIntegerField(default=0)),
                ('tets_user', models.PositiveIntegerField(default=0)),
                ('children_num', models.PositiveIntegerField(default=0)),
                ('identify_model', models.CharField(default='A', max_length=5)),
                ('user_purviews', models.TextField(verbose_name='角色拥有的用户权限')),
                ('user_purviews_init', models.BooleanField(default=False, verbose_name='是否初始化用户权限')),
                ('sms_count', models.PositiveIntegerField(default=100)),
                ('pay_sms_count', models.PositiveIntegerField(default=0)),
                ('other_uuid', models.CharField(default='', max_length=512, verbose_name='第三方登陆对接用户唯一标识')),
                ('other_type', models.CharField(default='', max_length=16, verbose_name='第三方登陆用户类型标识')),
                ('user_attribute', models.IntegerField(default=0, verbose_name='用户属性，0 表示标准用户，1 表示中性用户')),
                ('api_token', models.CharField(default='', max_length=32, verbose_name='用户调用接口令牌')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'db_table': 'sa_device_user',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='MongoAlarm_Record',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('equip_id', models.CharField(max_length=50)),
                ('alarm_time', models.IntegerField(default=0)),
                ('equip_type', models.CharField(max_length=50)),
                ('alarm_desc', models.TextField(blank=True, null=True, verbose_name='预警描述')),
            ],
            options={
                'verbose_name': '设备预警',
                'verbose_name_plural': '设备预警',
                'db_table': 'sa_alarm_record',
            },
        ),
        migrations.CreateModel(
            name='MongoAreaIrrigate',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='操作地块')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('area', models.CharField(blank=True, max_length=20, null=True, verbose_name='灌溉面积')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_irrigate_info',
            },
        ),
        migrations.CreateModel(
            name='MongoAreaJob',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='操作地块')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('jobname', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作事项')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_job_info',
            },
        ),
        migrations.CreateModel(
            name='MongoAreaManure',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='操作地块')),
                ('manureuse', models.CharField(default='', max_length=50, verbose_name='肥料用量')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('itemname', models.CharField(blank=True, max_length=20, null=True, verbose_name='肥料名称')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_manura_info',
            },
        ),
        migrations.CreateModel(
            name='MongoAreaMedi',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='操作地块')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('mediname', models.CharField(blank=True, max_length=20, null=True, verbose_name='药品名称')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_medi_info',
            },
        ),
        migrations.CreateModel(
            name='MongoAreaPick',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('pickname', models.CharField(default='', max_length=50, verbose_name='采收名称')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='操作地块')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('picktotal', models.CharField(blank=True, max_length=20, null=True, verbose_name='采收总量')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_pick_info',
            },
        ),
        migrations.CreateModel(
            name='MongoAscendCode',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farmid', models.CharField(default='', max_length=50, verbose_name='基地id')),
                ('landid', models.CharField(default='', max_length=50, verbose_name='地块id')),
                ('farmname', models.CharField(blank=True, max_length=20, null=True, verbose_name='基地名称')),
                ('landname', models.CharField(blank=True, max_length=20, null=True, verbose_name='地块名称')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('is_pick', models.IntegerField(default=0, verbose_name='是否采收')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_ascendcode',
            },
        ),
        migrations.CreateModel(
            name='MongoAttractphoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default=0, max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default=0, max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default=0, max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default=0, max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default=0, max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default=0, max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
            ],
            options={
                'db_table': 'sa_device_attract_photo',
            },
        ),
        migrations.CreateModel(
            name='MongoBase',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('base_user', models.CharField(blank=True, max_length=20, null=True, verbose_name='基地所属用户')),
                ('base_name', models.CharField(blank=True, max_length=20, null=True, verbose_name='基地名称')),
                ('base_charge', models.CharField(blank=True, max_length=20, null=True, verbose_name='负责人')),
                ('base_phone', models.CharField(blank=True, max_length=20, null=True, verbose_name='联系电话')),
                ('base_img', models.CharField(blank=True, max_length=500, null=True, verbose_name='基地图片')),
                ('base_area', models.CharField(blank=True, max_length=10, null=True, verbose_name='基地面积')),
                ('base_equip', models.TextField(blank=True, null=True, verbose_name='绑定设备')),
                ('base_describe', models.TextField(blank=True, null=True, verbose_name='基地描述')),
                ('lng', models.CharField(blank=True, max_length=50, null=True, verbose_name='经度')),
                ('lat', models.CharField(blank=True, max_length=50, null=True, verbose_name='纬度')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_base_table',
            },
        ),
        migrations.CreateModel(
            name='MongoBZYData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_bzy_data',
            },
        ),
        migrations.CreateModel(
            name='MongoBZYphoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default='', max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default='', max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default='', max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default='', max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default='', max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default='', max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('mark', models.TextField(default='')),
            ],
            options={
                'db_table': 'sa_device_bzyphoto',
            },
        ),
        migrations.CreateModel(
            name='MongoCameraAccount',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('account', models.CharField(default=0, max_length=30, verbose_name='账号')),
                ('token', models.CharField(default=0, max_length=80, verbose_name='token')),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('app_key', models.CharField(default=0, max_length=50, verbose_name='用户账号appkey')),
                ('app_secret', models.CharField(default=0, max_length=50, verbose_name='用户账号appsecret')),
                ('salesman', models.CharField(default=0, max_length=50, verbose_name='业务员')),
                ('account_type', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_camera_account',
            },
        ),
        migrations.CreateModel(
            name='MongoCameraData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('status', models.PositiveIntegerField(default=1, verbose_name='设备状态 1在线 0离线')),
                ('device_info', models.TextField(default='', verbose_name='播放地址')),
                ('camera_playback', models.CharField(default=0, max_length=10, verbose_name='是否支持回放')),
                ('account_id', models.CharField(default=1, max_length=50)),
            ],
            options={
                'db_table': 'sa_device_camera',
            },
        ),
        migrations.CreateModel(
            name='MongoCameraPhoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('addr', models.CharField(blank=True, max_length=200, null=True, verbose_name='照片路径')),
                ('photo_status', models.PositiveIntegerField(default=1)),
            ],
            options={
                'db_table': 'sa_device_camera_photo',
            },
        ),
        migrations.CreateModel(
            name='MongoCBDData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_cbd_data',
            },
        ),
        migrations.CreateModel(
            name='MongoCBDPestWarning',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.TextField(default='', verbose_name='设备号')),
                ('user_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='用户id')),
                ('warning_name', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='预警设置名称')),
                ('warning_content', models.TextField(default='', verbose_name='预警内容')),
                ('warning_types', models.CharField(default=0, max_length=10, verbose_name='预警类型')),
                ('upltime', models.IntegerField(default=0, verbose_name='预警时间')),
                ('send_user', models.TextField(default='', verbose_name='发送用户')),
                ('status', models.IntegerField(default=0, verbose_name='是否已读')),
            ],
            options={
                'db_table': 'sa_device_cbd_pest_warning',
            },
        ),
        migrations.CreateModel(
            name='MongoCBDphoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default='', max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default='', max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default='', max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default='', max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default='', max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default='', max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
                ('label', models.TextField(blank=True)),
            ],
            options={
                'db_table': 'sa_device_cbdphoto',
            },
        ),
        migrations.CreateModel(
            name='MongoCBDphoto_B',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default='', max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default='', max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default='', max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default='', max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default='', max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default='', max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
                ('label', models.TextField(blank=True)),
            ],
            options={
                'db_table': 'sa_device_cbdphoto_b',
            },
        ),
        migrations.CreateModel(
            name='MongoCBDphoto_C',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default='', max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default='', max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default='', max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default='', max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default='', max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default='', max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
                ('label', models.TextField(blank=True)),
            ],
            options={
                'db_table': 'sa_device_cbdphoto_c',
            },
        ),
        migrations.CreateModel(
            name='MongoCooperationUnit',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('briefing', models.TextField(blank=True, null=True, verbose_name='简介')),
                ('name', models.CharField(blank=True, max_length=20, null=True, verbose_name='名称')),
                ('img_urls', models.CharField(blank=True, max_length=300, null=True, verbose_name='图片路径')),
                ('code', models.CharField(blank=True, max_length=10, null=True, verbose_name='单位与院校与专家')),
            ],
            options={
                'verbose_name': '专家单位与院校表',
                'verbose_name_plural': '专家单位与院校表',
                'db_table': 'sa_cooperation_unit',
            },
        ),
        migrations.CreateModel(
            name='MongoDevice',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(max_length=50, unique=True, verbose_name='设备本身id')),
                ('dver_num', models.CharField(default='', max_length=50, verbose_name='设备固件版本号')),
                ('device_model', models.PositiveIntegerField(default=0)),
                ('device_type_id', models.PositiveIntegerField(default=0, verbose_name='设备类型id')),
                ('device_name', models.CharField(default='', max_length=50, verbose_name='设备名称')),
                ('owner_uid', models.PositiveIntegerField(default=0, verbose_name='负责人uid')),
                ('user_dealer', models.PositiveIntegerField(default=0, verbose_name='负责人uid')),
                ('province', models.CharField(default='', max_length=50, verbose_name='设备归属  省')),
                ('city', models.CharField(default='', max_length=50, verbose_name='设备归属  市')),
                ('district', models.CharField(default='', max_length=50, verbose_name='设备归属 县')),
                ('device_code', models.PositiveIntegerField(default=0, verbose_name='设备编码 当设备为性诱设备的时候必须存在')),
                ('device_status', models.PositiveIntegerField(default=1, verbose_name='设备状态 1在线 0离线')),
                ('off_time', models.PositiveIntegerField(default=0, verbose_name='设备离线时间')),
                ('ftp_push_addr', models.CharField(default='', max_length=50, verbose_name='设备推送图片地址')),
                ('serverconf', models.TextField(default='', verbose_name='服务器配置')),
                ('lng', models.CharField(default='', max_length=50, verbose_name='经度')),
                ('lat', models.CharField(default='', max_length=50, verbose_name='纬度')),
                ('gps', models.PositiveIntegerField(default=2, verbose_name='纬度')),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('glass_slide_time', models.IntegerField(default=0)),
                ('cultivate_time', models.IntegerField(default=0)),
                ('add_position', models.PositiveIntegerField(default=0, verbose_name='是否手动添加位置')),
                ('simid', models.CharField(default='', max_length=50, verbose_name='海康流量卡')),
                ('disable', models.PositiveIntegerField(default=0, verbose_name='禁用识别统计')),
                ('decoy', models.CharField(default='', max_length=50, verbose_name='性诱设备诱芯')),
                ('sim_dealer', models.CharField(default=0, max_length=50, verbose_name='SIM经销商')),
                ('xy_uptime', models.IntegerField(default=0)),
                ('networking', models.CharField(default=0, max_length=10, verbose_name='联网方式')),
                ('equipment', models.CharField(default=0, max_length=10, verbose_name='设备状态')),
                ('sale_uid', models.IntegerField(default=0, verbose_name='销售用户uid')),
                ('salesman_task_number', models.CharField(default=0, max_length=20, verbose_name='销售用户#任务单号')),
                ('whether_equipment_status', models.CharField(default=0, max_length=10, verbose_name='是否更新设备状态')),
                ('device_expire_time', models.IntegerField(default=0)),
                ('device_activation', models.IntegerField(default=0)),
                ('device_expire', models.CharField(default=0, max_length=10, verbose_name='设备是否到期')),
                ('device_expire_days', models.CharField(default=0, max_length=10, verbose_name='设备到期天数')),
                ('water_pump_switch', models.CharField(default=0, max_length=10, verbose_name='水泵开关')),
                ('device_notes', models.CharField(blank=True, default=0, max_length=20, null=True, verbose_name='设备备注')),
                ('water_pump_times', models.CharField(default=0, max_length=10, verbose_name='水泵控制时间')),
                ('water_pump_switch_times', models.CharField(default=0, max_length=10, verbose_name='下发水泵开关的时间')),
                ('xy_expire_time', models.IntegerField(default=0)),
                ('device_tag', models.IntegerField(choices=[(51, '土壤墒情站')], default=0, verbose_name='设备标记')),
            ],
            options={
                'db_table': 'sa_device',
            },
        ),
        migrations.CreateModel(
            name='MongoDevice_Desc',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(blank=True, max_length=50, null=True, verbose_name='对应的设备id')),
                ('photo_id', models.CharField(blank=True, max_length=50, null=True, verbose_name='照片ID')),
                ('desc_user', models.CharField(blank=True, max_length=50, null=True, verbose_name='添加描述的用户')),
                ('add_time', models.IntegerField(default=0)),
                ('crop_name', models.CharField(blank=True, max_length=20, null=True, verbose_name='作物名称')),
                ('pest_case', models.CharField(blank=True, max_length=30, null=True, verbose_name='虫害情况')),
                ('pest_name', models.CharField(blank=True, max_length=50, null=True, verbose_name='害虫名称')),
                ('pest_num', models.CharField(blank=True, max_length=10, null=True, verbose_name='害虫数量')),
                ('photo_time', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_desc',
            },
        ),
        migrations.CreateModel(
            name='MongoDevice_Payment',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50, verbose_name='设备号')),
                ('device_type', models.CharField(default='', max_length=10, verbose_name='设备类型')),
                ('order_number', models.CharField(default='', max_length=50, verbose_name='订单编号')),
                ('addtime', models.IntegerField(default=0, verbose_name='下单时间')),
                ('upltime', models.IntegerField(default=0, verbose_name='支付时间')),
                ('price', models.CharField(blank=True, max_length=20, null=True, verbose_name='支付钱数')),
                ('menu', models.CharField(blank=True, max_length=20, null=True, verbose_name='套餐')),
                ('payment_method', models.CharField(default=1, max_length=20, verbose_name='支付方式')),
                ('recharge_user', models.CharField(blank=True, max_length=20, null=True, verbose_name='充值用户')),
                ('paystatus', models.CharField(default=0, max_length=20, verbose_name='支付状态')),
                ('paytype', models.PositiveIntegerField(default=0, verbose_name='充值状态')),
            ],
            options={
                'db_table': 'sa_device_payment',
            },
        ),
        migrations.CreateModel(
            name='MongoDevice_QP_SimInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(blank=True, max_length=50, null=True, verbose_name='设备ID')),
                ('device_name', models.CharField(blank=True, max_length=100, null=True, verbose_name='设备名称')),
                ('device_type', models.CharField(blank=True, max_length=10, null=True, verbose_name='设备类型')),
                ('iccid', models.CharField(blank=True, max_length=30, null=True, verbose_name='iccid')),
                ('msisdn', models.CharField(blank=True, max_length=30, null=True, verbose_name='msisdn')),
                ('imsi', models.CharField(blank=True, max_length=30, null=True, verbose_name='imsi')),
                ('ratePlanExpirationDate', models.CharField(blank=True, max_length=30, null=True, verbose_name='套餐过期时间')),
                ('activeDuration', models.CharField(blank=True, max_length=30, null=True, verbose_name='激活宽限期（天）')),
                ('ratePlanId', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡当前套餐ID')),
                ('sim_type', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡类型')),
                ('totalDataVolume', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡套餐大小, 单位M')),
                ('deviceStatus', models.CharField(blank=True, max_length=10, null=True, verbose_name='卡在运营商的状态')),
                ('useCountAsVolume', models.CharField(blank=True, max_length=10, null=True, verbose_name='卡套餐单位')),
                ('expireDate', models.CharField(blank=True, max_length=20, null=True, verbose_name='过期时间')),
                ('ratePlanEffetiveDate', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡套餐生效时间')),
                ('dataUsage', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡本月用量, 单位M')),
                ('nbCard', models.CharField(blank=True, max_length=10, null=True, verbose_name='是否NB卡')),
                ('imeiStatus', models.CharField(blank=True, max_length=20, null=True, verbose_name='机卡绑定状态')),
                ('orgName', models.CharField(blank=True, max_length=30, null=True, verbose_name='卡所属机构名称')),
                ('testingExpireDate', models.CharField(blank=True, max_length=30, null=True, verbose_name='测试期结束时间')),
                ('usedDataVolume', models.CharField(blank=True, max_length=30, null=True, verbose_name='卡套餐用量')),
                ('lastSyncDate', models.CharField(blank=True, max_length=30, null=True, verbose_name='餐用量同步时间')),
                ('realnameRequired', models.CharField(blank=True, max_length=30, null=True, verbose_name='卡实名需求')),
                ('realNameCertifystatus', models.CharField(blank=True, max_length=30, null=True, verbose_name='卡实名审核状态')),
                ('speedLimit', models.CharField(blank=True, max_length=30, null=True, verbose_name='网络限速值，单位：Kbps')),
                ('carrier', models.CharField(blank=True, max_length=30, null=True, verbose_name='运营商')),
                ('openDate', models.CharField(blank=True, max_length=30, null=True, verbose_name='出库时间')),
                ('iratePlanName', models.CharField(blank=True, max_length=30, null=True, verbose_name='卡当前套餐')),
                ('startDate', models.CharField(blank=True, max_length=30, null=True, verbose_name='激活时间')),
                ('status', models.CharField(blank=True, max_length=30, null=True, verbose_name='SIM卡状态')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_qp_sim_info',
            },
        ),
        migrations.CreateModel(
            name='MongoDevice_SimInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(blank=True, max_length=50, null=True, verbose_name='设备ID')),
                ('device_name', models.CharField(blank=True, max_length=100, null=True, verbose_name='设备名称')),
                ('device_type', models.CharField(blank=True, max_length=10, null=True, verbose_name='设备类型')),
                ('iccid', models.CharField(blank=True, max_length=30, null=True, verbose_name='iccid')),
                ('msisdn', models.CharField(blank=True, max_length=50, null=True, verbose_name='msisdn')),
                ('imsi', models.CharField(blank=True, max_length=30, null=True, verbose_name='imsi')),
                ('sp_code', models.CharField(blank=True, max_length=30, null=True, verbose_name='短信端口')),
                ('carrier', models.CharField(blank=True, max_length=30, null=True, verbose_name='运营商')),
                ('data_plan', models.CharField(blank=True, max_length=20, null=True, verbose_name='套餐大小')),
                ('data_usage', models.CharField(blank=True, max_length=20, null=True, verbose_name='当月用量')),
                ('account_status', models.CharField(blank=True, max_length=20, null=True, verbose_name='卡状态')),
                ('expiry_date', models.CharField(blank=True, max_length=20, null=True, verbose_name='计费结束日期')),
                ('active', models.CharField(blank=True, max_length=10, null=True, verbose_name='激活状态')),
                ('test_valid_date', models.CharField(blank=True, max_length=20, null=True, verbose_name='测试期起始日期')),
                ('silent_valid_date', models.CharField(blank=True, max_length=20, null=True, verbose_name='沉默期起始日期')),
                ('test_used_data_usage', models.CharField(blank=True, max_length=20, null=True, verbose_name='测试期已用流量')),
                ('active_date', models.CharField(blank=True, max_length=20, null=True, verbose_name='激活日期')),
                ('data_balance', models.CharField(blank=True, max_length=20, null=True, verbose_name='剩余流量,单位M')),
                ('outbound_date', models.CharField(blank=True, max_length=20, null=True, verbose_name='出库日期')),
                ('support_sms', models.CharField(blank=True, max_length=10, null=True, verbose_name='是否支持短信')),
                ('sim_alarm', models.TextField(blank=True, null=True, verbose_name='sim卡提示配置')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_sim_info',
            },
        ),
        migrations.CreateModel(
            name='MongoDeviceConfig',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('d_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_config', models.TextField(default='', verbose_name='设备配置')),
                ('cmd', models.CharField(max_length=50, verbose_name='配置属性')),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_config',
            },
        ),
        migrations.CreateModel(
            name='MongoDevicePest',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user', models.CharField(blank=True, max_length=50, null=True, verbose_name='害虫所属用户')),
                ('pest_add_time', models.IntegerField(default=0)),
                ('pest_name', models.CharField(max_length=50, verbose_name='害虫名称')),
            ],
            options={
                'db_table': 'sa_device_pest',
            },
        ),
        migrations.CreateModel(
            name='MongoDevicePestInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('photo_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('pest_name', models.CharField(default=0, max_length=50)),
                ('pest_num', models.CharField(default=0, max_length=50)),
                ('at', models.CharField(default=0, max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default=0, max_length=50, verbose_name='环境湿度')),
                ('upltime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_pest_info',
            },
        ),
        migrations.CreateModel(
            name='MongoDeviceTemporary',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('equipment', models.CharField(default=0, max_length=10, verbose_name='设备状态')),
                ('whether_equipment_status', models.CharField(default=0, max_length=10, verbose_name='是否更新设备状态')),
                ('device_expire_time', models.IntegerField(default=0)),
                ('device_activation', models.IntegerField(default=0)),
                ('device_expire', models.CharField(default=0, max_length=10, verbose_name='设备是否到期')),
                ('device_expire_days', models.CharField(default=0, max_length=10, verbose_name='设备到期天数')),
            ],
            options={
                'db_table': 'sa_device_temporary',
            },
        ),
        migrations.CreateModel(
            name='MongoDeviceType',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('type_name', models.CharField(default='', max_length=50, verbose_name='设备类型名称 ')),
                ('img_url', models.TextField(default='', verbose_name='设备类型图片url地址')),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_type',
            },
        ),
        migrations.CreateModel(
            name='MongoFarmInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('farmname', models.CharField(default='', max_length=50, verbose_name='农场名称')),
                ('farmaddr', models.CharField(default='', max_length=50, verbose_name='农场地址')),
                ('farmdesc', models.CharField(default='', max_length=50, verbose_name='农场描述')),
                ('farmarea', models.CharField(default='', max_length=50, verbose_name='农场面积')),
                ('farmframe', models.CharField(default='', max_length=200, verbose_name='农场坐标点')),
                ('user', models.CharField(default='', max_length=50, verbose_name='所属用户')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_farm_info_record',
            },
        ),
        migrations.CreateModel(
            name='MongoLandInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属农场')),
                ('landname', models.CharField(blank=True, max_length=20, null=True, verbose_name='地块名称')),
                ('landuse', models.CharField(blank=True, max_length=20, null=True, verbose_name='地块用途')),
                ('landaddr', models.CharField(blank=True, max_length=50, null=True, verbose_name='地块地址')),
                ('landarea', models.CharField(blank=True, max_length=20, null=True, verbose_name='地块面积')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_land_info',
            },
        ),
        migrations.CreateModel(
            name='MongoMake_Log',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('log_user', models.CharField(blank=True, max_length=50, null=True, verbose_name='用户名')),
                ('log_time', models.IntegerField(default=0)),
                ('log_ip', models.CharField(blank=True, max_length=100, null=True, verbose_name='IP地址')),
                ('log_desc', models.CharField(blank=True, max_length=100, null=True, verbose_name='操作描述')),
            ],
            options={
                'verbose_name': '用户操作日志表',
                'verbose_name_plural': '用户操作日志表',
                'db_table': 'sa_make_log',
            },
        ),
        migrations.CreateModel(
            name='MongoManual_Alert_Record',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='用户id')),
                ('device_type_id', models.IntegerField(default=0, verbose_name='设备类型')),
                ('conf', models.TextField(default=0, verbose_name='短信预警内容')),
                ('liaisons', models.CharField(max_length=50, verbose_name='联系人名称')),
                ('phone', models.IntegerField(default=0, verbose_name='联系人电话')),
                ('create_time', models.IntegerField(default=0, verbose_name='创建时间')),
                ('status', models.IntegerField(default=0, verbose_name='是否已读')),
            ],
            options={
                'db_table': 'sa_device_manual_alert_record',
            },
        ),
        migrations.CreateModel(
            name='MongoMenuPerGroupModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, verbose_name='权限组名称')),
                ('menus', models.TextField(verbose_name='菜单id列表')),
                ('uid', models.IntegerField(verbose_name='创建用户uid')),
                ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
                ('modify_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
            ],
            options={
                'db_table': 'sa_menu_per_group',
            },
        ),
        migrations.CreateModel(
            name='MongoMsg_Conf',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(blank=True, max_length=50, null=True, verbose_name='设备ID')),
                ('conf', models.TextField(blank=True, null=True, verbose_name='短信配置')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_msg_conf',
            },
        ),
        migrations.CreateModel(
            name='MongoMsg_Send',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('mobile', models.CharField(blank=True, max_length=20, verbose_name='手机号')),
                ('equip_id', models.CharField(blank=True, max_length=20, verbose_name='设备号')),
                ('uptime', models.IntegerField(default=0)),
                ('send_dec', models.CharField(blank=True, max_length=300, verbose_name='发送内容')),
                ('result_desc', models.TextField(blank=True, null=True, verbose_name='短信描述')),
            ],
            options={
                'db_table': 'sa_device_msg_send',
            },
        ),
        migrations.CreateModel(
            name='MongoND_qxz_data',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('csq', models.CharField(max_length=10, verbose_name='信号强度')),
                ('temp', models.CharField(max_length=50, verbose_name='土壤温度')),
                ('swc', models.CharField(max_length=50, verbose_name='土壤湿度')),
                ('atm', models.CharField(max_length=10, verbose_name='大气压强')),
                ('at', models.CharField(max_length=10, verbose_name='空气温度')),
                ('ats', models.CharField(max_length=10, verbose_name='空气湿度')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_nd_qxz_data',
            },
        ),
        migrations.CreateModel(
            name='MongoND_qxz_status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('lat', models.CharField(max_length=50, verbose_name='纬度')),
                ('lng', models.CharField(max_length=50, verbose_name='经度')),
                ('topic', models.CharField(default='10', max_length=10, verbose_name='列标题')),
                ('inidepth', models.CharField(default='10', max_length=10, verbose_name='初始深度')),
                ('depth', models.CharField(default='', max_length=50, verbose_name='层级深度')),
                ('csq', models.CharField(max_length=10, verbose_name='信号强度')),
                ('temp', models.CharField(max_length=50, verbose_name='土壤温度')),
                ('swc', models.CharField(max_length=50, verbose_name='土壤湿度')),
                ('atm', models.CharField(max_length=10, verbose_name='大气压强')),
                ('at', models.CharField(max_length=10, verbose_name='空气温度')),
                ('ats', models.CharField(max_length=10, verbose_name='空气湿度')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_nd_qxz_status',
            },
        ),
        migrations.CreateModel(
            name='MongoNL_Device',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default=0, max_length=50, verbose_name='设备号')),
                ('device_data', models.TextField(default='', verbose_name='具体状态数据')),
                ('protocolType', models.CharField(max_length=50, verbose_name='配置属性')),
                ('addtime', models.IntegerField(default=0)),
                ('at', models.CharField(max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(max_length=50, verbose_name='环境湿度')),
            ],
            options={
                'db_table': 'sa_nl_device',
            },
        ),
        migrations.CreateModel(
            name='MongoNL_Device_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default=0, max_length=50, verbose_name='设备号')),
                ('addtime', models.IntegerField(default=0)),
                ('at', models.CharField(max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(max_length=50, verbose_name='环境湿度')),
                ('rain', models.CharField(max_length=50, verbose_name='是否下雨')),
                ('wind', models.CharField(max_length=50, verbose_name='风速风向')),
                ('weather', models.CharField(max_length=50, verbose_name='天气')),
                ('warn', models.CharField(max_length=50, verbose_name='害虫预警情况')),
                ('lure', models.CharField(max_length=50, verbose_name='诱芯')),
                ('xy_uptime', models.IntegerField(default=0)),
                ('xy_expire_time', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_nl_device_status',
            },
        ),
        migrations.CreateModel(
            name='MongoOperateLogs',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('uid', models.PositiveIntegerField(default=0, verbose_name='操作用户id')),
                ('target_id', models.CharField(default='', max_length=100, verbose_name='被操作目标id')),
                ('content', models.CharField(max_length=500, verbose_name='操作内容')),
                ('operation_type', models.PositiveIntegerField(default=0, verbose_name='操作类型对设备操作为0 对用户操作为1')),
                ('ip', models.CharField(max_length=100, verbose_name='操作者ip')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_operate_logs',
            },
        ),
        migrations.CreateModel(
            name='MongoOtherUserTypeModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('other_name', models.CharField(max_length=50, verbose_name='其他用户公司名称')),
                ('other_type', models.CharField(max_length=50, verbose_name='公司标志')),
            ],
            options={
                'db_table': 'sa_other_user_type',
            },
        ),
        migrations.CreateModel(
            name='MongoOutStock',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='所属地块')),
                ('suppliesname', models.CharField(default='', max_length=50, verbose_name='物料名称')),
                ('suppliescode', models.CharField(default='', max_length=50, verbose_name='物料编号')),
                ('typename', models.CharField(default='', max_length=50, verbose_name='品类')),
                ('stockbatch', models.CharField(blank=True, max_length=20, null=True, verbose_name='出库批次')),
                ('stocknum', models.CharField(blank=True, max_length=20, null=True, verbose_name='出库数量')),
                ('firm', models.CharField(blank=True, max_length=20, null=True, verbose_name='生产企业')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_out_stock_info',
            },
        ),
        migrations.CreateModel(
            name='MongoPest_distribute',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('pest_name', models.CharField(max_length=50)),
                ('province', models.CharField(default='', max_length=50, verbose_name='害虫统计  省')),
                ('city', models.CharField(default='', max_length=50, verbose_name='害虫统计  市')),
                ('avg_num', models.CharField(max_length=10)),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'verbose_name': '害虫地域密度',
                'verbose_name_plural': '害虫地域密度',
                'db_table': 'sa_pest_distribute',
            },
        ),
        migrations.CreateModel(
            name='MongoPestAnswers',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('pestbank_id', models.CharField(blank=True, max_length=50, null=True)),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='用户')),
                ('title', models.CharField(blank=True, max_length=20, null=True, verbose_name='标题')),
                ('content', models.TextField(blank=True, null=True, verbose_name='问题描述')),
                ('img_urls', models.CharField(blank=True, max_length=500, null=True, verbose_name='图片路径')),
                ('lower', models.CharField(blank=True, default=0, max_length=20, null=True, verbose_name='二级评论')),
                ('user_type', models.CharField(default=0, max_length=20, verbose_name='用户身份')),
                ('adtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'verbose_name': '病虫害提问表',
                'verbose_name_plural': '病虫害提问表',
                'db_table': 'sa_pest_answers',
            },
        ),
        migrations.CreateModel(
            name='MongoPestBank',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('course', models.CharField(blank=True, max_length=100, null=True, verbose_name='所属科目')),
                ('name', models.CharField(blank=True, max_length=32, null=True, verbose_name='病虫害名')),
                ('img_urls', models.CharField(blank=True, max_length=300, null=True, verbose_name='识别出来的图片')),
                ('prevention', models.TextField(blank=True, null=True, verbose_name='防止方法')),
                ('search', models.IntegerField(default=0, verbose_name='搜索排名')),
                ('code', models.CharField(blank=True, max_length=10, null=True, verbose_name='病虫害区分')),
            ],
            options={
                'verbose_name': '病虫害知识库表',
                'verbose_name_plural': '病虫害知识库表',
                'db_table': 'sa_pest_bank',
            },
        ),
        migrations.CreateModel(
            name='MongoPestBankNew',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('name', models.CharField(blank=True, max_length=32, null=True, verbose_name='病虫害名')),
                ('alias', models.CharField(blank=True, max_length=32, null=True, verbose_name='别名')),
                ('types', models.CharField(blank=True, max_length=10, null=True, verbose_name='区分')),
                ('cycle', models.CharField(blank=True, max_length=32, null=True, verbose_name='周期')),
                ('distribution', models.CharField(blank=True, max_length=32, null=True, verbose_name='分布')),
                ('pathogen', models.CharField(blank=True, max_length=32, null=True, verbose_name='病原体')),
                ('features', models.CharField(blank=True, max_length=100, null=True, verbose_name='特征')),
                ('habits', models.CharField(blank=True, max_length=300, null=True, verbose_name='习惯')),
                ('host', models.CharField(blank=True, max_length=50, null=True, verbose_name='寄主')),
                ('summary', models.CharField(blank=True, max_length=50, null=True, verbose_name='概括')),
                ('taxonomy', models.CharField(blank=True, max_length=100, null=True, verbose_name='分类')),
                ('symptom', models.CharField(blank=True, max_length=100, null=True, verbose_name='症状')),
                ('prevention', models.TextField(blank=True, null=True, verbose_name='防止方法')),
                ('img_urls', models.TextField(blank=True, null=True, verbose_name='识别出来的图片')),
                ('thumb', models.TextField(blank=True, null=True, verbose_name='类似')),
                ('search', models.IntegerField(default=0, verbose_name='搜索排名')),
            ],
            options={
                'verbose_name': '新病虫害知识库表',
                'verbose_name_plural': '新病虫害知识库表',
                'db_table': 'sa_pest_bank_new',
            },
        ),
        migrations.CreateModel(
            name='MongoPestSupplement',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('pestbank_id', models.CharField(default='', max_length=50)),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='用户')),
                ('content', models.TextField(blank=True, null=True, verbose_name='补充内容')),
                ('review', models.CharField(default=0, max_length=5, verbose_name='是否审核')),
                ('adtime', models.IntegerField(default=0)),
            ],
            options={
                'verbose_name': '病虫害补充数据表',
                'verbose_name_plural': '病虫害补充数据表',
                'db_table': 'sa_pest_supplement',
            },
        ),
        migrations.CreateModel(
            name='MongoPlantInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属农场')),
                ('batch', models.CharField(blank=True, max_length=20, null=True, verbose_name='批次名称')),
                ('land', models.CharField(blank=True, max_length=20, null=True, verbose_name='所属地块')),
                ('planttype', models.CharField(blank=True, max_length=20, null=True, verbose_name='种植类别')),
                ('plantname', models.CharField(blank=True, max_length=20, null=True, verbose_name='作物名称')),
                ('pickcode', models.CharField(default='0', max_length=20, verbose_name='采收状态')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_plant_info',
            },
        ),
        migrations.CreateModel(
            name='MongoProductInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('productphoto', models.CharField(blank=True, max_length=500, null=True, verbose_name='产品图片')),
                ('productdesc', models.CharField(blank=True, max_length=500, null=True, verbose_name='产品描述')),
                ('photo1', models.CharField(blank=True, max_length=500, null=True, verbose_name='生长期1')),
                ('photo2', models.CharField(blank=True, max_length=500, null=True, verbose_name='生长期2')),
                ('photo3', models.CharField(blank=True, max_length=500, null=True, verbose_name='生长期3')),
                ('photo4', models.CharField(blank=True, max_length=500, null=True, verbose_name='生长期4')),
                ('photo5', models.CharField(blank=True, max_length=500, null=True, verbose_name='生长期5')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_product_info',
            },
        ),
        migrations.CreateModel(
            name='MongoProjectArea',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('project_user_id', models.PositiveIntegerField(default=0, verbose_name='项目区域所属用户id')),
                ('project_name', models.CharField(blank=True, max_length=20, null=True, verbose_name='项目区域名称')),
                ('project_coordinates', models.TextField(verbose_name='项目区域坐标')),
                ('addtime', models.IntegerField(default=0)),
                ('upltime', models.IntegerField(default=0)),
            ],
            options={
                'verbose_name': '大屏项目区域表',
                'verbose_name_plural': '大屏项目区域表',
                'db_table': 'sa_project_area',
            },
        ),
        migrations.CreateModel(
            name='MongoPutStock',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='所属地块')),
                ('suppliesname', models.CharField(default='', max_length=50, verbose_name='物料名称')),
                ('suppliescode', models.CharField(default='', max_length=50, verbose_name='物料编号')),
                ('typename', models.CharField(default='', max_length=50, verbose_name='品类')),
                ('stockbatch', models.CharField(blank=True, max_length=20, null=True, verbose_name='入库批次')),
                ('stocknum', models.CharField(blank=True, max_length=20, null=True, verbose_name='入库数量')),
                ('firm', models.CharField(blank=True, max_length=20, null=True, verbose_name='生产企业')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_put_stock_info',
            },
        ),
        migrations.CreateModel(
            name='MongoQualityInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('qualitydesc', models.CharField(blank=True, max_length=30, null=True, verbose_name='质检标题')),
                ('qualityphoto', models.CharField(blank=True, max_length=300, null=True, verbose_name='质检图片')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_quality_info',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Alarm',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('conf', models.TextField(blank=True, null=True, verbose_name='短信配置')),
                ('phone', models.CharField(blank=True, max_length=20, verbose_name='手机号')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_qxz_alarm',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Alarm_Log',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('logs', models.TextField(blank=True, null=True, verbose_name='短信反馈')),
                ('ekey', models.CharField(blank=True, max_length=20, verbose_name='通道号')),
                ('info', models.CharField(blank=True, max_length=20, verbose_name='内容')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_qxz_alarm_log',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Alarm_Log_New',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('user_id', models.CharField(default='', max_length=50, verbose_name='用户id')),
                ('warning_name', models.CharField(default='', max_length=50, verbose_name='预警设置名称')),
                ('ekey', models.TextField(blank=True, verbose_name='通道号')),
                ('warning_content', models.TextField(default='', verbose_name='预警内容')),
                ('send_user', models.TextField(default='', verbose_name='发送用户')),
                ('status', models.IntegerField(default=0, verbose_name='是否已读')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_qxz_alarm_log_new',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Alarm_New',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user_id', models.CharField(default='', max_length=50, verbose_name='用户id')),
                ('warning_id', models.CharField(default='', max_length=50, verbose_name='预警设置id')),
                ('device_id', models.CharField(default='', max_length=50, verbose_name='设备号')),
                ('conf', models.TextField(blank=True, null=True, verbose_name='短信配置')),
                ('send_user_id', models.TextField(default='', verbose_name='多个联系人id')),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_qxz_alarm_new',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Auto_Switch',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
                ('qxz_auto', models.TextField(blank=True, null=True, verbose_name='气象站阈值')),
            ],
            options={
                'db_table': 'sa_qxz_auto_switch',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Base_Info',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('volt', models.CharField(blank=True, max_length=20, null=True, verbose_name='电压')),
                ('rssi', models.CharField(blank=True, max_length=20, null=True, verbose_name='信号强度')),
                ('iccid', models.CharField(blank=True, max_length=50, null=True, verbose_name='设备卡号')),
                ('lng', models.CharField(blank=True, max_length=50, null=True, verbose_name='经度')),
                ('lat', models.CharField(blank=True, max_length=50, null=True, verbose_name='纬度')),
                ('led', models.CharField(blank=True, max_length=10, null=True, verbose_name='led点阵屏')),
                ('ledinfo', models.CharField(blank=True, max_length=100, null=True, verbose_name='led屏幕内容')),
                ('dver', models.CharField(blank=True, max_length=100, null=True, verbose_name='设备版本号')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_qxz_base_info',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Conf',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('e1', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道1')),
                ('e2', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道2')),
                ('e3', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道3')),
                ('e4', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道4')),
                ('e5', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道5')),
                ('e6', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道6')),
                ('e7', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道7')),
                ('e8', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道8')),
                ('e9', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道9')),
                ('e10', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道10')),
                ('e11', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道11')),
                ('e12', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道12')),
                ('e13', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道13')),
                ('e14', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道14')),
                ('e15', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道15')),
                ('e16', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道16')),
                ('e17', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道17')),
                ('e18', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道18')),
                ('e19', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道19')),
                ('e20', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道20')),
                ('e21', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道21')),
                ('e22', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道22')),
                ('e23', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道23')),
                ('e24', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道24')),
                ('e25', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道25')),
                ('e26', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道26')),
                ('e27', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道27')),
                ('e28', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道28')),
                ('e29', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道29')),
                ('e30', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道30')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_qxz_conf',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Control_History',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('topic', models.CharField(max_length=30, verbose_name='订阅主题')),
                ('return_value', models.TextField(verbose_name='气象站设备反馈内容')),
                ('return_time', models.IntegerField(default=0, verbose_name='上报时间')),
            ],
            options={
                'db_table': 'sa_qxz_control_history',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Default_Conf',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('e1', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道1')),
                ('e2', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道2')),
                ('e3', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道3')),
                ('e4', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道4')),
                ('e5', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道5')),
                ('e6', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道6')),
                ('e7', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道7')),
                ('e8', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道8')),
                ('e9', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道9')),
                ('e10', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道10')),
                ('e11', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道11')),
                ('e12', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道12')),
                ('e13', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道13')),
                ('e14', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道14')),
                ('e15', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道15')),
                ('e16', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道16')),
                ('e17', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道17')),
                ('e18', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道18')),
                ('e19', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道19')),
                ('e20', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道20')),
                ('e21', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道21')),
                ('e22', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道22')),
                ('e23', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道23')),
                ('e24', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道24')),
                ('e25', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道25')),
                ('e26', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道26')),
                ('e27', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道27')),
                ('e28', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道28')),
                ('e29', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道29')),
                ('e30', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道30')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_qxz_default_conf',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Info_Record',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('volt', models.CharField(blank=True, max_length=20, null=True, verbose_name='电压')),
                ('rssi', models.CharField(blank=True, max_length=20, null=True, verbose_name='信号强度')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_qxz_info_record',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Switch',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
                ('qxz_switch_data', models.TextField(blank=True, null=True, verbose_name='气象站开关名字')),
            ],
            options={
                'db_table': 'sa_qxz_switch',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Switch_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
                ('qxz_switch', models.TextField(blank=True, null=True, verbose_name='气象站开关')),
            ],
            options={
                'db_table': 'sa_qxz_switch_status',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZ_Timing_Switch',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('upl_time', models.IntegerField(default=0, verbose_name='上报时间')),
                ('qxz_timing', models.TextField(blank=True, null=True, verbose_name='气象站开关定时')),
            ],
            options={
                'db_table': 'sa_qxz_timing_switch',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZdata_New',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('uptime', models.IntegerField(default=0)),
                ('e1', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道1')),
                ('e2', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道2')),
                ('e3', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道3')),
                ('e4', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道4')),
                ('e5', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道5')),
                ('e6', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道6')),
                ('e7', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道7')),
                ('e8', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道8')),
                ('e9', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道9')),
                ('e10', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道10')),
                ('e11', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道11')),
                ('e12', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道12')),
                ('e13', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道13')),
                ('e14', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道14')),
                ('e15', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道15')),
                ('e16', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道16')),
                ('e17', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道17')),
                ('e18', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道18')),
                ('e19', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道19')),
                ('e20', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道20')),
                ('e21', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道21')),
                ('e22', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道22')),
                ('e23', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道23')),
                ('e24', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道24')),
                ('e25', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道25')),
                ('e26', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道26')),
                ('e27', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道27')),
                ('e28', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道28')),
                ('e29', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道29')),
                ('e30', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道30')),
            ],
            options={
                'db_table': 'sa_qxz_data',
            },
        ),
        migrations.CreateModel(
            name='MongoQXZstatus_New',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('is_online', models.CharField(blank=True, max_length=5, null=True, verbose_name='在线状态')),
                ('uptime', models.IntegerField(default=0)),
                ('e1', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道1')),
                ('e2', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道2')),
                ('e3', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道3')),
                ('e4', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道4')),
                ('e5', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道5')),
                ('e6', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道6')),
                ('e7', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道7')),
                ('e8', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道8')),
                ('e9', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道9')),
                ('e10', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道10')),
                ('e11', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道11')),
                ('e12', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道12')),
                ('e13', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道13')),
                ('e14', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道14')),
                ('e15', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道15')),
                ('e16', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道16')),
                ('e17', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道17')),
                ('e18', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道18')),
                ('e19', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道19')),
                ('e20', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道20')),
                ('e21', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道21')),
                ('e22', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道22')),
                ('e23', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道23')),
                ('e24', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道24')),
                ('e25', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道25')),
                ('e26', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道26')),
                ('e27', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道27')),
                ('e28', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道28')),
                ('e29', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道29')),
                ('e30', models.CharField(blank=True, max_length=30, null=True, verbose_name='通道30')),
                ('interval', models.CharField(blank=True, max_length=30, null=True, verbose_name='设备数据上传时间间隔')),
            ],
            options={
                'db_table': 'sa_qxz_status',
            },
        ),
        migrations.CreateModel(
            name='MongoRole_Projection',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('RTid', models.PositiveIntegerField(default=0, unique=True)),
                ('role_company', models.CharField(blank=True, max_length=50, null=True, verbose_name='公司名称')),
                ('projection_index_title', models.TextField(default='5G+智慧农业云平台', verbose_name='首页标题')),
                ('projection_bzy_title', models.TextField(default='智能孢子监测系统', verbose_name='孢子仪标题')),
                ('projection_fb_title', models.TextField(default='设备分布展示', verbose_name='设备分布标题')),
                ('projection_zh_title', models.TextField(default='数字监测预警系统', verbose_name='设备综合标题')),
                ('projection_cbd_title', models.TextField(default='虫情测报系统', verbose_name='测报灯标题')),
                ('projection_qxz_title', models.TextField(default='气象监测系统', verbose_name='气象站标题')),
                ('water_title', models.TextField(default='水肥一体控制系统展示大屏', verbose_name='水肥默认标题')),
                ('elect_title', models.TextField(default='机井水电双控系统展示大屏', verbose_name='水电默认标题')),
                ('wheat_scab', models.TextField(default='小麦赤霉病检测平台', verbose_name='小麦赤霉病默认标题')),
                ('water_fertilizer_control', models.TextField(default='水肥一体控制系统(X)', verbose_name='水肥一体控制默认标题')),
            ],
            options={
                'verbose_name': '投屏主题',
                'verbose_name_plural': '投屏主题',
                'db_table': 'sa_role_projection',
            },
        ),
        migrations.CreateModel(
            name='MongoRole_Table',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('role_describe', models.CharField(blank=True, max_length=50, null=True, verbose_name='角色描述')),
                ('role_cre_time', models.IntegerField(default=0)),
                ('role_cre_user', models.CharField(blank=True, max_length=20, null=True, verbose_name='角色创建者')),
                ('role_logo', models.CharField(default='/data/home_logo/log.jpg', max_length=200, verbose_name='首页logo')),
                ('role_footer', models.TextField(default='Copyright©2007-2019 All Rrights Resvered\u3000版权所有：河南云飞科技发展有限公司', verbose_name='首页footer信息')),
                ('role_header', models.TextField(default='智慧农业大数据平台', verbose_name='首页header信息')),
                ('qr_show', models.BooleanField(default=True)),
            ],
            options={
                'verbose_name': '用户组列表',
                'verbose_name_plural': '用户组列表',
                'db_table': 'sa_role_table',
            },
        ),
        migrations.CreateModel(
            name='MongoSCDData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
                ('device_status', models.CharField(default=1, max_length=10, verbose_name='四情数据区分')),
            ],
            options={
                'db_table': 'sa_device_scd_data',
            },
        ),
        migrations.CreateModel(
            name='MongoSellInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('sellname', models.CharField(blank=True, max_length=20, null=True, verbose_name='产品名称')),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('selltime', models.CharField(blank=True, max_length=30, null=True, verbose_name='售卖时间')),
                ('batch', models.CharField(blank=True, max_length=30, null=True, verbose_name='售卖批次')),
                ('sellnum', models.CharField(blank=True, max_length=30, null=True, verbose_name='售卖数量')),
                ('clientname', models.CharField(blank=True, max_length=30, null=True, verbose_name='客户名称')),
                ('clienttel', models.CharField(blank=True, max_length=30, null=True, verbose_name='客户电话')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_sell_info',
            },
        ),
        migrations.CreateModel(
            name='MongoSf_Control_Data',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('user', models.CharField(default='', max_length=50)),
                ('relayNum', models.CharField(blank=True, max_length=200, null=True, verbose_name='设备通道操作编号')),
                ('relayState', models.CharField(blank=True, max_length=200, null=True, verbose_name='设备操作记录')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_sf_control_data',
            },
        ),
        migrations.CreateModel(
            name='MongoSf_Data',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('device_data', models.CharField(blank=True, max_length=200, null=True, verbose_name='设备历史数据')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_sf_data',
            },
        ),
        migrations.CreateModel(
            name='MongoSf_Info',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('device_name', models.CharField(default='', max_length=50)),
                ('eleNum', models.CharField(blank=True, max_length=200, null=True, verbose_name='16路要素通道的索引')),
                ('eleName', models.CharField(blank=True, max_length=200, null=True, verbose_name='16路要素通道的名称')),
                ('relayNum', models.CharField(blank=True, max_length=200, null=True, verbose_name='32路继电器通道的索引')),
                ('relayName', models.CharField(blank=True, max_length=200, null=True, verbose_name='32路继电器通道的名称')),
                ('lng', models.CharField(blank=True, max_length=30, null=True, verbose_name='经度')),
                ('lat', models.CharField(blank=True, max_length=30, null=True, verbose_name='纬度')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_sf_info',
            },
        ),
        migrations.CreateModel(
            name='MongoSf_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('device_addr', models.CharField(blank=True, max_length=200, null=True, verbose_name='设备电磁阀定位')),
                ('device_status', models.CharField(blank=True, max_length=200, null=True, verbose_name='当前设备状态')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_sf_status',
            },
        ),
        migrations.CreateModel(
            name='MongoSimInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('iccid', models.CharField(max_length=30, unique=True, verbose_name='sim卡号')),
                ('expiry_time', models.IntegerField(default=0, verbose_name='到期时间')),
                ('sim_type', models.IntegerField(default=0, verbose_name='sim卡厂商')),
                ('sim_data', models.TextField(default='', verbose_name='sim信息')),
                ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
                ('modify_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
            ],
            options={
                'db_table': 'sa_sim_info',
            },
        ),
        migrations.CreateModel(
            name='MongoStockInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('farm', models.CharField(default='', max_length=50, verbose_name='所属基地')),
                ('land', models.CharField(default='', max_length=50, verbose_name='所属地块')),
                ('suppliesname', models.CharField(default='', max_length=50, verbose_name='物料名称')),
                ('suppliescode', models.CharField(default='', max_length=50, verbose_name='物料编号')),
                ('typename', models.CharField(default='', max_length=50, verbose_name='品类')),
                ('stockbatch', models.CharField(blank=True, max_length=20, null=True, verbose_name='库存')),
                ('stocknum', models.CharField(blank=True, max_length=20, null=True, verbose_name='库存数量')),
                ('firm', models.CharField(blank=True, max_length=20, null=True, verbose_name='生产企业')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_stock_info',
            },
        ),
        migrations.CreateModel(
            name='MongoSYCBData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_sycb_data',
            },
        ),
        migrations.CreateModel(
            name='MongoTransportInfo',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('backcode', models.CharField(default='', max_length=50, verbose_name='溯源码')),
                ('transname', models.CharField(blank=True, max_length=30, null=True, verbose_name='产品名称')),
                ('stime', models.CharField(blank=True, max_length=30, null=True, verbose_name='发货时间')),
                ('etime', models.CharField(blank=True, max_length=30, null=True, verbose_name='到货时间')),
                ('saddr', models.CharField(blank=True, max_length=30, null=True, verbose_name='发货地点')),
                ('province', models.CharField(blank=True, max_length=30, null=True, verbose_name='省-到货地点')),
                ('city', models.CharField(blank=True, max_length=30, null=True, verbose_name='市-到货地点')),
                ('area', models.CharField(blank=True, max_length=30, null=True, verbose_name='县-到货地点')),
                ('eaddr', models.CharField(blank=True, max_length=30, null=True, verbose_name='到货地点')),
                ('detailaddr', models.CharField(blank=True, max_length=100, null=True, verbose_name='详细到货地址')),
                ('trans', models.CharField(blank=True, max_length=30, null=True, verbose_name='运输方法')),
                ('batch', models.CharField(blank=True, max_length=30, null=True, verbose_name='批次名称')),
                ('user', models.CharField(blank=True, max_length=20, null=True, verbose_name='操作人')),
                ('uptime', models.IntegerField(default=0, verbose_name='操作时间')),
            ],
            options={
                'db_table': 'sa_transport_info',
            },
        ),
        migrations.CreateModel(
            name='MongoUserDeviceOrderModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uid', models.IntegerField(default=0, verbose_name='负责人uid')),
                ('device_id', models.CharField(max_length=50, verbose_name='设备id')),
                ('order', models.IntegerField(default=0, verbose_name='排序字段')),
                ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
            ],
            options={
                'db_table': 'sa_user_device_order',
            },
        ),
        migrations.CreateModel(
            name='MongoUserEarlyWarningConfig',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='用户id')),
                ('title', models.CharField(max_length=50, verbose_name='标题')),
                ('create_time', models.IntegerField(default=0, verbose_name='创建时间')),
                ('device_type_id', models.IntegerField(default=0, verbose_name='设备类型')),
                ('status', models.IntegerField(default=1, verbose_name='状态')),
            ],
            options={
                'db_table': 'sa_device_user_early_warning_config',
            },
        ),
        migrations.CreateModel(
            name='MongoUserLoginLog',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('uid', models.PositiveIntegerField(default=0)),
                ('ip', models.GenericIPAddressField(default='')),
                ('addtime', models.PositiveIntegerField(default=0)),
                ('device_type', models.PositiveIntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_user_login_log',
            },
        ),
        migrations.CreateModel(
            name='MongoUserMenuPerGroupModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uid', models.IntegerField(unique=True, verbose_name='用户uid')),
                ('menus', models.TextField(verbose_name='菜单id列表')),
                ('group_ids', models.CharField(max_length=256, verbose_name='权限组id列表')),
            ],
            options={
                'db_table': 'sa_user_menu_per_group',
            },
        ),
        migrations.CreateModel(
            name='MongoUserPestWarningSMSConf',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='用户id')),
                ('warning_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='预警设置id')),
                ('device_ids', models.TextField(default='', verbose_name='多个设备号')),
                ('warning_type', models.IntegerField(default=0, verbose_name='预警类型')),
                ('conf', models.TextField(default=0, verbose_name='短信预警内容')),
                ('send_user', models.TextField(default=0, verbose_name='多个发送用户')),
                ('create_time', models.IntegerField(default=0, verbose_name='创建时间')),
            ],
            options={
                'db_table': 'sa_device_user_pest_warning_sms_conf',
            },
        ),
        migrations.CreateModel(
            name='MongoUserSaleDevice',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uid', models.PositiveIntegerField(verbose_name='用户UID')),
                ('device_id', models.CharField(max_length=50, unique=True, verbose_name='设备本身id')),
            ],
            options={
                'db_table': 'sa_user_sale_device',
            },
        ),
        migrations.CreateModel(
            name='MongoUserUploadsPictures',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uid', models.PositiveIntegerField(default=0, verbose_name='用户ID')),
                ('addr', models.CharField(default='', max_length=200, verbose_name='原图路径')),
                ('indentify_photo', models.CharField(default='', max_length=200, verbose_name='识别图路径')),
                ('indentify_result', models.CharField(default='', max_length=100)),
                ('addtime', models.IntegerField(default=0, verbose_name='上传时间戳秒级')),
                ('interface', models.CharField(default='', max_length=50)),
            ],
            options={
                'db_table': 'user_uploads_pictures',
            },
        ),
        migrations.CreateModel(
            name='MongoUserWarningLiaisons',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('user_id', models.CharField(blank=True, default='', max_length=50, null=True, verbose_name='用户id')),
                ('liaisons', models.CharField(default='', max_length=50, verbose_name='联系人名称')),
                ('phone', models.IntegerField(default=0, verbose_name='联系人电话')),
                ('send_count', models.IntegerField(default=0, verbose_name='发送次数')),
                ('create_time', models.IntegerField(default=0, verbose_name='创建时间')),
            ],
            options={
                'db_table': 'sa_device_user_warning_liaisons',
            },
        ),
        migrations.CreateModel(
            name='MongoVersion_Record',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('app_name', models.CharField(blank=True, max_length=50, verbose_name='app版本名称')),
                ('app_num', models.CharField(blank=True, max_length=50, verbose_name='版本号')),
                ('app_desc', models.CharField(blank=True, max_length=50, verbose_name='更新描述')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_app_version_record',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Base_Info',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('have_camera', models.CharField(blank=True, max_length=20, null=True, verbose_name='是否有监控')),
                ('camera_addr', models.TextField(default='', verbose_name='播放地址')),
                ('runmode', models.CharField(blank=True, max_length=20, null=True, verbose_name='设备运行状态')),
                ('dev_list', models.TextField(blank=True, null=True, verbose_name='设备列表及名称')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='设备列表的新名称')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_base_info',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Input_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('output', models.TextField(blank=True, null=True, verbose_name='控制IO输入点状态上报')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='控制IO输入点备注')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_input_status',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Output_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('output', models.TextField(blank=True, null=True, verbose_name='控制IO输出点状态上报')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='控制IO输出点备注')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_output_status',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Switch_Auto_His',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('dev_name', models.CharField(blank=True, max_length=20, null=True, verbose_name='开关名称')),
                ('ctl_mod', models.CharField(blank=True, max_length=20, null=True, verbose_name='控制模式')),
                ('switch_list', models.TextField(blank=True, null=True, verbose_name='开关状态')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='开关状态备注')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_switch_auto_his',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Switch_Data',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('data', models.TextField(blank=True, null=True, verbose_name='开关状态')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='开关状态备注')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_switch_data',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Switch_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('dev_name', models.CharField(default='', max_length=50, verbose_name='开关名称')),
                ('status', models.TextField(blank=True, null=True, verbose_name='开关状态')),
                ('remark', models.TextField(blank=True, null=True, verbose_name='开关状态备注')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_switch_status',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Weather_Data',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('data', models.TextField(blank=True, null=True, verbose_name='气象要素')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_weather_data',
            },
        ),
        migrations.CreateModel(
            name='MongoWarm_Weather_Status',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('status', models.TextField(blank=True, null=True, verbose_name='气象要素')),
                ('uptime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_warm_weather_status',
            },
        ),
        migrations.CreateModel(
            name='MongoWheatdata',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('device_id', models.CharField(default='', max_length=50)),
                ('province', models.CharField(blank=True, max_length=20, null=True, verbose_name='省')),
                ('city', models.CharField(blank=True, max_length=20, null=True, verbose_name='市')),
                ('county', models.CharField(blank=True, max_length=20, null=True, verbose_name='县')),
                ('uptime', models.IntegerField(default=0, verbose_name='上传时间')),
                ('data', models.TextField(blank=True, null=True, verbose_name='数据')),
            ],
            options={
                'db_table': 'sa_device_wheatdata',
            },
        ),
        migrations.CreateModel(
            name='MongoWheatIncidence',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('device_id', models.CharField(default='', max_length=50)),
                ('province', models.CharField(blank=True, max_length=20, null=True, verbose_name='省')),
                ('city', models.CharField(blank=True, max_length=20, null=True, verbose_name='市')),
                ('county', models.CharField(blank=True, max_length=20, null=True, verbose_name='县')),
                ('uptime', models.IntegerField(default=0, verbose_name='上传时间')),
                ('incidence', models.CharField(blank=True, max_length=200, null=True, verbose_name='发生率')),
            ],
            options={
                'db_table': 'sa_device_wheatincidence',
            },
        ),
        migrations.CreateModel(
            name='MongoWheatstatus',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('device_id', models.CharField(default='', max_length=50)),
                ('province', models.CharField(blank=True, max_length=20, null=True, verbose_name='省')),
                ('city', models.CharField(blank=True, max_length=20, null=True, verbose_name='市')),
                ('county', models.CharField(blank=True, max_length=20, null=True, verbose_name='县')),
                ('uptime', models.IntegerField(default=0, verbose_name='上传时间')),
                ('status', models.TextField(blank=True, max_length=500, null=True, verbose_name='状态')),
            ],
            options={
                'db_table': 'sa_device_wheatstatus',
            },
        ),
        migrations.CreateModel(
            name='MongoXCTData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_xct_data',
            },
        ),
        migrations.CreateModel(
            name='MongoXCTphoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default=0, max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default=0, max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default=0, max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default=0, max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default=0, max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default=0, max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
                ('label', models.TextField(blank=True)),
            ],
            options={
                'db_table': 'sa_device_xct_photo',
            },
        ),
        migrations.CreateModel(
            name='MongoXYCBData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_xycb_data',
            },
        ),
        migrations.CreateModel(
            name='MongoXYThreeData',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.PositiveIntegerField(default=0, verbose_name='设备自增id')),
                ('device_data', models.TextField(default='', verbose_name='具体历史状态数据')),
                ('addtime', models.IntegerField(default=0)),
            ],
            options={
                'db_table': 'sa_device_xy_three_data',
            },
        ),
        migrations.CreateModel(
            name='MongoXYThreephoto',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('device_id', models.CharField(default='', max_length=50)),
                ('addtime', models.IntegerField(default=0)),
                ('uptime', models.IntegerField(default=0)),
                ('addr', models.CharField(default=0, max_length=200, verbose_name='照片路径')),
                ('at', models.CharField(default=0, max_length=50, verbose_name='环境温度')),
                ('ah', models.CharField(default=0, max_length=50, verbose_name='环境湿度')),
                ('describe', models.CharField(default=0, max_length=50, verbose_name='描述')),
                ('indentify_photo', models.CharField(default=0, max_length=200, verbose_name='识别照片路径')),
                ('indentify_result', models.CharField(default=0, max_length=100)),
                ('photo_status', models.PositiveIntegerField(default=1)),
                ('is_mark', models.PositiveIntegerField(default=0)),
                ('mark', models.TextField(default='[]')),
            ],
            options={
                'db_table': 'sa_device_xy_three_photo',
            },
        ),
        migrations.CreateModel(
            name='Purview',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('parent_perm_id', models.PositiveIntegerField(default=0, verbose_name='父级权限')),
                ('purview_name', models.CharField(default='', max_length=100, verbose_name='权限名称')),
                ('path', models.CharField(default='', max_length=100, verbose_name='接口标识')),
                ('menu', models.CharField(default='', max_length=100, verbose_name='菜单标识')),
                ('addtime', models.PositiveIntegerField(default=0)),
                ('uptime', models.PositiveIntegerField(default=0)),
                ('url', models.TextField(default=0, verbose_name='页面路由')),
                ('enable', models.BooleanField(default=True, verbose_name='是否启用')),
                ('priority', models.IntegerField(default=0, verbose_name='排序优先级，整数0最小')),
            ],
            options={
                'db_table': 'sa_purview',
            },
        ),
        migrations.CreateModel(
            name='Role',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('role_name', models.CharField(default='', max_length=100, verbose_name='角色名称')),
                ('role_message', models.TextField(default='', verbose_name='角色描述')),
                ('role_perm', models.TextField(default='', verbose_name='角色拥有的权限')),
                ('role_status', models.PositiveIntegerField(default=1)),
                ('addtime', models.PositiveIntegerField(default=0)),
                ('uptime', models.PositiveIntegerField(default=0)),
                ('add_by', models.PositiveIntegerField(blank=True, default=None, null=True, verbose_name='创建人')),
            ],
            options={
                'db_table': 'sa_role',
            },
        ),
        migrations.CreateModel(
            name='UserPurview',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('parent_perm_id', models.PositiveIntegerField(default=0, verbose_name='父级权限')),
                ('purview_name', models.CharField(default='', max_length=100, verbose_name='权限名称')),
                ('path', models.CharField(default='', max_length=100, verbose_name='接口标识')),
                ('menu', models.CharField(default='', max_length=100, verbose_name='菜单标识')),
                ('addtime', models.PositiveIntegerField(default=0)),
                ('uptime', models.PositiveIntegerField(default=0)),
                ('url', models.TextField(default=0, verbose_name='页面路由')),
            ],
            options={
                'db_table': 'sa_user_purview',
            },
        ),
        migrations.AlterUniqueTogether(
            name='mongootherusertypemodel',
            unique_together={('other_name', 'other_type')},
        ),
        migrations.AlterUniqueTogether(
            name='mongomenupergroupmodel',
            unique_together={('name', 'uid')},
        ),
        migrations.AlterUniqueTogether(
            name='mongodeviceconfig',
            unique_together={('d_id', 'cmd')},
        ),
    ]
