0001_initial.py 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. # Generated by Django 2.1.1 on 2018-09-12 03:11
  2. import Model.models
  3. from django.conf import settings
  4. from django.db import migrations, models
  5. import django.db.models.deletion
  6. import imagekit.models.fields
  7. class Migration(migrations.Migration):
  8. initial = True
  9. dependencies = [
  10. ]
  11. operations = [
  12. migrations.CreateModel(
  13. name='Access_Log',
  14. fields=[
  15. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  16. ('user', models.CharField(blank=True, max_length=100, null=True, verbose_name='用户')),
  17. ('operation', models.CharField(blank=True, db_index=True, max_length=100, null=True, verbose_name='操作')),
  18. ('ip', models.CharField(blank=True, max_length=100, null=True, verbose_name='访问ip地址')),
  19. ('url', models.CharField(blank=True, max_length=150, null=True, verbose_name='访问路径')),
  20. ('status', models.IntegerField(blank=True, null=True, verbose_name='状态')),
  21. ('time', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='访问时间')),
  22. ('content', models.TextField(blank=True, null=True, verbose_name='参数内容')),
  23. ],
  24. options={
  25. 'verbose_name': '访问日志表',
  26. 'verbose_name_plural': '访问日志表',
  27. 'db_table': 'access_log',
  28. },
  29. ),
  30. migrations.CreateModel(
  31. name='App_Info',
  32. fields=[
  33. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  34. ('appBundleId', models.CharField(blank=True, max_length=32, verbose_name='appID')),
  35. ('appName', models.CharField(blank=True, max_length=32, verbose_name='app名称')),
  36. ('systemLanguage', models.CharField(blank=True, max_length=32, verbose_name='系统语言')),
  37. ('newAppversion', models.CharField(blank=True, max_length=12, verbose_name='系统版本')),
  38. ('bundleVersion', models.CharField(blank=True, max_length=12, verbose_name='项目版本')),
  39. ('content', models.TextField(blank=True, null=True, verbose_name='更新内容')),
  40. ('app_type', models.IntegerField(blank=True, null=True, verbose_name='app类型')),
  41. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  42. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  43. ('downloadLink', models.TextField(blank=True, null=True, verbose_name='升级')),
  44. ],
  45. options={
  46. 'verbose_name': 'app信息表',
  47. 'verbose_name_plural': 'app信息表',
  48. 'db_table': 'app_info',
  49. 'ordering': ('id',),
  50. },
  51. ),
  52. migrations.CreateModel(
  53. name='Auth_Captcha',
  54. fields=[
  55. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  56. ('username', models.CharField(help_text='用户名(邮箱或电话号码)', max_length=50)),
  57. ('authcaptca', models.CharField(help_text='验证码', max_length=6)),
  58. ('sendtype', models.CharField(choices=[('register', '注册'), ('forget', '找回密码')], max_length=15)),
  59. ('sendtime', models.DateTimeField(auto_now_add=True)),
  60. ],
  61. options={
  62. 'verbose_name': '邮箱验证码',
  63. 'verbose_name_plural': '邮箱验证码',
  64. 'db_table': 'auth_captcha',
  65. 'ordering': ('-sendtime',),
  66. },
  67. ),
  68. migrations.CreateModel(
  69. name='Device_Info',
  70. fields=[
  71. ('id', models.CharField(blank=True, max_length=32, primary_key=True, serialize=False)),
  72. ('NickName', models.CharField(blank=True, max_length=32, verbose_name='设备名称')),
  73. ('UID', models.CharField(blank=True, max_length=32, verbose_name='设备UID')),
  74. ('SID', models.CharField(blank=True, max_length=32, verbose_name='服务器ID')),
  75. ('View_Account', models.CharField(blank=True, max_length=32, verbose_name='设备用户名称')),
  76. ('View_Password', models.CharField(blank=True, max_length=32, verbose_name='设备密码')),
  77. ('AudioFormat', models.IntegerField(blank=True, default=1, verbose_name='初始化影像')),
  78. ('EventNotification', models.IntegerField(blank=True, verbose_name='报警类型')),
  79. ('ChannelIndex', models.IntegerField(blank=True, verbose_name='通道号')),
  80. ('Online', models.BooleanField(blank=True, default=False, verbose_name='设备是否在线')),
  81. ('mMonitorIndex', models.IntegerField(blank=True, default=-1)),
  82. ('Type', models.IntegerField(blank=True)),
  83. ('DebugMode', models.IntegerField(blank=True, verbose_name='调试模式')),
  84. ('NotificationMode', models.IntegerField(blank=True, verbose_name='是否报警')),
  85. ('qvgaLevel', models.BooleanField(blank=True, default=0, help_text='0代表:SD、1代表:HD', verbose_name='SD与HD画面')),
  86. ('isShare', models.BooleanField(blank=True, default=False, help_text='是否为共享获取的设备', verbose_name='共享设备')),
  87. ('primaryUserID', models.CharField(blank=True, default='', help_text='该设备的主用户', max_length=32, verbose_name='主用户')),
  88. ('data_joined', models.DateTimeField(auto_now_add=True, verbose_name='设备添加时间')),
  89. ('update_time', models.DateTimeField(auto_now=True, null=True, verbose_name='更新时间')),
  90. ('ip', models.CharField(blank=True, max_length=100, null=True, verbose_name='设备区域ip')),
  91. ('area', models.CharField(blank=True, max_length=100, null=True, verbose_name='设备区域area')),
  92. ],
  93. options={
  94. 'verbose_name': '用户设备信息表',
  95. 'verbose_name_plural': '用户设备信息表',
  96. 'db_table': 'device_info',
  97. 'ordering': ('-data_joined',),
  98. },
  99. ),
  100. migrations.CreateModel(
  101. name='Device_Meal',
  102. fields=[
  103. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  104. ('status', models.IntegerField(blank=True, null=True, verbose_name='状态')),
  105. ('uid', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备ID')),
  106. ('channel', models.IntegerField(blank=True, null=True, verbose_name='设备通道')),
  107. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  108. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  109. ('end_time', models.DateTimeField(blank=True, verbose_name='最后时间')),
  110. ],
  111. options={
  112. 'verbose_name': '设备关联套餐表',
  113. 'verbose_name_plural': '设备关联套餐表',
  114. 'db_table': 'device_meal',
  115. 'ordering': ('id',),
  116. },
  117. ),
  118. migrations.CreateModel(
  119. name='Email_Captcha',
  120. fields=[
  121. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  122. ('userCaptcha', models.CharField(max_length=10, verbose_name='验证码')),
  123. ('userEmail', models.EmailField(max_length=50, verbose_name='邮箱')),
  124. ('sendType', models.CharField(choices=[('register', '注册'), ('forget', '找回密码')], max_length=15)),
  125. ('sendTime', models.DateField(auto_now_add=True)),
  126. ],
  127. options={
  128. 'verbose_name': '邮箱验证码',
  129. 'verbose_name_plural': '邮箱验证码',
  130. 'db_table': 'email_captcha',
  131. 'ordering': ('-sendTime',),
  132. },
  133. ),
  134. migrations.CreateModel(
  135. name='Equipment_Info',
  136. fields=[
  137. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  138. ('devUid', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备ID')),
  139. ('devNickName', models.CharField(blank=True, default='', max_length=32, verbose_name='设备昵称')),
  140. ('Channel', models.IntegerField(blank=True, null=True, verbose_name='设备通道')),
  141. ('eventType', models.IntegerField(blank=True, null=True, verbose_name='事件类型')),
  142. ('viewAccont', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备账户')),
  143. ('viewPwd', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备密码')),
  144. ('status', models.BooleanField(blank=True, default=False, verbose_name='事件状态')),
  145. ('alarm', models.CharField(blank=True, max_length=256, verbose_name='报警信息')),
  146. ('eventTime', models.CharField(blank=True, max_length=16, null=True, verbose_name='设备报警时间')),
  147. ('receiveTime', models.CharField(blank=True, max_length=16, null=True, verbose_name='接收到报警时间')),
  148. ],
  149. options={
  150. 'verbose_name': '设备信息推送表',
  151. 'verbose_name_plural': '设备信息推送表',
  152. 'db_table': 'equipment_info',
  153. 'ordering': ('-id',),
  154. },
  155. ),
  156. migrations.CreateModel(
  157. name='Equipment_Sensor',
  158. fields=[
  159. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  160. ('status', models.IntegerField(blank=True, null=True, verbose_name='状态')),
  161. ('type', models.IntegerField(blank=True, null=True, verbose_name='类型')),
  162. ('name', models.CharField(blank=True, max_length=128, null=True, verbose_name='传感器名称')),
  163. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  164. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  165. ('uid', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备ID')),
  166. ],
  167. options={
  168. 'verbose_name': '设备传感器表',
  169. 'verbose_name_plural': '设备传感器表',
  170. 'db_table': 'equipment_sensor',
  171. 'ordering': ('id',),
  172. },
  173. ),
  174. migrations.CreateModel(
  175. name='Equipment_Stream',
  176. fields=[
  177. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  178. ('userID', models.CharField(blank=True, max_length=32, verbose_name='用户ID')),
  179. ('status', models.IntegerField(blank=True, null=True, verbose_name='状态')),
  180. ('uid', models.CharField(blank=True, max_length=32, null=True, verbose_name='设备ID')),
  181. ('channel', models.IntegerField(blank=True, null=True, verbose_name='设备通道')),
  182. ('access_token', models.CharField(blank=True, max_length=128, verbose_name='设备推流验证令牌')),
  183. ('total_flow', models.FloatField(blank=True, null=True, verbose_name='传输总容量')),
  184. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  185. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  186. ('rank', models.IntegerField(blank=True, null=True, verbose_name='推流套餐类型')),
  187. ],
  188. options={
  189. 'verbose_name': '用户设备推流表',
  190. 'verbose_name_plural': '用户设备推流表',
  191. 'db_table': 'equipment_stream',
  192. },
  193. ),
  194. migrations.CreateModel(
  195. name='Equipment_Version',
  196. fields=[
  197. ('eid', models.CharField(blank=True, max_length=32, primary_key=True, serialize=False)),
  198. ('ESN', models.CharField(blank=True, max_length=32, verbose_name='设备规格名称')),
  199. ('code', models.CharField(blank=True, max_length=32, verbose_name='设备规格代码')),
  200. ('version', models.CharField(blank=True, max_length=32, verbose_name='设备版本')),
  201. ('softwareVersion', models.CharField(blank=True, max_length=32, verbose_name='软件本版本')),
  202. ('chipModelList2Code', models.CharField(blank=True, max_length=32, verbose_name='主芯片码')),
  203. ('channel', models.IntegerField(blank=True, verbose_name='通道数')),
  204. ('resolutionRatio', models.IntegerField(blank=True, verbose_name='分辨率')),
  205. ('type', models.CharField(blank=True, max_length=16, verbose_name='设备机型')),
  206. ('companyCode', models.CharField(blank=True, max_length=128, verbose_name='用户公司名称')),
  207. ('data_joined', models.DateTimeField(auto_now_add=True, verbose_name='加入时间')),
  208. ('fileSize', models.IntegerField(blank=True, verbose_name='文件总大小')),
  209. ('filePath', models.CharField(blank=True, max_length=256, verbose_name='升级文件路径')),
  210. ('Description', models.TextField(blank=True, default='', verbose_name='描述信息')),
  211. ('fileMd5', models.CharField(blank=True, max_length=32, null=True, verbose_name='上传文件MD5加密')),
  212. ('status', models.BooleanField(blank=True, default=True, verbose_name='是否开启更新状态')),
  213. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  214. ],
  215. options={
  216. 'verbose_name': '设备版本信息',
  217. 'db_table': 'equipment_version',
  218. 'ordering': ('-data_joined',),
  219. },
  220. ),
  221. migrations.CreateModel(
  222. name='Feedback_Info',
  223. fields=[
  224. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  225. ('userID', models.CharField(blank=True, max_length=32, verbose_name='用户ID')),
  226. ('status', models.BooleanField(blank=True, default=False, verbose_name='状态:0未解决/解决')),
  227. ('content', models.TextField(blank=True, null=True, verbose_name='反馈描述')),
  228. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间/反馈时间')),
  229. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  230. ],
  231. options={
  232. 'verbose_name': '用户反馈信息表',
  233. 'verbose_name_plural': '用户反馈信息表',
  234. 'db_table': 'feedback_info',
  235. 'ordering': ('id',),
  236. },
  237. ),
  238. migrations.CreateModel(
  239. name='oauth_user',
  240. fields=[
  241. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增标记ID')),
  242. ('oid', models.CharField(blank=True, max_length=36, null=True, unique=True)),
  243. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  244. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  245. ],
  246. options={
  247. 'verbose_name': '认证用户关联表',
  248. 'verbose_name_plural': '认证用户关联表',
  249. 'db_table': 'oauth_user',
  250. 'ordering': ('id',),
  251. },
  252. ),
  253. migrations.CreateModel(
  254. name='Permissions',
  255. fields=[
  256. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  257. ('permName', models.CharField(blank=True, max_length=32, null=True, unique=True, verbose_name='权限名称')),
  258. ('description', models.CharField(blank=True, default='', max_length=128, null=True, verbose_name='描述信息')),
  259. ],
  260. options={
  261. 'verbose_name': 'role permission',
  262. 'verbose_name_plural': 'role permission',
  263. 'db_table': 'permissions',
  264. 'ordering': ['permName'],
  265. },
  266. managers=[
  267. ('objects', Model.models.PermissionsManager()),
  268. ],
  269. ),
  270. migrations.CreateModel(
  271. name='Role',
  272. fields=[
  273. ('rid', models.SmallIntegerField(primary_key=True, serialize=False, unique=True, verbose_name='用户角色组ID')),
  274. ('roleName', models.CharField(choices=[('Guests', 'Guests'), ('Users', 'Users'), ('Admins', 'Admins'), ('SysAdmins', 'SysAdmins'), ('LOGAdmins', 'LOGAdmins'), ('OTAAdmins', 'OTAAdmins'), ('DBAAdmins', 'DBAAdmins'), ('SuperAdmins', 'SuperAdmins')], default='User', max_length=32, unique=True, verbose_name='角色名称')),
  275. ('Description', models.TextField(blank=True, default='', verbose_name='描述信息')),
  276. ('permission', models.ManyToManyField(blank=True, db_table='role_permissions', to='Model.Permissions', verbose_name='权限')),
  277. ],
  278. options={
  279. 'verbose_name': '用户角色',
  280. 'verbose_name_plural': '用户角色',
  281. 'db_table': 'role',
  282. 'ordering': ['roleName'],
  283. },
  284. managers=[
  285. ('objects', Model.models.RoleManager()),
  286. ],
  287. ),
  288. migrations.CreateModel(
  289. name='Store_Meal',
  290. fields=[
  291. ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增ID')),
  292. ('title', models.CharField(blank=True, max_length=32, verbose_name='标题')),
  293. ('price', models.CharField(blank=True, max_length=32, verbose_name='价格')),
  294. ('day', models.IntegerField(blank=True, null=True, verbose_name='存储时间')),
  295. ('content', models.TextField(blank=True, null=True, verbose_name='描述')),
  296. ('add_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='加入时间')),
  297. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  298. ],
  299. options={
  300. 'verbose_name': '存储套餐',
  301. 'verbose_name_plural': '存储套餐',
  302. 'db_table': 'store_meal',
  303. 'ordering': ('id',),
  304. },
  305. ),
  306. migrations.CreateModel(
  307. name='Device_User',
  308. fields=[
  309. ('userID', models.CharField(blank=True, default='153672190513592013800138000', max_length=32, primary_key=True, serialize=False, unique=True, verbose_name='用户ID')),
  310. ('username', models.CharField(max_length=40, unique=True, verbose_name='用户名')),
  311. ('password', models.CharField(max_length=128, verbose_name='密码')),
  312. ('userEmail', models.EmailField(blank=True, max_length=64, null=True, unique=True, verbose_name='邮箱')),
  313. ('userIconPath', imagekit.models.fields.ProcessedImageField(blank=True, default='static/User/default.png', upload_to='User/Images/', verbose_name='头像')),
  314. ('userIconUrl', models.URLField(blank=True, default='http://192.168.136.45:8077/account/getAvatar/User/defaultUser.png', max_length=128)),
  315. ('NickName', models.CharField(blank=True, default='', max_length=32, verbose_name='用户昵称')),
  316. ('is_superuser', models.IntegerField(blank=True, default=0, verbose_name='用户类型')),
  317. ('is_active', models.BooleanField(blank=True, default=False, verbose_name='用户活动状态')),
  318. ('data_joined', models.DateTimeField(auto_now_add=True, verbose_name='加入时间')),
  319. ('last_login', models.DateTimeField(auto_now=True, verbose_name='u最后登录时间')),
  320. ('user_isValid', models.BooleanField(blank=True, default=False, help_text='是否是认证通过的用户', verbose_name='用户有效性')),
  321. ('online', models.BooleanField(blank=True, default=False, verbose_name='用户登录状态')),
  322. ('machine_code', models.CharField(blank=True, default='', max_length=128, verbose_name='机械码')),
  323. ('language', models.CharField(blank=True, default='', max_length=16, null=True, verbose_name='语言地区')),
  324. ],
  325. options={
  326. 'verbose_name': '用户信息',
  327. 'db_table': 'device_user',
  328. 'ordering': ('-data_joined',),
  329. 'get_latest_by': 'last_login',
  330. },
  331. ),
  332. migrations.CreateModel(
  333. name='AuthToken_JWT',
  334. fields=[
  335. ('jwtID', models.OneToOneField(blank=True, on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL, verbose_name='token userID')),
  336. ('access_token', models.CharField(blank=True, max_length=384, verbose_name='Access Token')),
  337. ('refresh_token', models.CharField(blank=True, max_length=384, verbose_name='Refresh Token')),
  338. ('secret', models.CharField(blank=True, max_length=32, verbose_name='Secret')),
  339. ('last_update', models.DateTimeField(auto_now=True, verbose_name='Last Update')),
  340. ],
  341. options={
  342. 'verbose_name': '用户JWT',
  343. 'verbose_name_plural': '用户JWT',
  344. 'db_table': 'authtoken_jwt',
  345. 'ordering': ('-last_update',),
  346. },
  347. ),
  348. migrations.CreateModel(
  349. name='AuthToken_Token',
  350. fields=[
  351. ('tokenID', models.OneToOneField(blank=True, on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)),
  352. ('access_token', models.CharField(blank=True, max_length=256)),
  353. ('refresh_token', models.CharField(blank=True, max_length=256)),
  354. ('last_update', models.DateTimeField(auto_now=True)),
  355. ('iCode', models.CharField(blank=True, max_length=12, verbose_name='干扰码')),
  356. ('mCode', models.CharField(blank=True, max_length=64, verbose_name='设备码')),
  357. ],
  358. options={
  359. 'verbose_name': '用户Token',
  360. 'db_table': 'authtoken_token',
  361. 'ordering': ('-last_update',),
  362. },
  363. ),
  364. migrations.AddField(
  365. model_name='device_user',
  366. name='role',
  367. field=models.ManyToManyField(blank=True, db_table='user_role', to='Model.Role', verbose_name='用户角色'),
  368. ),
  369. migrations.AlterUniqueTogether(
  370. name='permissions',
  371. unique_together={('permName',)},
  372. ),
  373. migrations.AddField(
  374. model_name='oauth_user',
  375. name='userID',
  376. field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户表userID'),
  377. ),
  378. migrations.AddField(
  379. model_name='equipment_info',
  380. name='userID',
  381. field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
  382. ),
  383. migrations.AddField(
  384. model_name='device_meal',
  385. name='rank',
  386. field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to='Model.Store_Meal', verbose_name='套餐类型'),
  387. ),
  388. migrations.AddField(
  389. model_name='device_info',
  390. name='userID',
  391. field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
  392. ),
  393. ]