@maxisoft/instantcms-mcp 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +308 -0
  3. package/dist/__tests__/artifact-tool.test.js +196 -0
  4. package/dist/__tests__/db-tool.test.js +152 -0
  5. package/dist/__tests__/define-tool.test.js +106 -0
  6. package/dist/__tests__/find-tool.test.js +185 -0
  7. package/dist/__tests__/get-component-api.test.js +144 -0
  8. package/dist/__tests__/hardening.test.js +73 -0
  9. package/dist/__tests__/hooks-tool.test.js +173 -0
  10. package/dist/__tests__/mcp-integration-extra.test.js +166 -0
  11. package/dist/__tests__/mcp-integration.test.js +53 -0
  12. package/dist/__tests__/pagination.test.js +114 -0
  13. package/dist/__tests__/performance-baseline.test.js +56 -0
  14. package/dist/__tests__/project-patch.test.js +144 -0
  15. package/dist/__tests__/project-source.test.js +44 -0
  16. package/dist/__tests__/project-workflows-extra.test.js +165 -0
  17. package/dist/__tests__/project-workflows.test.js +51 -0
  18. package/dist/__tests__/scaffold-addon-roundtrip.test.js +287 -0
  19. package/dist/__tests__/serialization.test.js +170 -0
  20. package/dist/__tests__/source-knowledge-parsers.test.js +42 -0
  21. package/dist/__tests__/template-development.test.js +78 -0
  22. package/dist/__tests__/template-productivity.test.js +87 -0
  23. package/dist/__tests__/tools.test.js +2143 -0
  24. package/dist/data/components.js +2818 -0
  25. package/dist/data/controllers-map.js +7571 -0
  26. package/dist/data/core-api.js +9356 -0
  27. package/dist/data/database-schema.js +4555 -0
  28. package/dist/data/events-map.js +1339 -0
  29. package/dist/data/fields-map.js +3692 -0
  30. package/dist/data/hooks.js +2257 -0
  31. package/dist/data/js-api.js +123 -0
  32. package/dist/data/libs-api.js +264 -0
  33. package/dist/data/routes-map.js +203 -0
  34. package/dist/data/schemas-validation.js +255 -0
  35. package/dist/data/schemas.js +1404 -0
  36. package/dist/data/traits-map.js +1004 -0
  37. package/dist/data/version-profiles.js +41 -0
  38. package/dist/data/widgets-map.js +131 -0
  39. package/dist/data/wysiwyg-map.js +486 -0
  40. package/dist/generated/components-source.js +14748 -0
  41. package/dist/generated/hooks-source.js +3399 -0
  42. package/dist/generated/knowledge-meta.js +101 -0
  43. package/dist/index.js +13 -0
  44. package/dist/registry/database-tools.js +112 -0
  45. package/dist/registry/extension-tools.js +473 -0
  46. package/dist/registry/generator-tools.js +506 -0
  47. package/dist/registry/knowledge-tools.js +441 -0
  48. package/dist/registry/language-tools.js +99 -0
  49. package/dist/registry/meta-tools.js +152 -0
  50. package/dist/registry/project-tools.js +48 -0
  51. package/dist/registry/resources.js +98 -0
  52. package/dist/registry/source-tools.js +211 -0
  53. package/dist/registry/template-development-tools.js +79 -0
  54. package/dist/server.js +32 -0
  55. package/dist/tools/addon-tool.js +1437 -0
  56. package/dist/tools/admin-partial-tool.js +498 -0
  57. package/dist/tools/api-tool.js +294 -0
  58. package/dist/tools/artifact-tool.js +95 -0
  59. package/dist/tools/cache-tool.js +360 -0
  60. package/dist/tools/component-tool.js +415 -0
  61. package/dist/tools/controllers-tool.js +125 -0
  62. package/dist/tools/cron-tool.js +197 -0
  63. package/dist/tools/crud-tool.js +659 -0
  64. package/dist/tools/db-tool.js +198 -0
  65. package/dist/tools/email-tool.js +222 -0
  66. package/dist/tools/external-api-tool.js +596 -0
  67. package/dist/tools/filter-tool.js +341 -0
  68. package/dist/tools/form-tool.js +275 -0
  69. package/dist/tools/grid-tool.js +189 -0
  70. package/dist/tools/hooks-tool.js +104 -0
  71. package/dist/tools/import-export-tool.js +548 -0
  72. package/dist/tools/lang-tool.js +251 -0
  73. package/dist/tools/layout-override-tool.js +125 -0
  74. package/dist/tools/layout-tool.js +548 -0
  75. package/dist/tools/maria-tool.js +127 -0
  76. package/dist/tools/mariadb.js +201 -0
  77. package/dist/tools/migration-tool.js +329 -0
  78. package/dist/tools/oauth-tool.js +520 -0
  79. package/dist/tools/parser/components-parser.js +76 -0
  80. package/dist/tools/parser/controllers-parser.js +313 -0
  81. package/dist/tools/parser/core-parser.js +294 -0
  82. package/dist/tools/parser/coverage-generator.js +424 -0
  83. package/dist/tools/parser/events-parser.js +127 -0
  84. package/dist/tools/parser/fields-parser.js +382 -0
  85. package/dist/tools/parser/hooks-parser.js +106 -0
  86. package/dist/tools/parser/sql-parser.js +197 -0
  87. package/dist/tools/parser/traits-parser.js +161 -0
  88. package/dist/tools/parser/widgets-parser.js +150 -0
  89. package/dist/tools/permission-tool.js +348 -0
  90. package/dist/tools/project-patch-tool.js +73 -0
  91. package/dist/tools/project-source-tool.js +188 -0
  92. package/dist/tools/project-workflow-tool.js +186 -0
  93. package/dist/tools/requirement-tool.js +212 -0
  94. package/dist/tools/scaffold-tool.js +815 -0
  95. package/dist/tools/seo-tool.js +412 -0
  96. package/dist/tools/source-tool.js +155 -0
  97. package/dist/tools/template-development-tool.js +271 -0
  98. package/dist/tools/template-overrides-tool.js +294 -0
  99. package/dist/tools/template-productivity-tool.js +319 -0
  100. package/dist/tools/template-tool.js +665 -0
  101. package/dist/tools/test-tool.js +183 -0
  102. package/dist/tools/webhook-tool.js +427 -0
  103. package/dist/tools/widget-tool.js +331 -0
  104. package/dist/tools/wysiwyg-tool.js +137 -0
  105. package/dist/types/scaffold.js +68 -0
  106. package/dist/utils/define-tool.js +37 -0
  107. package/dist/utils/find-tool.js +97 -0
  108. package/dist/utils/mcp-result.js +18 -0
  109. package/dist/utils/pagination.js +27 -0
  110. package/dist/utils/serialization.js +27 -0
  111. package/package.json +94 -0
@@ -0,0 +1,4555 @@
1
+ "use strict";
2
+ // AUTO-GENERATED from base.sql
3
+ // Do not edit manually - run 'npm run parse:database' to regenerate
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.databaseSchema = void 0;
6
+ exports.getTable = getTable;
7
+ exports.getTablesByPrefix = getTablesByPrefix;
8
+ exports.databaseSchema = {
9
+ "tables": [
10
+ {
11
+ "name": "cms_layout_cols",
12
+ "comment": "Колонки схемы позиций",
13
+ "fields": [
14
+ {
15
+ "name": "id",
16
+ "type": "INT(11)",
17
+ "nullable": false,
18
+ "extra": "AUTO_INCREMENT"
19
+ },
20
+ {
21
+ "name": "row_id",
22
+ "type": "INT(11)",
23
+ "nullable": true,
24
+ "default": "NULL",
25
+ "comment": "ID ряда"
26
+ },
27
+ {
28
+ "name": "title",
29
+ "type": "VARCHAR(255)",
30
+ "nullable": true,
31
+ "default": "NULL"
32
+ },
33
+ {
34
+ "name": "name",
35
+ "type": "VARCHAR(50)",
36
+ "nullable": true,
37
+ "default": "NULL",
38
+ "comment": "Название позиции"
39
+ },
40
+ {
41
+ "name": "type",
42
+ "type": "ENUM('TYPICAL','CUSTOM')",
43
+ "nullable": true,
44
+ "default": "typical",
45
+ "comment": "Тип колонки"
46
+ },
47
+ {
48
+ "name": "ordering",
49
+ "type": "INT(11)",
50
+ "nullable": true,
51
+ "default": "NULL",
52
+ "comment": "Порядок колонки в исходном коде"
53
+ },
54
+ {
55
+ "name": "tag",
56
+ "type": "VARCHAR(10)",
57
+ "nullable": true,
58
+ "default": "div",
59
+ "comment": "Тег колонки"
60
+ },
61
+ {
62
+ "name": "class",
63
+ "type": "VARCHAR(100)",
64
+ "nullable": true,
65
+ "default": "NULL",
66
+ "comment": "CSS класс колонки"
67
+ },
68
+ {
69
+ "name": "wrapper",
70
+ "type": "TEXT",
71
+ "nullable": true,
72
+ "comment": "Шаблон колонки"
73
+ },
74
+ {
75
+ "name": "options",
76
+ "type": "TEXT",
77
+ "nullable": true,
78
+ "comment": "Опции колонки"
79
+ }
80
+ ],
81
+ "indexes": [
82
+ {
83
+ "name": "PRIMARY",
84
+ "fields": [
85
+ "id"
86
+ ]
87
+ },
88
+ {
89
+ "name": "name",
90
+ "fields": [
91
+ "name"
92
+ ]
93
+ },
94
+ {
95
+ "name": "row_id",
96
+ "fields": [
97
+ "row_id"
98
+ ]
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "name": "cms_layout_rows",
104
+ "comment": "Ряды схемы позиций виджетов",
105
+ "fields": [
106
+ {
107
+ "name": "id",
108
+ "type": "INT(11)",
109
+ "nullable": false,
110
+ "extra": "AUTO_INCREMENT"
111
+ },
112
+ {
113
+ "name": "parent_id",
114
+ "type": "INT(11)",
115
+ "nullable": true,
116
+ "default": "NULL",
117
+ "comment": "ID колонки родителя"
118
+ },
119
+ {
120
+ "name": "title",
121
+ "type": "VARCHAR(255)",
122
+ "nullable": true,
123
+ "default": "NULL"
124
+ },
125
+ {
126
+ "name": "tag",
127
+ "type": "VARCHAR(10)",
128
+ "nullable": true,
129
+ "default": "NULL",
130
+ "comment": "Тег ряда"
131
+ },
132
+ {
133
+ "name": "template",
134
+ "type": "VARCHAR(30)",
135
+ "nullable": true,
136
+ "default": "NULL",
137
+ "comment": "Привязка к шаблону"
138
+ },
139
+ {
140
+ "name": "ordering",
141
+ "type": "INT(11)",
142
+ "nullable": true,
143
+ "default": "NULL",
144
+ "comment": "Порядок ряда в исходном коде"
145
+ },
146
+ {
147
+ "name": "nested_position",
148
+ "type": "ENUM('AFTER','BEFORE')",
149
+ "nullable": true,
150
+ "default": "NULL",
151
+ "comment": "Позиция вложенного ряда"
152
+ },
153
+ {
154
+ "name": "class",
155
+ "type": "VARCHAR(100)",
156
+ "nullable": true,
157
+ "default": "NULL",
158
+ "comment": "CSS класс ряда"
159
+ },
160
+ {
161
+ "name": "options",
162
+ "type": "TEXT",
163
+ "nullable": true,
164
+ "comment": "Опции ряда"
165
+ }
166
+ ],
167
+ "indexes": [
168
+ {
169
+ "name": "PRIMARY",
170
+ "fields": [
171
+ "id"
172
+ ]
173
+ },
174
+ {
175
+ "name": "template",
176
+ "fields": [
177
+ "template",
178
+ "ordering"
179
+ ]
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "name": "cms_typograph_presets",
185
+ "comment": "Пресеты для типографа",
186
+ "fields": [
187
+ {
188
+ "name": "id",
189
+ "type": "INT(11)",
190
+ "nullable": false,
191
+ "extra": "AUTO_INCREMENT"
192
+ },
193
+ {
194
+ "name": "options",
195
+ "type": "TEXT",
196
+ "nullable": true,
197
+ "default": "NULL",
198
+ "comment": "Опции"
199
+ },
200
+ {
201
+ "name": "title",
202
+ "type": "VARCHAR(100)",
203
+ "nullable": true,
204
+ "default": "NULL",
205
+ "comment": "Название пресета"
206
+ }
207
+ ],
208
+ "indexes": [
209
+ {
210
+ "name": "PRIMARY",
211
+ "fields": [
212
+ "id"
213
+ ]
214
+ }
215
+ ]
216
+ },
217
+ {
218
+ "name": "cms_jobs",
219
+ "comment": "Очередь",
220
+ "fields": [
221
+ {
222
+ "name": "id",
223
+ "type": "BIGINT(20)",
224
+ "nullable": false,
225
+ "extra": "AUTO_INCREMENT"
226
+ },
227
+ {
228
+ "name": "queue",
229
+ "type": "VARCHAR(100)",
230
+ "nullable": true,
231
+ "default": "NULL",
232
+ "comment": "Название очереди"
233
+ },
234
+ {
235
+ "name": "payload",
236
+ "type": "MEDIUMTEXT",
237
+ "nullable": true,
238
+ "comment": "Данные задания"
239
+ },
240
+ {
241
+ "name": "last_error",
242
+ "type": "VARCHAR(200)",
243
+ "nullable": true,
244
+ "default": "NULL",
245
+ "comment": "Последняя ошибка"
246
+ },
247
+ {
248
+ "name": "priority",
249
+ "type": "TINYINT(1)",
250
+ "nullable": true,
251
+ "default": "1",
252
+ "comment": "Приоритет"
253
+ },
254
+ {
255
+ "name": "attempts",
256
+ "type": "TINYINT(1)",
257
+ "nullable": false,
258
+ "default": "0",
259
+ "comment": "Попытки выполнения"
260
+ },
261
+ {
262
+ "name": "is_locked",
263
+ "type": "TINYINT(1)",
264
+ "nullable": true,
265
+ "default": "NULL",
266
+ "comment": "Блокировка одновременного запуска"
267
+ },
268
+ {
269
+ "name": "date_created",
270
+ "type": "TIMESTAMP",
271
+ "nullable": false,
272
+ "default": "CURRENT_TIMESTAMP",
273
+ "comment": "Дата постановки в очередь"
274
+ },
275
+ {
276
+ "name": "date_started",
277
+ "type": "TIMESTAMP",
278
+ "nullable": true,
279
+ "default": "NULL",
280
+ "comment": "Дата последней попытки выполнения задания"
281
+ }
282
+ ],
283
+ "indexes": [
284
+ {
285
+ "name": "PRIMARY",
286
+ "fields": [
287
+ "id"
288
+ ]
289
+ },
290
+ {
291
+ "name": "queue",
292
+ "fields": [
293
+ "queue"
294
+ ]
295
+ },
296
+ {
297
+ "name": "attempts",
298
+ "fields": [
299
+ "attempts",
300
+ "is_locked",
301
+ "date_started",
302
+ "priority",
303
+ "date_created"
304
+ ]
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ "name": "cms_content_datasets",
310
+ "comment": "Наборы для типов контента",
311
+ "fields": [
312
+ {
313
+ "name": "id",
314
+ "type": "INT(11)",
315
+ "nullable": false,
316
+ "extra": "AUTO_INCREMENT"
317
+ },
318
+ {
319
+ "name": "ctype_id",
320
+ "type": "INT(11)",
321
+ "nullable": true,
322
+ "default": "NULL",
323
+ "comment": "ID типа контента"
324
+ },
325
+ {
326
+ "name": "name",
327
+ "type": "VARCHAR(32)",
328
+ "nullable": false,
329
+ "comment": "Название набора"
330
+ },
331
+ {
332
+ "name": "title",
333
+ "type": "VARCHAR(100)",
334
+ "nullable": true,
335
+ "default": "NULL",
336
+ "comment": "Заголовок набора"
337
+ },
338
+ {
339
+ "name": "description",
340
+ "type": "TEXT",
341
+ "nullable": true,
342
+ "comment": "Описание"
343
+ },
344
+ {
345
+ "name": "ordering",
346
+ "type": "INT(11)",
347
+ "nullable": true,
348
+ "default": "NULL",
349
+ "comment": "Порядковый номер"
350
+ },
351
+ {
352
+ "name": "is_visible",
353
+ "type": "TINYINT(1)",
354
+ "nullable": true,
355
+ "default": "NULL",
356
+ "comment": "Отображать набор на сайте?"
357
+ },
358
+ {
359
+ "name": "filters",
360
+ "type": "TEXT",
361
+ "nullable": true,
362
+ "comment": "Массив фильтров набора"
363
+ },
364
+ {
365
+ "name": "sorting",
366
+ "type": "TEXT",
367
+ "nullable": true,
368
+ "comment": "Массив правил сортировки"
369
+ },
370
+ {
371
+ "name": "index",
372
+ "type": "VARCHAR(40)",
373
+ "nullable": true,
374
+ "default": "NULL",
375
+ "comment": "Название используемого индекса"
376
+ },
377
+ {
378
+ "name": "groups_view",
379
+ "type": "TEXT",
380
+ "nullable": true,
381
+ "comment": "Показывать группам"
382
+ },
383
+ {
384
+ "name": "groups_hide",
385
+ "type": "TEXT",
386
+ "nullable": true,
387
+ "comment": "Скрывать от групп"
388
+ },
389
+ {
390
+ "name": "seo_keys",
391
+ "type": "VARCHAR(256)",
392
+ "nullable": true,
393
+ "default": "NULL"
394
+ },
395
+ {
396
+ "name": "seo_desc",
397
+ "type": "VARCHAR(256)",
398
+ "nullable": true,
399
+ "default": "NULL"
400
+ },
401
+ {
402
+ "name": "seo_title",
403
+ "type": "VARCHAR(256)",
404
+ "nullable": true,
405
+ "default": "NULL"
406
+ },
407
+ {
408
+ "name": "seo_h1",
409
+ "type": "VARCHAR(256)",
410
+ "nullable": true,
411
+ "default": "NULL"
412
+ },
413
+ {
414
+ "name": "cats_view",
415
+ "type": "TEXT",
416
+ "nullable": true,
417
+ "comment": "Показывать в категориях"
418
+ },
419
+ {
420
+ "name": "cats_hide",
421
+ "type": "TEXT",
422
+ "nullable": true,
423
+ "comment": "Не показывать в категориях"
424
+ },
425
+ {
426
+ "name": "max_count",
427
+ "type": "SMALLINT(5)",
428
+ "nullable": false,
429
+ "default": "0"
430
+ },
431
+ {
432
+ "name": "target_controller",
433
+ "type": "VARCHAR(32)",
434
+ "nullable": true,
435
+ "default": "NULL"
436
+ },
437
+ {
438
+ "name": "list",
439
+ "type": "TEXT",
440
+ "nullable": true
441
+ }
442
+ ],
443
+ "indexes": [
444
+ {
445
+ "name": "PRIMARY",
446
+ "fields": [
447
+ "id"
448
+ ]
449
+ },
450
+ {
451
+ "name": "name",
452
+ "fields": [
453
+ "name"
454
+ ]
455
+ },
456
+ {
457
+ "name": "ctype_id",
458
+ "fields": [
459
+ "ctype_id",
460
+ "ordering"
461
+ ]
462
+ },
463
+ {
464
+ "name": "index",
465
+ "fields": [
466
+ "index"
467
+ ]
468
+ },
469
+ {
470
+ "name": "target_controller",
471
+ "fields": [
472
+ "target_controller",
473
+ "ordering"
474
+ ]
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "name": "cms_content_folders",
480
+ "comment": "Папки для записей типов контента",
481
+ "fields": [
482
+ {
483
+ "name": "id",
484
+ "type": "INT(11)",
485
+ "nullable": false,
486
+ "extra": "AUTO_INCREMENT"
487
+ },
488
+ {
489
+ "name": "ctype_id",
490
+ "type": "INT(11)",
491
+ "nullable": true,
492
+ "default": "NULL"
493
+ },
494
+ {
495
+ "name": "user_id",
496
+ "type": "INT(11)",
497
+ "nullable": true,
498
+ "default": "NULL"
499
+ },
500
+ {
501
+ "name": "title",
502
+ "type": "VARCHAR(128)",
503
+ "nullable": true,
504
+ "default": "NULL"
505
+ }
506
+ ],
507
+ "indexes": [
508
+ {
509
+ "name": "PRIMARY",
510
+ "fields": [
511
+ "id"
512
+ ]
513
+ },
514
+ {
515
+ "name": "user_id",
516
+ "fields": [
517
+ "user_id",
518
+ "ctype_id",
519
+ "title"
520
+ ]
521
+ }
522
+ ]
523
+ },
524
+ {
525
+ "name": "cms_content_relations",
526
+ "comment": "Связи типов контента",
527
+ "fields": [
528
+ {
529
+ "name": "id",
530
+ "type": "INT(11)",
531
+ "nullable": false,
532
+ "extra": "AUTO_INCREMENT"
533
+ },
534
+ {
535
+ "name": "title",
536
+ "type": "VARCHAR(256)",
537
+ "nullable": true,
538
+ "default": "NULL"
539
+ },
540
+ {
541
+ "name": "target_controller",
542
+ "type": "VARCHAR(32)",
543
+ "nullable": false,
544
+ "default": "content"
545
+ },
546
+ {
547
+ "name": "ctype_id",
548
+ "type": "INT(11)",
549
+ "nullable": true,
550
+ "default": "NULL"
551
+ },
552
+ {
553
+ "name": "child_ctype_id",
554
+ "type": "INT(11)",
555
+ "nullable": true,
556
+ "default": "NULL"
557
+ },
558
+ {
559
+ "name": "layout",
560
+ "type": "VARCHAR(32)",
561
+ "nullable": true,
562
+ "default": "NULL"
563
+ },
564
+ {
565
+ "name": "options",
566
+ "type": "TEXT",
567
+ "nullable": true
568
+ },
569
+ {
570
+ "name": "seo_keys",
571
+ "type": "VARCHAR(256)",
572
+ "nullable": true,
573
+ "default": "NULL"
574
+ },
575
+ {
576
+ "name": "seo_desc",
577
+ "type": "VARCHAR(256)",
578
+ "nullable": true,
579
+ "default": "NULL"
580
+ },
581
+ {
582
+ "name": "seo_title",
583
+ "type": "VARCHAR(256)",
584
+ "nullable": true,
585
+ "default": "NULL"
586
+ },
587
+ {
588
+ "name": "ordering",
589
+ "type": "INT(11)",
590
+ "nullable": false,
591
+ "default": "0"
592
+ }
593
+ ],
594
+ "indexes": [
595
+ {
596
+ "name": "PRIMARY",
597
+ "fields": [
598
+ "id"
599
+ ]
600
+ },
601
+ {
602
+ "name": "ctype_id",
603
+ "fields": [
604
+ "ctype_id",
605
+ "ordering"
606
+ ]
607
+ },
608
+ {
609
+ "name": "child_ctype_id",
610
+ "fields": [
611
+ "child_ctype_id",
612
+ "target_controller",
613
+ "ordering"
614
+ ]
615
+ }
616
+ ]
617
+ },
618
+ {
619
+ "name": "cms_content_relations_bind",
620
+ "fields": [
621
+ {
622
+ "name": "id",
623
+ "type": "INT(11)",
624
+ "nullable": false,
625
+ "extra": "AUTO_INCREMENT"
626
+ },
627
+ {
628
+ "name": "parent_ctype_id",
629
+ "type": "INT(11)",
630
+ "nullable": true,
631
+ "default": "NULL"
632
+ },
633
+ {
634
+ "name": "parent_item_id",
635
+ "type": "INT(11)",
636
+ "nullable": true,
637
+ "default": "NULL"
638
+ },
639
+ {
640
+ "name": "child_ctype_id",
641
+ "type": "INT(11)",
642
+ "nullable": true,
643
+ "default": "NULL"
644
+ },
645
+ {
646
+ "name": "child_item_id",
647
+ "type": "INT(11)",
648
+ "nullable": true,
649
+ "default": "NULL"
650
+ },
651
+ {
652
+ "name": "target_controller",
653
+ "type": "VARCHAR(32)",
654
+ "nullable": false,
655
+ "default": "content"
656
+ }
657
+ ],
658
+ "indexes": [
659
+ {
660
+ "name": "PRIMARY",
661
+ "fields": [
662
+ "id"
663
+ ]
664
+ },
665
+ {
666
+ "name": "parent_ctype_id",
667
+ "fields": [
668
+ "parent_ctype_id"
669
+ ]
670
+ },
671
+ {
672
+ "name": "child_ctype_id",
673
+ "fields": [
674
+ "child_ctype_id"
675
+ ]
676
+ },
677
+ {
678
+ "name": "parent_item_id",
679
+ "fields": [
680
+ "parent_item_id",
681
+ "target_controller"
682
+ ]
683
+ },
684
+ {
685
+ "name": "child_item_id",
686
+ "fields": [
687
+ "child_item_id",
688
+ "target_controller"
689
+ ]
690
+ }
691
+ ]
692
+ },
693
+ {
694
+ "name": "cms_content_types",
695
+ "comment": "Типы контента",
696
+ "fields": [
697
+ {
698
+ "name": "id",
699
+ "type": "INT(11)",
700
+ "nullable": false,
701
+ "extra": "AUTO_INCREMENT"
702
+ },
703
+ {
704
+ "name": "title",
705
+ "type": "VARCHAR(100)",
706
+ "nullable": true,
707
+ "default": "NULL",
708
+ "comment": "Название"
709
+ },
710
+ {
711
+ "name": "name",
712
+ "type": "VARCHAR(32)",
713
+ "nullable": false,
714
+ "comment": "Системное имя"
715
+ },
716
+ {
717
+ "name": "description",
718
+ "type": "TEXT",
719
+ "nullable": true,
720
+ "comment": "Описание"
721
+ },
722
+ {
723
+ "name": "ordering",
724
+ "type": "INT(11)",
725
+ "nullable": true,
726
+ "default": "NULL"
727
+ },
728
+ {
729
+ "name": "is_enabled",
730
+ "type": "TINYINT(1)",
731
+ "nullable": true,
732
+ "default": "1"
733
+ },
734
+ {
735
+ "name": "is_date_range",
736
+ "type": "TINYINT(1)",
737
+ "nullable": true,
738
+ "default": "NULL",
739
+ "comment": "Разрешить управление сроком публикации?"
740
+ },
741
+ {
742
+ "name": "is_cats",
743
+ "type": "TINYINT(1)",
744
+ "nullable": true,
745
+ "default": "NULL",
746
+ "comment": "Категории включены?"
747
+ },
748
+ {
749
+ "name": "is_cats_recursive",
750
+ "type": "TINYINT(1)",
751
+ "nullable": true,
752
+ "default": "NULL",
753
+ "comment": "Сквозной просмотр категорий?"
754
+ },
755
+ {
756
+ "name": "is_folders",
757
+ "type": "TINYINT(1)",
758
+ "nullable": true,
759
+ "default": "NULL",
760
+ "comment": "Включены личные папки?"
761
+ },
762
+ {
763
+ "name": "is_in_groups",
764
+ "type": "TINYINT(1)",
765
+ "nullable": true,
766
+ "default": "NULL",
767
+ "comment": "Создание в группах"
768
+ },
769
+ {
770
+ "name": "is_in_groups_only",
771
+ "type": "TINYINT(1)",
772
+ "nullable": true,
773
+ "default": "NULL",
774
+ "comment": "Создание только в группах"
775
+ },
776
+ {
777
+ "name": "is_comments",
778
+ "type": "TINYINT(1)",
779
+ "nullable": true,
780
+ "default": "NULL",
781
+ "comment": "Комментарии включены?"
782
+ },
783
+ {
784
+ "name": "is_rating",
785
+ "type": "TINYINT(1)",
786
+ "nullable": true,
787
+ "default": "NULL",
788
+ "comment": "Разрешить рейтинг?"
789
+ },
790
+ {
791
+ "name": "is_tags",
792
+ "type": "TINYINT(1)",
793
+ "nullable": true,
794
+ "default": "NULL",
795
+ "comment": "Разрешить теги?"
796
+ },
797
+ {
798
+ "name": "is_auto_keys",
799
+ "type": "TINYINT(1)",
800
+ "nullable": true,
801
+ "default": "NULL",
802
+ "comment": "Автоматическая генерация ключевых слов?"
803
+ },
804
+ {
805
+ "name": "is_auto_desc",
806
+ "type": "TINYINT(1)",
807
+ "nullable": true,
808
+ "default": "NULL",
809
+ "comment": "Автоматическая генерация описания?"
810
+ },
811
+ {
812
+ "name": "is_auto_url",
813
+ "type": "TINYINT(1)",
814
+ "nullable": true,
815
+ "default": "NULL",
816
+ "comment": "Генерировать URL из заголовка?"
817
+ },
818
+ {
819
+ "name": "is_fixed_url",
820
+ "type": "TINYINT(1)",
821
+ "nullable": true,
822
+ "default": "NULL",
823
+ "comment": "Не изменять URL при изменении записи?"
824
+ },
825
+ {
826
+ "name": "url_pattern",
827
+ "type": "VARCHAR(255)",
828
+ "nullable": true,
829
+ "default": "{id}-{title}"
830
+ },
831
+ {
832
+ "name": "options",
833
+ "type": "TEXT",
834
+ "nullable": true,
835
+ "comment": "Массив опций"
836
+ },
837
+ {
838
+ "name": "labels",
839
+ "type": "TEXT",
840
+ "nullable": true,
841
+ "comment": "Массив заголовков"
842
+ },
843
+ {
844
+ "name": "seo_keys",
845
+ "type": "VARCHAR(256)",
846
+ "nullable": true,
847
+ "default": "NULL",
848
+ "comment": "Ключевые слова"
849
+ },
850
+ {
851
+ "name": "seo_desc",
852
+ "type": "VARCHAR(256)",
853
+ "nullable": true,
854
+ "default": "NULL",
855
+ "comment": "Описание"
856
+ },
857
+ {
858
+ "name": "seo_title",
859
+ "type": "VARCHAR(256)",
860
+ "nullable": true,
861
+ "default": "NULL"
862
+ },
863
+ {
864
+ "name": "item_append_html",
865
+ "type": "TEXT",
866
+ "nullable": true
867
+ },
868
+ {
869
+ "name": "is_fixed",
870
+ "type": "TINYINT(1)",
871
+ "nullable": true,
872
+ "default": "NULL",
873
+ "comment": "Нельзя удалить из админки"
874
+ }
875
+ ],
876
+ "indexes": [
877
+ {
878
+ "name": "PRIMARY",
879
+ "fields": [
880
+ "id"
881
+ ]
882
+ },
883
+ {
884
+ "name": "name",
885
+ "fields": [
886
+ "name"
887
+ ],
888
+ "type": "UNIQUE"
889
+ },
890
+ {
891
+ "name": "ordering",
892
+ "fields": [
893
+ "ordering"
894
+ ]
895
+ }
896
+ ]
897
+ },
898
+ {
899
+ "name": "cms_controllers",
900
+ "comment": "Компоненты",
901
+ "fields": [
902
+ {
903
+ "name": "id",
904
+ "type": "INT(11)",
905
+ "nullable": false,
906
+ "extra": "AUTO_INCREMENT"
907
+ },
908
+ {
909
+ "name": "title",
910
+ "type": "VARCHAR(64)",
911
+ "nullable": false
912
+ },
913
+ {
914
+ "name": "name",
915
+ "type": "VARCHAR(32)",
916
+ "nullable": false,
917
+ "comment": "Системное имя"
918
+ },
919
+ {
920
+ "name": "slug",
921
+ "type": "VARCHAR(64)",
922
+ "nullable": true,
923
+ "default": "NULL"
924
+ },
925
+ {
926
+ "name": "is_enabled",
927
+ "type": "TINYINT(1)",
928
+ "nullable": true,
929
+ "default": "1",
930
+ "comment": "Включен?"
931
+ },
932
+ {
933
+ "name": "options",
934
+ "type": "TEXT",
935
+ "nullable": true,
936
+ "comment": "Массив настроек"
937
+ },
938
+ {
939
+ "name": "author",
940
+ "type": "VARCHAR(128)",
941
+ "nullable": false,
942
+ "comment": "Имя автора"
943
+ },
944
+ {
945
+ "name": "url",
946
+ "type": "VARCHAR(250)",
947
+ "nullable": true,
948
+ "default": "NULL",
949
+ "comment": "Сайт автора"
950
+ },
951
+ {
952
+ "name": "version",
953
+ "type": "VARCHAR(8)",
954
+ "nullable": false,
955
+ "comment": "Версия"
956
+ },
957
+ {
958
+ "name": "is_backend",
959
+ "type": "TINYINT(1)",
960
+ "nullable": true,
961
+ "default": "NULL",
962
+ "comment": "Есть админка?"
963
+ },
964
+ {
965
+ "name": "is_external",
966
+ "type": "TINYINT(1)",
967
+ "nullable": true,
968
+ "default": "NULL",
969
+ "comment": "Сторонний компонент"
970
+ },
971
+ {
972
+ "name": "files",
973
+ "type": "TEXT",
974
+ "nullable": true,
975
+ "comment": "Список файлов контроллера (для стороних компонентов)"
976
+ },
977
+ {
978
+ "name": "addon_id",
979
+ "type": "INT(11)",
980
+ "nullable": true,
981
+ "default": "NULL",
982
+ "comment": "ID дополнения в официальном каталоге"
983
+ }
984
+ ],
985
+ "indexes": [
986
+ {
987
+ "name": "PRIMARY",
988
+ "fields": [
989
+ "id"
990
+ ]
991
+ },
992
+ {
993
+ "name": "name",
994
+ "fields": [
995
+ "name"
996
+ ]
997
+ }
998
+ ]
999
+ },
1000
+ {
1001
+ "name": "cms_con_pages",
1002
+ "fields": [
1003
+ {
1004
+ "name": "id",
1005
+ "type": "INT(11)",
1006
+ "nullable": false,
1007
+ "extra": "AUTO_INCREMENT"
1008
+ },
1009
+ {
1010
+ "name": "title",
1011
+ "type": "VARCHAR(100)",
1012
+ "nullable": true,
1013
+ "default": "NULL"
1014
+ },
1015
+ {
1016
+ "name": "content",
1017
+ "type": "TEXT",
1018
+ "nullable": true
1019
+ },
1020
+ {
1021
+ "name": "slug",
1022
+ "type": "VARCHAR(100)",
1023
+ "nullable": true,
1024
+ "default": "NULL"
1025
+ },
1026
+ {
1027
+ "name": "seo_keys",
1028
+ "type": "VARCHAR(256)",
1029
+ "nullable": true,
1030
+ "default": "NULL"
1031
+ },
1032
+ {
1033
+ "name": "seo_desc",
1034
+ "type": "VARCHAR(256)",
1035
+ "nullable": true,
1036
+ "default": "NULL"
1037
+ },
1038
+ {
1039
+ "name": "seo_title",
1040
+ "type": "VARCHAR(256)",
1041
+ "nullable": true,
1042
+ "default": "NULL"
1043
+ },
1044
+ {
1045
+ "name": "tags",
1046
+ "type": "VARCHAR(1000)",
1047
+ "nullable": true,
1048
+ "default": "NULL"
1049
+ },
1050
+ {
1051
+ "name": "template",
1052
+ "type": "VARCHAR(150)",
1053
+ "nullable": true,
1054
+ "default": "NULL"
1055
+ },
1056
+ {
1057
+ "name": "date_pub",
1058
+ "type": "TIMESTAMP",
1059
+ "nullable": false,
1060
+ "default": "CURRENT_TIMESTAMP"
1061
+ },
1062
+ {
1063
+ "name": "date_last_modified",
1064
+ "type": "TIMESTAMP",
1065
+ "nullable": true,
1066
+ "default": "NULL"
1067
+ },
1068
+ {
1069
+ "name": "date_pub_end",
1070
+ "type": "TIMESTAMP",
1071
+ "nullable": true,
1072
+ "default": "NULL"
1073
+ },
1074
+ {
1075
+ "name": "is_pub",
1076
+ "type": "TINYINT(1)",
1077
+ "nullable": false,
1078
+ "default": "1"
1079
+ },
1080
+ {
1081
+ "name": "hits_count",
1082
+ "type": "INT(11)",
1083
+ "nullable": true,
1084
+ "default": "0"
1085
+ },
1086
+ {
1087
+ "name": "user_id",
1088
+ "type": "INT(11)",
1089
+ "nullable": true,
1090
+ "default": "NULL"
1091
+ },
1092
+ {
1093
+ "name": "parent_id",
1094
+ "type": "INT(11)",
1095
+ "nullable": true,
1096
+ "default": "NULL"
1097
+ },
1098
+ {
1099
+ "name": "parent_type",
1100
+ "type": "VARCHAR(32)",
1101
+ "nullable": true,
1102
+ "default": "NULL"
1103
+ },
1104
+ {
1105
+ "name": "parent_title",
1106
+ "type": "VARCHAR(100)",
1107
+ "nullable": true,
1108
+ "default": "NULL"
1109
+ },
1110
+ {
1111
+ "name": "parent_url",
1112
+ "type": "VARCHAR(255)",
1113
+ "nullable": true,
1114
+ "default": "NULL"
1115
+ },
1116
+ {
1117
+ "name": "is_parent_hidden",
1118
+ "type": "TINYINT(1)",
1119
+ "nullable": true,
1120
+ "default": "NULL"
1121
+ },
1122
+ {
1123
+ "name": "category_id",
1124
+ "type": "INT(11)",
1125
+ "nullable": false,
1126
+ "default": "1"
1127
+ },
1128
+ {
1129
+ "name": "folder_id",
1130
+ "type": "INT(11)",
1131
+ "nullable": true,
1132
+ "default": "NULL"
1133
+ },
1134
+ {
1135
+ "name": "is_comments_on",
1136
+ "type": "TINYINT(1)",
1137
+ "nullable": true,
1138
+ "default": "1"
1139
+ },
1140
+ {
1141
+ "name": "comments",
1142
+ "type": "INT(11)",
1143
+ "nullable": false,
1144
+ "default": "0"
1145
+ },
1146
+ {
1147
+ "name": "rating",
1148
+ "type": "INT(11)",
1149
+ "nullable": false,
1150
+ "default": "0"
1151
+ },
1152
+ {
1153
+ "name": "is_deleted",
1154
+ "type": "TINYINT(1)",
1155
+ "nullable": true,
1156
+ "default": "NULL"
1157
+ },
1158
+ {
1159
+ "name": "is_approved",
1160
+ "type": "TINYINT(1)",
1161
+ "nullable": true,
1162
+ "default": "1"
1163
+ },
1164
+ {
1165
+ "name": "approved_by",
1166
+ "type": "INT(11)",
1167
+ "nullable": true,
1168
+ "default": "NULL"
1169
+ },
1170
+ {
1171
+ "name": "date_approved",
1172
+ "type": "TIMESTAMP",
1173
+ "nullable": true,
1174
+ "default": "NULL"
1175
+ },
1176
+ {
1177
+ "name": "is_private",
1178
+ "type": "TINYINT(1)",
1179
+ "nullable": false,
1180
+ "default": "0"
1181
+ },
1182
+ {
1183
+ "name": "attach",
1184
+ "type": "TEXT",
1185
+ "nullable": true
1186
+ },
1187
+ {
1188
+ "name": "FULLTEXT",
1189
+ "type": "KEY",
1190
+ "nullable": true
1191
+ }
1192
+ ],
1193
+ "indexes": [
1194
+ {
1195
+ "name": "PRIMARY",
1196
+ "fields": [
1197
+ "id"
1198
+ ]
1199
+ },
1200
+ {
1201
+ "name": "category_id",
1202
+ "fields": [
1203
+ "category_id"
1204
+ ]
1205
+ },
1206
+ {
1207
+ "name": "folder_id",
1208
+ "fields": [
1209
+ "folder_id"
1210
+ ]
1211
+ },
1212
+ {
1213
+ "name": "slug",
1214
+ "fields": [
1215
+ "slug"
1216
+ ]
1217
+ },
1218
+ {
1219
+ "name": "date_pub",
1220
+ "fields": [
1221
+ "is_pub",
1222
+ "is_parent_hidden",
1223
+ "is_deleted",
1224
+ "is_approved",
1225
+ "date_pub"
1226
+ ]
1227
+ },
1228
+ {
1229
+ "name": "parent_id",
1230
+ "fields": [
1231
+ "parent_id",
1232
+ "parent_type",
1233
+ "date_pub"
1234
+ ]
1235
+ },
1236
+ {
1237
+ "name": "user_id",
1238
+ "fields": [
1239
+ "user_id",
1240
+ "date_pub"
1241
+ ]
1242
+ },
1243
+ {
1244
+ "name": "date_pub_end",
1245
+ "fields": [
1246
+ "date_pub_end"
1247
+ ]
1248
+ }
1249
+ ]
1250
+ },
1251
+ {
1252
+ "name": "cms_con_pages_cats",
1253
+ "fields": [
1254
+ {
1255
+ "name": "id",
1256
+ "type": "INT(11)",
1257
+ "nullable": false,
1258
+ "extra": "AUTO_INCREMENT"
1259
+ },
1260
+ {
1261
+ "name": "parent_id",
1262
+ "type": "INT(11)",
1263
+ "nullable": true,
1264
+ "default": "NULL"
1265
+ },
1266
+ {
1267
+ "name": "title",
1268
+ "type": "VARCHAR(200)",
1269
+ "nullable": true,
1270
+ "default": "NULL"
1271
+ },
1272
+ {
1273
+ "name": "description",
1274
+ "type": "TEXT",
1275
+ "nullable": true,
1276
+ "default": "NULL"
1277
+ },
1278
+ {
1279
+ "name": "slug",
1280
+ "type": "VARCHAR(255)",
1281
+ "nullable": true,
1282
+ "default": "NULL"
1283
+ },
1284
+ {
1285
+ "name": "slug_key",
1286
+ "type": "VARCHAR(255)",
1287
+ "nullable": true,
1288
+ "default": "NULL"
1289
+ },
1290
+ {
1291
+ "name": "seo_keys",
1292
+ "type": "VARCHAR(256)",
1293
+ "nullable": true,
1294
+ "default": "NULL"
1295
+ },
1296
+ {
1297
+ "name": "seo_desc",
1298
+ "type": "VARCHAR(256)",
1299
+ "nullable": true,
1300
+ "default": "NULL"
1301
+ },
1302
+ {
1303
+ "name": "seo_title",
1304
+ "type": "VARCHAR(256)",
1305
+ "nullable": true,
1306
+ "default": "NULL"
1307
+ },
1308
+ {
1309
+ "name": "seo_h1",
1310
+ "type": "VARCHAR(256)",
1311
+ "nullable": true,
1312
+ "default": "NULL"
1313
+ },
1314
+ {
1315
+ "name": "ordering",
1316
+ "type": "INT(11)",
1317
+ "nullable": true,
1318
+ "default": "NULL"
1319
+ },
1320
+ {
1321
+ "name": "ns_left",
1322
+ "type": "INT(11)",
1323
+ "nullable": true,
1324
+ "default": "NULL"
1325
+ },
1326
+ {
1327
+ "name": "ns_right",
1328
+ "type": "INT(11)",
1329
+ "nullable": true,
1330
+ "default": "NULL"
1331
+ },
1332
+ {
1333
+ "name": "ns_level",
1334
+ "type": "INT(11)",
1335
+ "nullable": true,
1336
+ "default": "NULL"
1337
+ },
1338
+ {
1339
+ "name": "ns_differ",
1340
+ "type": "VARCHAR(32)",
1341
+ "nullable": false,
1342
+ "default": ""
1343
+ },
1344
+ {
1345
+ "name": "ns_ignore",
1346
+ "type": "TINYINT(4)",
1347
+ "nullable": false,
1348
+ "default": "0"
1349
+ },
1350
+ {
1351
+ "name": "allow_add",
1352
+ "type": "TEXT",
1353
+ "nullable": true
1354
+ },
1355
+ {
1356
+ "name": "is_hidden",
1357
+ "type": "TINYINT(1)",
1358
+ "nullable": true,
1359
+ "default": "NULL"
1360
+ },
1361
+ {
1362
+ "name": "cover",
1363
+ "type": "TEXT",
1364
+ "nullable": true
1365
+ }
1366
+ ],
1367
+ "indexes": [
1368
+ {
1369
+ "name": "PRIMARY",
1370
+ "fields": [
1371
+ "id"
1372
+ ]
1373
+ },
1374
+ {
1375
+ "name": "ordering",
1376
+ "fields": [
1377
+ "ordering"
1378
+ ]
1379
+ },
1380
+ {
1381
+ "name": "slug",
1382
+ "fields": [
1383
+ "slug"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "name": "ns_left",
1388
+ "fields": [
1389
+ "ns_level",
1390
+ "ns_right",
1391
+ "ns_left"
1392
+ ]
1393
+ },
1394
+ {
1395
+ "name": "parent_id",
1396
+ "fields": [
1397
+ "parent_id",
1398
+ "ns_left"
1399
+ ]
1400
+ }
1401
+ ]
1402
+ },
1403
+ {
1404
+ "name": "cms_con_pages_cats_bind",
1405
+ "fields": [
1406
+ {
1407
+ "name": "item_id",
1408
+ "type": "INT(11)",
1409
+ "nullable": true,
1410
+ "default": "NULL"
1411
+ },
1412
+ {
1413
+ "name": "category_id",
1414
+ "type": "INT(11)",
1415
+ "nullable": true,
1416
+ "default": "NULL"
1417
+ }
1418
+ ],
1419
+ "indexes": [
1420
+ {
1421
+ "name": "item_id",
1422
+ "fields": [
1423
+ "item_id"
1424
+ ]
1425
+ },
1426
+ {
1427
+ "name": "category_id",
1428
+ "fields": [
1429
+ "category_id"
1430
+ ]
1431
+ }
1432
+ ]
1433
+ },
1434
+ {
1435
+ "name": "cms_con_pages_fields",
1436
+ "fields": [
1437
+ {
1438
+ "name": "id",
1439
+ "type": "INT(11)",
1440
+ "nullable": false,
1441
+ "extra": "AUTO_INCREMENT"
1442
+ },
1443
+ {
1444
+ "name": "ctype_id",
1445
+ "type": "INT(11)",
1446
+ "nullable": true,
1447
+ "default": "NULL"
1448
+ },
1449
+ {
1450
+ "name": "name",
1451
+ "type": "VARCHAR(40)",
1452
+ "nullable": true,
1453
+ "default": "NULL"
1454
+ },
1455
+ {
1456
+ "name": "title",
1457
+ "type": "VARCHAR(100)",
1458
+ "nullable": true,
1459
+ "default": "NULL"
1460
+ },
1461
+ {
1462
+ "name": "hint",
1463
+ "type": "VARCHAR(200)",
1464
+ "nullable": true,
1465
+ "default": "NULL"
1466
+ },
1467
+ {
1468
+ "name": "ordering",
1469
+ "type": "INT(11)",
1470
+ "nullable": true,
1471
+ "default": "NULL"
1472
+ },
1473
+ {
1474
+ "name": "is_enabled",
1475
+ "type": "TINYINT(1)",
1476
+ "nullable": true,
1477
+ "default": "1"
1478
+ },
1479
+ {
1480
+ "name": "fieldset",
1481
+ "type": "VARCHAR(32)",
1482
+ "nullable": true,
1483
+ "default": "NULL"
1484
+ },
1485
+ {
1486
+ "name": "type",
1487
+ "type": "VARCHAR(16)",
1488
+ "nullable": true,
1489
+ "default": "NULL"
1490
+ },
1491
+ {
1492
+ "name": "is_in_list",
1493
+ "type": "TINYINT(1)",
1494
+ "nullable": true,
1495
+ "default": "NULL"
1496
+ },
1497
+ {
1498
+ "name": "is_in_item",
1499
+ "type": "TINYINT(1)",
1500
+ "nullable": true,
1501
+ "default": "NULL"
1502
+ },
1503
+ {
1504
+ "name": "is_in_filter",
1505
+ "type": "TINYINT(1)",
1506
+ "nullable": true,
1507
+ "default": "NULL"
1508
+ },
1509
+ {
1510
+ "name": "is_private",
1511
+ "type": "TINYINT(1)",
1512
+ "nullable": true,
1513
+ "default": "NULL"
1514
+ },
1515
+ {
1516
+ "name": "is_fixed",
1517
+ "type": "TINYINT(1)",
1518
+ "nullable": true,
1519
+ "default": "NULL"
1520
+ },
1521
+ {
1522
+ "name": "is_fixed_type",
1523
+ "type": "TINYINT(1)",
1524
+ "nullable": true,
1525
+ "default": "NULL"
1526
+ },
1527
+ {
1528
+ "name": "is_system",
1529
+ "type": "TINYINT(1)",
1530
+ "nullable": true,
1531
+ "default": "NULL"
1532
+ },
1533
+ {
1534
+ "name": "values",
1535
+ "type": "TEXT",
1536
+ "nullable": true
1537
+ },
1538
+ {
1539
+ "name": "options",
1540
+ "type": "TEXT",
1541
+ "nullable": true
1542
+ },
1543
+ {
1544
+ "name": "groups_read",
1545
+ "type": "TEXT",
1546
+ "nullable": true
1547
+ },
1548
+ {
1549
+ "name": "groups_add",
1550
+ "type": "TEXT",
1551
+ "nullable": true
1552
+ },
1553
+ {
1554
+ "name": "groups_edit",
1555
+ "type": "TEXT",
1556
+ "nullable": true
1557
+ },
1558
+ {
1559
+ "name": "filter_view",
1560
+ "type": "TEXT",
1561
+ "nullable": true
1562
+ }
1563
+ ],
1564
+ "indexes": [
1565
+ {
1566
+ "name": "PRIMARY",
1567
+ "fields": [
1568
+ "id"
1569
+ ]
1570
+ },
1571
+ {
1572
+ "name": "is_enabled",
1573
+ "fields": [
1574
+ "is_enabled",
1575
+ "ordering"
1576
+ ]
1577
+ }
1578
+ ]
1579
+ },
1580
+ {
1581
+ "name": "cms_con_pages_props",
1582
+ "fields": [
1583
+ {
1584
+ "name": "id",
1585
+ "type": "INT(11)",
1586
+ "nullable": false,
1587
+ "extra": "AUTO_INCREMENT"
1588
+ },
1589
+ {
1590
+ "name": "title",
1591
+ "type": "VARCHAR(100)",
1592
+ "nullable": true,
1593
+ "default": "NULL"
1594
+ },
1595
+ {
1596
+ "name": "fieldset",
1597
+ "type": "VARCHAR(32)",
1598
+ "nullable": true,
1599
+ "default": "NULL"
1600
+ },
1601
+ {
1602
+ "name": "type",
1603
+ "type": "VARCHAR(16)",
1604
+ "nullable": true,
1605
+ "default": "NULL"
1606
+ },
1607
+ {
1608
+ "name": "is_in_filter",
1609
+ "type": "TINYINT(1)",
1610
+ "nullable": true,
1611
+ "default": "NULL"
1612
+ },
1613
+ {
1614
+ "name": "values",
1615
+ "type": "TEXT",
1616
+ "nullable": true
1617
+ },
1618
+ {
1619
+ "name": "options",
1620
+ "type": "TEXT",
1621
+ "nullable": true
1622
+ }
1623
+ ],
1624
+ "indexes": [
1625
+ {
1626
+ "name": "PRIMARY",
1627
+ "fields": [
1628
+ "id"
1629
+ ]
1630
+ },
1631
+ {
1632
+ "name": "is_active",
1633
+ "fields": [
1634
+ "is_in_filter"
1635
+ ]
1636
+ }
1637
+ ]
1638
+ },
1639
+ {
1640
+ "name": "cms_con_pages_props_bind",
1641
+ "fields": [
1642
+ {
1643
+ "name": "id",
1644
+ "type": "INT(11)",
1645
+ "nullable": false,
1646
+ "extra": "AUTO_INCREMENT"
1647
+ },
1648
+ {
1649
+ "name": "prop_id",
1650
+ "type": "INT(11)",
1651
+ "nullable": true,
1652
+ "default": "NULL"
1653
+ },
1654
+ {
1655
+ "name": "cat_id",
1656
+ "type": "INT(11)",
1657
+ "nullable": true,
1658
+ "default": "NULL"
1659
+ },
1660
+ {
1661
+ "name": "ordering",
1662
+ "type": "INT(11)",
1663
+ "nullable": true,
1664
+ "default": "NULL"
1665
+ }
1666
+ ],
1667
+ "indexes": [
1668
+ {
1669
+ "name": "PRIMARY",
1670
+ "fields": [
1671
+ "id"
1672
+ ]
1673
+ },
1674
+ {
1675
+ "name": "prop_id",
1676
+ "fields": [
1677
+ "prop_id"
1678
+ ]
1679
+ },
1680
+ {
1681
+ "name": "ordering",
1682
+ "fields": [
1683
+ "cat_id",
1684
+ "ordering"
1685
+ ]
1686
+ }
1687
+ ]
1688
+ },
1689
+ {
1690
+ "name": "cms_con_pages_props_values",
1691
+ "fields": [
1692
+ {
1693
+ "name": "prop_id",
1694
+ "type": "INT(11)",
1695
+ "nullable": true,
1696
+ "default": "NULL"
1697
+ },
1698
+ {
1699
+ "name": "item_id",
1700
+ "type": "INT(11)",
1701
+ "nullable": true,
1702
+ "default": "NULL"
1703
+ },
1704
+ {
1705
+ "name": "value",
1706
+ "type": "VARCHAR(255)",
1707
+ "nullable": true,
1708
+ "default": "NULL"
1709
+ }
1710
+ ],
1711
+ "indexes": [
1712
+ {
1713
+ "name": "prop_id",
1714
+ "fields": [
1715
+ "prop_id"
1716
+ ]
1717
+ },
1718
+ {
1719
+ "name": "item_id",
1720
+ "fields": [
1721
+ "item_id"
1722
+ ]
1723
+ }
1724
+ ]
1725
+ },
1726
+ {
1727
+ "name": "cms_events",
1728
+ "comment": "Привязка хуков к событиям",
1729
+ "fields": [
1730
+ {
1731
+ "name": "id",
1732
+ "type": "INT(11)",
1733
+ "nullable": false,
1734
+ "extra": "AUTO_INCREMENT"
1735
+ },
1736
+ {
1737
+ "name": "event",
1738
+ "type": "VARCHAR(64)",
1739
+ "nullable": true,
1740
+ "default": "NULL",
1741
+ "comment": "Событие"
1742
+ },
1743
+ {
1744
+ "name": "listener",
1745
+ "type": "VARCHAR(32)",
1746
+ "nullable": true,
1747
+ "default": "NULL",
1748
+ "comment": "Слушатель (компонент)"
1749
+ },
1750
+ {
1751
+ "name": "ordering",
1752
+ "type": "INT(5)",
1753
+ "nullable": true,
1754
+ "default": "NULL",
1755
+ "comment": "Порядковый номер "
1756
+ },
1757
+ {
1758
+ "name": "is_enabled",
1759
+ "type": "TINYINT(1)",
1760
+ "nullable": true,
1761
+ "default": "1",
1762
+ "comment": "Активность"
1763
+ }
1764
+ ],
1765
+ "indexes": [
1766
+ {
1767
+ "name": "PRIMARY",
1768
+ "fields": [
1769
+ "id"
1770
+ ]
1771
+ },
1772
+ {
1773
+ "name": "hook",
1774
+ "fields": [
1775
+ "event"
1776
+ ]
1777
+ },
1778
+ {
1779
+ "name": "listener",
1780
+ "fields": [
1781
+ "listener"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "name": "is_enabled",
1786
+ "fields": [
1787
+ "is_enabled",
1788
+ "ordering"
1789
+ ]
1790
+ }
1791
+ ]
1792
+ },
1793
+ {
1794
+ "name": "cms_images_presets",
1795
+ "comment": "Пресеты для конвертации изображений",
1796
+ "fields": [
1797
+ {
1798
+ "name": "id",
1799
+ "type": "INT(11)",
1800
+ "nullable": false,
1801
+ "extra": "AUTO_INCREMENT"
1802
+ },
1803
+ {
1804
+ "name": "name",
1805
+ "type": "VARCHAR(32)",
1806
+ "nullable": true,
1807
+ "default": "NULL",
1808
+ "comment": "Системное имя пресета"
1809
+ },
1810
+ {
1811
+ "name": "title",
1812
+ "type": "VARCHAR(128)",
1813
+ "nullable": true,
1814
+ "default": "NULL",
1815
+ "comment": "Название пресета"
1816
+ },
1817
+ {
1818
+ "name": "width",
1819
+ "type": "INT(11)",
1820
+ "nullable": true,
1821
+ "default": "NULL",
1822
+ "comment": "Ширина конвертированного изображения"
1823
+ },
1824
+ {
1825
+ "name": "height",
1826
+ "type": "INT(11)",
1827
+ "nullable": true,
1828
+ "default": "NULL",
1829
+ "comment": "Высота конвертированного изображения"
1830
+ },
1831
+ {
1832
+ "name": "is_square",
1833
+ "type": "TINYINT(1)",
1834
+ "nullable": true,
1835
+ "default": "NULL",
1836
+ "comment": "Обрезать строго по размеру"
1837
+ },
1838
+ {
1839
+ "name": "is_watermark",
1840
+ "type": "TINYINT(1)",
1841
+ "nullable": true,
1842
+ "default": "NULL",
1843
+ "comment": "Накладывать ватермарк"
1844
+ },
1845
+ {
1846
+ "name": "wm_image",
1847
+ "type": "TEXT",
1848
+ "nullable": true,
1849
+ "comment": "Путь к изображению ватермарка"
1850
+ },
1851
+ {
1852
+ "name": "wm_origin",
1853
+ "type": "VARCHAR(16)",
1854
+ "nullable": true,
1855
+ "default": "NULL",
1856
+ "comment": "Позиция ватермарка"
1857
+ },
1858
+ {
1859
+ "name": "wm_margin",
1860
+ "type": "INT(11)",
1861
+ "nullable": true,
1862
+ "default": "NULL",
1863
+ "comment": "Отступы от краёв для ватермарка"
1864
+ },
1865
+ {
1866
+ "name": "is_internal",
1867
+ "type": "TINYINT(1)",
1868
+ "nullable": true,
1869
+ "default": "NULL",
1870
+ "comment": "Системный пресет?"
1871
+ },
1872
+ {
1873
+ "name": "quality",
1874
+ "type": "TINYINT(1)",
1875
+ "nullable": true,
1876
+ "default": "90",
1877
+ "comment": "Качество изображения"
1878
+ },
1879
+ {
1880
+ "name": "gamma_correct",
1881
+ "type": "TINYINT(1)",
1882
+ "nullable": true,
1883
+ "default": "NULL",
1884
+ "comment": "Гамма-коррекция"
1885
+ },
1886
+ {
1887
+ "name": "crop_position",
1888
+ "type": "TINYINT(1)",
1889
+ "nullable": true,
1890
+ "default": "2",
1891
+ "comment": "Позиция при обрезке строго по размеру"
1892
+ },
1893
+ {
1894
+ "name": "allow_enlarge",
1895
+ "type": "TINYINT(1)",
1896
+ "nullable": true,
1897
+ "default": "NULL",
1898
+ "comment": "Увеличивать до размера пресета"
1899
+ },
1900
+ {
1901
+ "name": "gif_to_gif",
1902
+ "type": "TINYINT(1)",
1903
+ "nullable": true,
1904
+ "default": "1",
1905
+ "comment": "Конвертировать GIF сохраняя анимацию"
1906
+ },
1907
+ {
1908
+ "name": "convert_format",
1909
+ "type": "CHAR(4)",
1910
+ "nullable": true,
1911
+ "default": "NULL",
1912
+ "comment": "Итоговый формат изображения после конвертации"
1913
+ }
1914
+ ],
1915
+ "indexes": [
1916
+ {
1917
+ "name": "PRIMARY",
1918
+ "fields": [
1919
+ "id"
1920
+ ]
1921
+ },
1922
+ {
1923
+ "name": "name",
1924
+ "fields": [
1925
+ "name"
1926
+ ]
1927
+ }
1928
+ ]
1929
+ },
1930
+ {
1931
+ "name": "cms_menu",
1932
+ "comment": "Меню сайта",
1933
+ "fields": [
1934
+ {
1935
+ "name": "id",
1936
+ "type": "INT(11)",
1937
+ "nullable": false,
1938
+ "extra": "AUTO_INCREMENT"
1939
+ },
1940
+ {
1941
+ "name": "name",
1942
+ "type": "VARCHAR(32)",
1943
+ "nullable": false,
1944
+ "comment": "Системное имя"
1945
+ },
1946
+ {
1947
+ "name": "title",
1948
+ "type": "VARCHAR(64)",
1949
+ "nullable": true,
1950
+ "default": "NULL",
1951
+ "comment": "Название меню"
1952
+ },
1953
+ {
1954
+ "name": "is_fixed",
1955
+ "type": "TINYINT(1)",
1956
+ "nullable": true,
1957
+ "default": "NULL",
1958
+ "comment": "Запрещено удалять?"
1959
+ }
1960
+ ],
1961
+ "indexes": [
1962
+ {
1963
+ "name": "PRIMARY",
1964
+ "fields": [
1965
+ "id"
1966
+ ]
1967
+ },
1968
+ {
1969
+ "name": "name",
1970
+ "fields": [
1971
+ "name"
1972
+ ],
1973
+ "type": "UNIQUE"
1974
+ }
1975
+ ]
1976
+ },
1977
+ {
1978
+ "name": "cms_menu_items",
1979
+ "comment": "Пункты меню",
1980
+ "fields": [
1981
+ {
1982
+ "name": "id",
1983
+ "type": "INT(11)",
1984
+ "nullable": false,
1985
+ "extra": "AUTO_INCREMENT"
1986
+ },
1987
+ {
1988
+ "name": "menu_id",
1989
+ "type": "INT(11)",
1990
+ "nullable": true,
1991
+ "default": "NULL",
1992
+ "comment": "ID меню"
1993
+ },
1994
+ {
1995
+ "name": "parent_id",
1996
+ "type": "INT(11)",
1997
+ "nullable": true,
1998
+ "default": "0",
1999
+ "comment": "ID родительского пункта"
2000
+ },
2001
+ {
2002
+ "name": "is_enabled",
2003
+ "type": "TINYINT(1)",
2004
+ "nullable": true,
2005
+ "default": "1",
2006
+ "comment": "Включен?"
2007
+ },
2008
+ {
2009
+ "name": "title",
2010
+ "type": "VARCHAR(64)",
2011
+ "nullable": true,
2012
+ "default": "NULL",
2013
+ "comment": "Заголовок пункта"
2014
+ },
2015
+ {
2016
+ "name": "url",
2017
+ "type": "VARCHAR(255)",
2018
+ "nullable": true,
2019
+ "default": "NULL",
2020
+ "comment": "Ссылка"
2021
+ },
2022
+ {
2023
+ "name": "ordering",
2024
+ "type": "INT(11)",
2025
+ "nullable": true,
2026
+ "default": "NULL",
2027
+ "comment": "Порядковый номер"
2028
+ },
2029
+ {
2030
+ "name": "options",
2031
+ "type": "TEXT",
2032
+ "nullable": true,
2033
+ "comment": "Массив опций"
2034
+ },
2035
+ {
2036
+ "name": "groups_view",
2037
+ "type": "TEXT",
2038
+ "nullable": true,
2039
+ "comment": "Массив разрешенных групп пользователей"
2040
+ },
2041
+ {
2042
+ "name": "groups_hide",
2043
+ "type": "TEXT",
2044
+ "nullable": true,
2045
+ "comment": "Массив запрещенных групп пользователей"
2046
+ }
2047
+ ],
2048
+ "indexes": [
2049
+ {
2050
+ "name": "PRIMARY",
2051
+ "fields": [
2052
+ "id"
2053
+ ]
2054
+ },
2055
+ {
2056
+ "name": "menu_id",
2057
+ "fields": [
2058
+ "menu_id"
2059
+ ]
2060
+ },
2061
+ {
2062
+ "name": "parent_id",
2063
+ "fields": [
2064
+ "parent_id"
2065
+ ]
2066
+ },
2067
+ {
2068
+ "name": "ordering",
2069
+ "fields": [
2070
+ "ordering"
2071
+ ]
2072
+ }
2073
+ ]
2074
+ },
2075
+ {
2076
+ "name": "cms_moderators",
2077
+ "comment": "Модераторы",
2078
+ "fields": [
2079
+ {
2080
+ "name": "id",
2081
+ "type": "INT(11)",
2082
+ "nullable": false,
2083
+ "extra": "AUTO_INCREMENT"
2084
+ },
2085
+ {
2086
+ "name": "user_id",
2087
+ "type": "INT(11)",
2088
+ "nullable": true,
2089
+ "default": "NULL"
2090
+ },
2091
+ {
2092
+ "name": "date_assigned",
2093
+ "type": "TIMESTAMP",
2094
+ "nullable": true,
2095
+ "default": "NULL"
2096
+ },
2097
+ {
2098
+ "name": "ctype_name",
2099
+ "type": "VARCHAR(32)",
2100
+ "nullable": true,
2101
+ "default": "NULL"
2102
+ },
2103
+ {
2104
+ "name": "count_approved",
2105
+ "type": "INT(11)",
2106
+ "nullable": false,
2107
+ "default": "0"
2108
+ },
2109
+ {
2110
+ "name": "count_deleted",
2111
+ "type": "INT(11)",
2112
+ "nullable": false,
2113
+ "default": "0"
2114
+ },
2115
+ {
2116
+ "name": "count_idle",
2117
+ "type": "INT(11)",
2118
+ "nullable": false,
2119
+ "default": "0"
2120
+ },
2121
+ {
2122
+ "name": "trash_left_time",
2123
+ "type": "INT(5)",
2124
+ "nullable": true,
2125
+ "default": "NULL"
2126
+ }
2127
+ ],
2128
+ "indexes": [
2129
+ {
2130
+ "name": "PRIMARY",
2131
+ "fields": [
2132
+ "id"
2133
+ ]
2134
+ },
2135
+ {
2136
+ "name": "user_id",
2137
+ "fields": [
2138
+ "user_id"
2139
+ ]
2140
+ },
2141
+ {
2142
+ "name": "ctype_name",
2143
+ "fields": [
2144
+ "ctype_name"
2145
+ ]
2146
+ },
2147
+ {
2148
+ "name": "count_idle",
2149
+ "fields": [
2150
+ "count_idle"
2151
+ ]
2152
+ }
2153
+ ]
2154
+ },
2155
+ {
2156
+ "name": "cms_moderators_tasks",
2157
+ "comment": "Задачи модераторов",
2158
+ "fields": [
2159
+ {
2160
+ "name": "id",
2161
+ "type": "INT(11)",
2162
+ "nullable": false,
2163
+ "extra": "AUTO_INCREMENT"
2164
+ },
2165
+ {
2166
+ "name": "moderator_id",
2167
+ "type": "INT(11)",
2168
+ "nullable": true,
2169
+ "default": "NULL"
2170
+ },
2171
+ {
2172
+ "name": "author_id",
2173
+ "type": "INT(11)",
2174
+ "nullable": true,
2175
+ "default": "NULL"
2176
+ },
2177
+ {
2178
+ "name": "item_id",
2179
+ "type": "INT(11)",
2180
+ "nullable": true,
2181
+ "default": "NULL"
2182
+ },
2183
+ {
2184
+ "name": "ctype_name",
2185
+ "type": "VARCHAR(32)",
2186
+ "nullable": true,
2187
+ "default": "NULL"
2188
+ },
2189
+ {
2190
+ "name": "title",
2191
+ "type": "VARCHAR(100)",
2192
+ "nullable": true,
2193
+ "default": "NULL"
2194
+ },
2195
+ {
2196
+ "name": "url",
2197
+ "type": "VARCHAR(256)",
2198
+ "nullable": true,
2199
+ "default": "NULL"
2200
+ },
2201
+ {
2202
+ "name": "date_pub",
2203
+ "type": "TIMESTAMP",
2204
+ "nullable": true,
2205
+ "default": "NULL"
2206
+ },
2207
+ {
2208
+ "name": "is_new_item",
2209
+ "type": "TINYINT(1)",
2210
+ "nullable": true,
2211
+ "default": "1"
2212
+ }
2213
+ ],
2214
+ "indexes": [
2215
+ {
2216
+ "name": "PRIMARY",
2217
+ "fields": [
2218
+ "id"
2219
+ ]
2220
+ },
2221
+ {
2222
+ "name": "moderator_id",
2223
+ "fields": [
2224
+ "moderator_id"
2225
+ ]
2226
+ },
2227
+ {
2228
+ "name": "author_id",
2229
+ "fields": [
2230
+ "author_id"
2231
+ ]
2232
+ },
2233
+ {
2234
+ "name": "ctype_name",
2235
+ "fields": [
2236
+ "ctype_name"
2237
+ ]
2238
+ },
2239
+ {
2240
+ "name": "date_pub",
2241
+ "fields": [
2242
+ "date_pub"
2243
+ ]
2244
+ },
2245
+ {
2246
+ "name": "item_id",
2247
+ "fields": [
2248
+ "item_id"
2249
+ ]
2250
+ },
2251
+ {
2252
+ "name": "is_new",
2253
+ "fields": [
2254
+ "is_new_item"
2255
+ ]
2256
+ }
2257
+ ]
2258
+ },
2259
+ {
2260
+ "name": "cms_moderators_logs",
2261
+ "comment": "Логи модерации",
2262
+ "fields": [
2263
+ {
2264
+ "name": "id",
2265
+ "type": "INT(11)",
2266
+ "nullable": false,
2267
+ "extra": "AUTO_INCREMENT"
2268
+ },
2269
+ {
2270
+ "name": "moderator_id",
2271
+ "type": "INT(11)",
2272
+ "nullable": true,
2273
+ "default": "NULL"
2274
+ },
2275
+ {
2276
+ "name": "author_id",
2277
+ "type": "INT(11)",
2278
+ "nullable": true,
2279
+ "default": "NULL"
2280
+ },
2281
+ {
2282
+ "name": "action",
2283
+ "type": "TINYINT(1)",
2284
+ "nullable": true,
2285
+ "default": "NULL"
2286
+ },
2287
+ {
2288
+ "name": "date_pub",
2289
+ "type": "TIMESTAMP",
2290
+ "nullable": false,
2291
+ "default": "CURRENT_TIMESTAMP"
2292
+ },
2293
+ {
2294
+ "name": "date_expired",
2295
+ "type": "TIMESTAMP",
2296
+ "nullable": true,
2297
+ "default": "NULL"
2298
+ },
2299
+ {
2300
+ "name": "target_id",
2301
+ "type": "INT(11)",
2302
+ "nullable": true,
2303
+ "default": "NULL"
2304
+ },
2305
+ {
2306
+ "name": "target_controller",
2307
+ "type": "VARCHAR(32)",
2308
+ "nullable": true,
2309
+ "default": "NULL"
2310
+ },
2311
+ {
2312
+ "name": "target_subject",
2313
+ "type": "VARCHAR(32)",
2314
+ "nullable": true,
2315
+ "default": "NULL"
2316
+ },
2317
+ {
2318
+ "name": "data",
2319
+ "type": "TEXT",
2320
+ "nullable": true
2321
+ }
2322
+ ],
2323
+ "indexes": [
2324
+ {
2325
+ "name": "PRIMARY",
2326
+ "fields": [
2327
+ "id"
2328
+ ]
2329
+ },
2330
+ {
2331
+ "name": "moderator_id",
2332
+ "fields": [
2333
+ "moderator_id"
2334
+ ]
2335
+ },
2336
+ {
2337
+ "name": "target_id",
2338
+ "fields": [
2339
+ "target_id",
2340
+ "target_subject",
2341
+ "target_controller"
2342
+ ]
2343
+ },
2344
+ {
2345
+ "name": "author_id",
2346
+ "fields": [
2347
+ "author_id"
2348
+ ]
2349
+ },
2350
+ {
2351
+ "name": "date_expired",
2352
+ "fields": [
2353
+ "date_expired"
2354
+ ]
2355
+ }
2356
+ ]
2357
+ },
2358
+ {
2359
+ "name": "cms_perms_rules",
2360
+ "comment": "Перечь всех возможных правил доступа",
2361
+ "fields": [
2362
+ {
2363
+ "name": "id",
2364
+ "type": "INT(11)",
2365
+ "nullable": false,
2366
+ "extra": "AUTO_INCREMENT"
2367
+ },
2368
+ {
2369
+ "name": "controller",
2370
+ "type": "VARCHAR(32)",
2371
+ "nullable": true,
2372
+ "default": "NULL",
2373
+ "comment": "Компонент (владелец)"
2374
+ },
2375
+ {
2376
+ "name": "name",
2377
+ "type": "VARCHAR(64)",
2378
+ "nullable": false,
2379
+ "comment": "Название правила"
2380
+ },
2381
+ {
2382
+ "name": "type",
2383
+ "type": "ENUM('FLAG','LIST','NUMBER')",
2384
+ "nullable": false,
2385
+ "default": "flag",
2386
+ "comment": "Тип выбора (flag,list...)"
2387
+ },
2388
+ {
2389
+ "name": "options",
2390
+ "type": "VARCHAR(128)",
2391
+ "nullable": true,
2392
+ "default": "NULL",
2393
+ "comment": "Массив возможных значений"
2394
+ },
2395
+ {
2396
+ "name": "show_for_guest_group",
2397
+ "type": "TINYINT(1)",
2398
+ "nullable": true,
2399
+ "default": "NULL",
2400
+ "comment": "Показывать правило для группы гости"
2401
+ }
2402
+ ],
2403
+ "indexes": [
2404
+ {
2405
+ "name": "PRIMARY",
2406
+ "fields": [
2407
+ "id"
2408
+ ]
2409
+ },
2410
+ {
2411
+ "name": "controller",
2412
+ "fields": [
2413
+ "controller"
2414
+ ]
2415
+ },
2416
+ {
2417
+ "name": "name",
2418
+ "fields": [
2419
+ "name"
2420
+ ]
2421
+ }
2422
+ ]
2423
+ },
2424
+ {
2425
+ "name": "cms_perms_users",
2426
+ "comment": "Привязка правил доступа к группам пользователей",
2427
+ "fields": [
2428
+ {
2429
+ "name": "rule_id",
2430
+ "type": "INT(11)",
2431
+ "nullable": true,
2432
+ "default": "NULL",
2433
+ "comment": "ID правила"
2434
+ },
2435
+ {
2436
+ "name": "group_id",
2437
+ "type": "INT(11)",
2438
+ "nullable": true,
2439
+ "default": "NULL",
2440
+ "comment": "ID группы"
2441
+ },
2442
+ {
2443
+ "name": "subject",
2444
+ "type": "VARCHAR(32)",
2445
+ "nullable": true,
2446
+ "default": "NULL",
2447
+ "comment": "Субъект действия правила"
2448
+ },
2449
+ {
2450
+ "name": "value",
2451
+ "type": "VARCHAR(16)",
2452
+ "nullable": false,
2453
+ "comment": "Значение правила"
2454
+ }
2455
+ ],
2456
+ "indexes": [
2457
+ {
2458
+ "name": "rule_id",
2459
+ "fields": [
2460
+ "rule_id"
2461
+ ]
2462
+ },
2463
+ {
2464
+ "name": "group_id",
2465
+ "fields": [
2466
+ "group_id"
2467
+ ]
2468
+ }
2469
+ ]
2470
+ },
2471
+ {
2472
+ "name": "cms_scheduler_tasks",
2473
+ "comment": "Задачи планировщика",
2474
+ "fields": [
2475
+ {
2476
+ "name": "id",
2477
+ "type": "INT(11)",
2478
+ "nullable": false,
2479
+ "extra": "AUTO_INCREMENT"
2480
+ },
2481
+ {
2482
+ "name": "title",
2483
+ "type": "VARCHAR(250)",
2484
+ "nullable": true,
2485
+ "default": "NULL"
2486
+ },
2487
+ {
2488
+ "name": "controller",
2489
+ "type": "VARCHAR(32)",
2490
+ "nullable": true,
2491
+ "default": "NULL"
2492
+ },
2493
+ {
2494
+ "name": "hook",
2495
+ "type": "VARCHAR(32)",
2496
+ "nullable": true,
2497
+ "default": "NULL"
2498
+ },
2499
+ {
2500
+ "name": "period",
2501
+ "type": "INT(11)",
2502
+ "nullable": true,
2503
+ "default": "NULL"
2504
+ },
2505
+ {
2506
+ "name": "is_strict_period",
2507
+ "type": "TINYINT(1)",
2508
+ "nullable": true,
2509
+ "default": "NULL"
2510
+ },
2511
+ {
2512
+ "name": "date_last_run",
2513
+ "type": "TIMESTAMP",
2514
+ "nullable": true,
2515
+ "default": "NULL"
2516
+ },
2517
+ {
2518
+ "name": "is_active",
2519
+ "type": "TINYINT(1)",
2520
+ "nullable": true,
2521
+ "default": "NULL"
2522
+ },
2523
+ {
2524
+ "name": "is_new",
2525
+ "type": "TINYINT(1)",
2526
+ "nullable": true,
2527
+ "default": "1"
2528
+ },
2529
+ {
2530
+ "name": "consistent_run",
2531
+ "type": "TINYINT(1)",
2532
+ "nullable": true,
2533
+ "default": "NULL"
2534
+ },
2535
+ {
2536
+ "name": "ordering",
2537
+ "type": "INT(11)",
2538
+ "nullable": true,
2539
+ "default": "NULL"
2540
+ }
2541
+ ],
2542
+ "indexes": [
2543
+ {
2544
+ "name": "PRIMARY",
2545
+ "fields": [
2546
+ "id"
2547
+ ]
2548
+ },
2549
+ {
2550
+ "name": "period",
2551
+ "fields": [
2552
+ "period"
2553
+ ]
2554
+ },
2555
+ {
2556
+ "name": "date_last_run",
2557
+ "fields": [
2558
+ "date_last_run"
2559
+ ]
2560
+ },
2561
+ {
2562
+ "name": "is_active",
2563
+ "fields": [
2564
+ "is_active"
2565
+ ]
2566
+ }
2567
+ ]
2568
+ },
2569
+ {
2570
+ "name": "cms_sessions_online",
2571
+ "comment": "Онлайн сессии",
2572
+ "fields": [
2573
+ {
2574
+ "name": "user_id",
2575
+ "type": "INT(11)",
2576
+ "nullable": true,
2577
+ "default": "NULL"
2578
+ },
2579
+ {
2580
+ "name": "date_created",
2581
+ "type": "TIMESTAMP",
2582
+ "nullable": false,
2583
+ "default": "CURRENT_TIMESTAMP"
2584
+ }
2585
+ ],
2586
+ "indexes": [
2587
+ {
2588
+ "name": "user_id",
2589
+ "fields": [
2590
+ "user_id"
2591
+ ],
2592
+ "type": "UNIQUE"
2593
+ },
2594
+ {
2595
+ "name": "date_created",
2596
+ "fields": [
2597
+ "date_created"
2598
+ ]
2599
+ }
2600
+ ]
2601
+ },
2602
+ {
2603
+ "name": "cms_uploaded_files",
2604
+ "comment": "Загруженные файлы",
2605
+ "fields": [
2606
+ {
2607
+ "name": "id",
2608
+ "type": "INT(11)",
2609
+ "nullable": false,
2610
+ "extra": "AUTO_INCREMENT"
2611
+ },
2612
+ {
2613
+ "name": "path",
2614
+ "type": "VARCHAR(170)",
2615
+ "nullable": true,
2616
+ "default": "NULL",
2617
+ "comment": "Путь к файлу"
2618
+ },
2619
+ {
2620
+ "name": "name",
2621
+ "type": "VARCHAR(100)",
2622
+ "nullable": true,
2623
+ "default": "NULL",
2624
+ "comment": "Имя файла"
2625
+ },
2626
+ {
2627
+ "name": "size",
2628
+ "type": "INT(11)",
2629
+ "nullable": true,
2630
+ "default": "NULL",
2631
+ "comment": "Размер файла"
2632
+ },
2633
+ {
2634
+ "name": "counter",
2635
+ "type": "INT(11)",
2636
+ "nullable": false,
2637
+ "default": "0",
2638
+ "comment": "Счетчик скачиваний"
2639
+ },
2640
+ {
2641
+ "name": "type",
2642
+ "type": "VARCHAR(32)",
2643
+ "nullable": true,
2644
+ "default": "file",
2645
+ "comment": "Тип файла"
2646
+ },
2647
+ {
2648
+ "name": "target_controller",
2649
+ "type": "VARCHAR(32)",
2650
+ "nullable": true,
2651
+ "default": "NULL",
2652
+ "comment": "Контроллер привязки"
2653
+ },
2654
+ {
2655
+ "name": "target_subject",
2656
+ "type": "VARCHAR(32)",
2657
+ "nullable": true,
2658
+ "default": "NULL",
2659
+ "comment": "Субъект привязки"
2660
+ },
2661
+ {
2662
+ "name": "target_id",
2663
+ "type": "INT(11)",
2664
+ "nullable": true,
2665
+ "default": "NULL",
2666
+ "comment": "ID субъекта"
2667
+ },
2668
+ {
2669
+ "name": "user_id",
2670
+ "type": "INT(11)",
2671
+ "nullable": true,
2672
+ "default": "NULL",
2673
+ "comment": "ID владельца"
2674
+ },
2675
+ {
2676
+ "name": "date_add",
2677
+ "type": "TIMESTAMP",
2678
+ "nullable": false,
2679
+ "default": "CURRENT_TIMESTAMP",
2680
+ "comment": "Дата добавления"
2681
+ }
2682
+ ],
2683
+ "indexes": [
2684
+ {
2685
+ "name": "PRIMARY",
2686
+ "fields": [
2687
+ "id"
2688
+ ]
2689
+ },
2690
+ {
2691
+ "name": "path",
2692
+ "fields": [
2693
+ "path"
2694
+ ],
2695
+ "type": "UNIQUE"
2696
+ },
2697
+ {
2698
+ "name": "user_id",
2699
+ "fields": [
2700
+ "user_id"
2701
+ ]
2702
+ },
2703
+ {
2704
+ "name": "target_controller",
2705
+ "fields": [
2706
+ "target_controller",
2707
+ "target_subject",
2708
+ "target_id"
2709
+ ]
2710
+ }
2711
+ ]
2712
+ },
2713
+ {
2714
+ "name": "cms_users",
2715
+ "comment": "Пользователи",
2716
+ "fields": [
2717
+ {
2718
+ "name": "id",
2719
+ "type": "INT(11)",
2720
+ "nullable": false,
2721
+ "extra": "AUTO_INCREMENT"
2722
+ },
2723
+ {
2724
+ "name": "groups",
2725
+ "type": "TEXT",
2726
+ "nullable": true,
2727
+ "comment": "Массив групп пользователя"
2728
+ },
2729
+ {
2730
+ "name": "email",
2731
+ "type": "VARCHAR(100)",
2732
+ "nullable": false
2733
+ },
2734
+ {
2735
+ "name": "password_hash",
2736
+ "type": "VARCHAR(255)",
2737
+ "nullable": true,
2738
+ "default": "NULL",
2739
+ "comment": "Хеш пароля"
2740
+ },
2741
+ {
2742
+ "name": "password",
2743
+ "type": "VARCHAR(32)",
2744
+ "nullable": true,
2745
+ "default": "NULL",
2746
+ "comment": "Хэш пароля (устаревшее поле)"
2747
+ },
2748
+ {
2749
+ "name": "password_salt",
2750
+ "type": "VARCHAR(16)",
2751
+ "nullable": true,
2752
+ "default": "NULL",
2753
+ "comment": "Соль пароля (устаревшее поле)"
2754
+ },
2755
+ {
2756
+ "name": "is_admin",
2757
+ "type": "TINYINT(1)",
2758
+ "nullable": true,
2759
+ "default": "NULL",
2760
+ "comment": "Администратор?"
2761
+ },
2762
+ {
2763
+ "name": "nickname",
2764
+ "type": "VARCHAR(100)",
2765
+ "nullable": false,
2766
+ "comment": "Имя"
2767
+ },
2768
+ {
2769
+ "name": "slug",
2770
+ "type": "VARCHAR(100)",
2771
+ "nullable": true,
2772
+ "default": "NULL"
2773
+ },
2774
+ {
2775
+ "name": "date_reg",
2776
+ "type": "TIMESTAMP",
2777
+ "nullable": true,
2778
+ "default": "NULL",
2779
+ "comment": "Дата регистрации"
2780
+ },
2781
+ {
2782
+ "name": "date_log",
2783
+ "type": "TIMESTAMP",
2784
+ "nullable": true,
2785
+ "default": "NULL",
2786
+ "comment": "Дата последней авторизации"
2787
+ },
2788
+ {
2789
+ "name": "date_group",
2790
+ "type": "TIMESTAMP",
2791
+ "nullable": false,
2792
+ "default": "CURRENT_TIMESTAMP",
2793
+ "comment": "Время последней смены группы"
2794
+ },
2795
+ {
2796
+ "name": "ip",
2797
+ "type": "VARCHAR(45)",
2798
+ "nullable": true,
2799
+ "default": "NULL"
2800
+ },
2801
+ {
2802
+ "name": "2fa",
2803
+ "type": "VARCHAR(32)",
2804
+ "nullable": true,
2805
+ "default": "NULL"
2806
+ },
2807
+ {
2808
+ "name": "is_deleted",
2809
+ "type": "TINYINT(1)",
2810
+ "nullable": true,
2811
+ "default": "NULL",
2812
+ "comment": "Удалён"
2813
+ },
2814
+ {
2815
+ "name": "is_locked",
2816
+ "type": "TINYINT(1)",
2817
+ "nullable": true,
2818
+ "default": "NULL",
2819
+ "comment": "Заблокирован"
2820
+ },
2821
+ {
2822
+ "name": "lock_until",
2823
+ "type": "TIMESTAMP",
2824
+ "nullable": true,
2825
+ "default": "NULL",
2826
+ "comment": "Блокировка до"
2827
+ },
2828
+ {
2829
+ "name": "lock_reason",
2830
+ "type": "VARCHAR(250)",
2831
+ "nullable": true,
2832
+ "default": "NULL",
2833
+ "comment": "Причина блокировки"
2834
+ },
2835
+ {
2836
+ "name": "pass_token",
2837
+ "type": "VARCHAR(64)",
2838
+ "nullable": true,
2839
+ "default": "NULL",
2840
+ "comment": "Ключ для восстановления пароля"
2841
+ },
2842
+ {
2843
+ "name": "date_token",
2844
+ "type": "TIMESTAMP",
2845
+ "nullable": true,
2846
+ "default": "NULL",
2847
+ "comment": "Дата создания ключа восстановления пароля"
2848
+ },
2849
+ {
2850
+ "name": "friends_count",
2851
+ "type": "INT(11)",
2852
+ "nullable": false,
2853
+ "default": "0",
2854
+ "comment": "Кол-во друзей"
2855
+ },
2856
+ {
2857
+ "name": "subscribers_count",
2858
+ "type": "INT(11)",
2859
+ "nullable": false,
2860
+ "default": "0",
2861
+ "comment": "Кол-во подписчиков"
2862
+ },
2863
+ {
2864
+ "name": "time_zone",
2865
+ "type": "VARCHAR(32)",
2866
+ "nullable": true,
2867
+ "default": "NULL",
2868
+ "comment": "Часовой пояс"
2869
+ },
2870
+ {
2871
+ "name": "karma",
2872
+ "type": "INT(11)",
2873
+ "nullable": false,
2874
+ "default": "0",
2875
+ "comment": "Репутация"
2876
+ },
2877
+ {
2878
+ "name": "rating",
2879
+ "type": "INT(11)",
2880
+ "nullable": false,
2881
+ "default": "0",
2882
+ "comment": "Рейтинг"
2883
+ },
2884
+ {
2885
+ "name": "theme",
2886
+ "type": "TEXT",
2887
+ "nullable": true,
2888
+ "comment": "Настройки темы профиля"
2889
+ },
2890
+ {
2891
+ "name": "notify_options",
2892
+ "type": "TEXT",
2893
+ "nullable": true,
2894
+ "comment": "Настройки уведомлений"
2895
+ },
2896
+ {
2897
+ "name": "privacy_options",
2898
+ "type": "TEXT",
2899
+ "nullable": true,
2900
+ "comment": "Настройки приватности"
2901
+ },
2902
+ {
2903
+ "name": "status_id",
2904
+ "type": "INT(11)",
2905
+ "nullable": true,
2906
+ "default": "NULL",
2907
+ "comment": "Текстовый статус"
2908
+ },
2909
+ {
2910
+ "name": "status_text",
2911
+ "type": "VARCHAR(140)",
2912
+ "nullable": true,
2913
+ "default": "NULL",
2914
+ "comment": "Текст статуса"
2915
+ },
2916
+ {
2917
+ "name": "inviter_id",
2918
+ "type": "INT(11)",
2919
+ "nullable": true,
2920
+ "default": "NULL"
2921
+ },
2922
+ {
2923
+ "name": "invites_count",
2924
+ "type": "INT(11)",
2925
+ "nullable": false,
2926
+ "default": "0"
2927
+ },
2928
+ {
2929
+ "name": "date_invites",
2930
+ "type": "TIMESTAMP",
2931
+ "nullable": true,
2932
+ "default": "NULL"
2933
+ },
2934
+ {
2935
+ "name": "avatar",
2936
+ "type": "TEXT",
2937
+ "nullable": true
2938
+ }
2939
+ ],
2940
+ "indexes": [
2941
+ {
2942
+ "name": "PRIMARY",
2943
+ "fields": [
2944
+ "id"
2945
+ ]
2946
+ },
2947
+ {
2948
+ "name": "email",
2949
+ "fields": [
2950
+ "email"
2951
+ ],
2952
+ "type": "UNIQUE"
2953
+ },
2954
+ {
2955
+ "name": "pass_token",
2956
+ "fields": [
2957
+ "pass_token"
2958
+ ]
2959
+ },
2960
+ {
2961
+ "name": "friends_count",
2962
+ "fields": [
2963
+ "friends_count"
2964
+ ]
2965
+ },
2966
+ {
2967
+ "name": "karma",
2968
+ "fields": [
2969
+ "karma"
2970
+ ]
2971
+ },
2972
+ {
2973
+ "name": "rating",
2974
+ "fields": [
2975
+ "rating"
2976
+ ]
2977
+ },
2978
+ {
2979
+ "name": "date_reg",
2980
+ "fields": [
2981
+ "date_reg"
2982
+ ]
2983
+ },
2984
+ {
2985
+ "name": "date_log",
2986
+ "fields": [
2987
+ "date_log"
2988
+ ]
2989
+ },
2990
+ {
2991
+ "name": "date_group",
2992
+ "fields": [
2993
+ "date_group"
2994
+ ]
2995
+ },
2996
+ {
2997
+ "name": "inviter_id",
2998
+ "fields": [
2999
+ "inviter_id"
3000
+ ]
3001
+ },
3002
+ {
3003
+ "name": "date_invites",
3004
+ "fields": [
3005
+ "date_invites"
3006
+ ]
3007
+ },
3008
+ {
3009
+ "name": "ip",
3010
+ "fields": [
3011
+ "ip"
3012
+ ]
3013
+ },
3014
+ {
3015
+ "name": "slug",
3016
+ "fields": [
3017
+ "slug"
3018
+ ]
3019
+ }
3020
+ ]
3021
+ },
3022
+ {
3023
+ "name": "cms_users_contacts",
3024
+ "comment": "Контакты пользователей",
3025
+ "fields": [
3026
+ {
3027
+ "name": "id",
3028
+ "type": "INT(11)",
3029
+ "nullable": false,
3030
+ "extra": "AUTO_INCREMENT"
3031
+ },
3032
+ {
3033
+ "name": "user_id",
3034
+ "type": "INT(11)",
3035
+ "nullable": true,
3036
+ "default": "NULL",
3037
+ "comment": "ID пользователя"
3038
+ },
3039
+ {
3040
+ "name": "contact_id",
3041
+ "type": "INT(11)",
3042
+ "nullable": true,
3043
+ "default": "NULL",
3044
+ "comment": "ID контакта (другого пользователя)"
3045
+ },
3046
+ {
3047
+ "name": "date_last_msg",
3048
+ "type": "TIMESTAMP",
3049
+ "nullable": true,
3050
+ "default": "CURRENT_TIMESTAMP",
3051
+ "comment": "Дата последнего сообщения",
3052
+ "extra": "ON UPDATE CURRENT_TIMESTAMP"
3053
+ },
3054
+ {
3055
+ "name": "new_messages",
3056
+ "type": "INT(11)",
3057
+ "nullable": false,
3058
+ "default": "0",
3059
+ "comment": "Кол-во новых сообщений"
3060
+ }
3061
+ ],
3062
+ "indexes": [
3063
+ {
3064
+ "name": "PRIMARY",
3065
+ "fields": [
3066
+ "id"
3067
+ ]
3068
+ },
3069
+ {
3070
+ "name": "user_id",
3071
+ "fields": [
3072
+ "user_id",
3073
+ "date_last_msg"
3074
+ ]
3075
+ },
3076
+ {
3077
+ "name": "contact_id",
3078
+ "fields": [
3079
+ "contact_id",
3080
+ "user_id"
3081
+ ]
3082
+ }
3083
+ ]
3084
+ },
3085
+ {
3086
+ "name": "cms_users_fields",
3087
+ "comment": "Поля профилей пользователей",
3088
+ "fields": [
3089
+ {
3090
+ "name": "id",
3091
+ "type": "INT(11)",
3092
+ "nullable": false,
3093
+ "extra": "AUTO_INCREMENT"
3094
+ },
3095
+ {
3096
+ "name": "ctype_id",
3097
+ "type": "INT(11)",
3098
+ "nullable": true,
3099
+ "default": "NULL"
3100
+ },
3101
+ {
3102
+ "name": "name",
3103
+ "type": "VARCHAR(20)",
3104
+ "nullable": true,
3105
+ "default": "NULL"
3106
+ },
3107
+ {
3108
+ "name": "title",
3109
+ "type": "VARCHAR(100)",
3110
+ "nullable": true,
3111
+ "default": "NULL"
3112
+ },
3113
+ {
3114
+ "name": "hint",
3115
+ "type": "VARCHAR(200)",
3116
+ "nullable": true,
3117
+ "default": "NULL"
3118
+ },
3119
+ {
3120
+ "name": "ordering",
3121
+ "type": "INT(11)",
3122
+ "nullable": true,
3123
+ "default": "NULL"
3124
+ },
3125
+ {
3126
+ "name": "is_enabled",
3127
+ "type": "TINYINT(1)",
3128
+ "nullable": true,
3129
+ "default": "1"
3130
+ },
3131
+ {
3132
+ "name": "fieldset",
3133
+ "type": "VARCHAR(32)",
3134
+ "nullable": true,
3135
+ "default": "NULL"
3136
+ },
3137
+ {
3138
+ "name": "type",
3139
+ "type": "VARCHAR(16)",
3140
+ "nullable": true,
3141
+ "default": "NULL"
3142
+ },
3143
+ {
3144
+ "name": "is_in_list",
3145
+ "type": "TINYINT(1)",
3146
+ "nullable": true,
3147
+ "default": "NULL"
3148
+ },
3149
+ {
3150
+ "name": "is_in_item",
3151
+ "type": "TINYINT(1)",
3152
+ "nullable": true,
3153
+ "default": "NULL"
3154
+ },
3155
+ {
3156
+ "name": "is_in_filter",
3157
+ "type": "TINYINT(1)",
3158
+ "nullable": true,
3159
+ "default": "NULL"
3160
+ },
3161
+ {
3162
+ "name": "is_private",
3163
+ "type": "TINYINT(1)",
3164
+ "nullable": true,
3165
+ "default": "NULL"
3166
+ },
3167
+ {
3168
+ "name": "is_fixed",
3169
+ "type": "TINYINT(1)",
3170
+ "nullable": true,
3171
+ "default": "NULL"
3172
+ },
3173
+ {
3174
+ "name": "is_fixed_type",
3175
+ "type": "TINYINT(1)",
3176
+ "nullable": true,
3177
+ "default": "NULL"
3178
+ },
3179
+ {
3180
+ "name": "is_system",
3181
+ "type": "TINYINT(1)",
3182
+ "nullable": true,
3183
+ "default": "NULL"
3184
+ },
3185
+ {
3186
+ "name": "values",
3187
+ "type": "TEXT",
3188
+ "nullable": true
3189
+ },
3190
+ {
3191
+ "name": "options",
3192
+ "type": "TEXT",
3193
+ "nullable": true
3194
+ },
3195
+ {
3196
+ "name": "groups_read",
3197
+ "type": "TEXT",
3198
+ "nullable": true
3199
+ },
3200
+ {
3201
+ "name": "groups_add",
3202
+ "type": "TEXT",
3203
+ "nullable": true
3204
+ },
3205
+ {
3206
+ "name": "groups_edit",
3207
+ "type": "TEXT",
3208
+ "nullable": true
3209
+ },
3210
+ {
3211
+ "name": "filter_view",
3212
+ "type": "TEXT",
3213
+ "nullable": true
3214
+ }
3215
+ ],
3216
+ "indexes": [
3217
+ {
3218
+ "name": "PRIMARY",
3219
+ "fields": [
3220
+ "id"
3221
+ ]
3222
+ },
3223
+ {
3224
+ "name": "is_enabled",
3225
+ "fields": [
3226
+ "is_enabled",
3227
+ "ordering"
3228
+ ]
3229
+ }
3230
+ ]
3231
+ },
3232
+ {
3233
+ "name": "cms_users_friends",
3234
+ "comment": "Дружба пользователей",
3235
+ "fields": [
3236
+ {
3237
+ "name": "id",
3238
+ "type": "INT(11)",
3239
+ "nullable": false,
3240
+ "extra": "AUTO_INCREMENT"
3241
+ },
3242
+ {
3243
+ "name": "user_id",
3244
+ "type": "INT(11)",
3245
+ "nullable": true,
3246
+ "default": "NULL",
3247
+ "comment": "ID пользователя"
3248
+ },
3249
+ {
3250
+ "name": "friend_id",
3251
+ "type": "INT(11)",
3252
+ "nullable": true,
3253
+ "default": "NULL",
3254
+ "comment": "ID друга"
3255
+ },
3256
+ {
3257
+ "name": "is_mutual",
3258
+ "type": "TINYINT(1)",
3259
+ "nullable": true,
3260
+ "default": "NULL",
3261
+ "comment": "Дружба взаимна?"
3262
+ }
3263
+ ],
3264
+ "indexes": [
3265
+ {
3266
+ "name": "PRIMARY",
3267
+ "fields": [
3268
+ "id"
3269
+ ]
3270
+ },
3271
+ {
3272
+ "name": "user_id",
3273
+ "fields": [
3274
+ "user_id",
3275
+ "is_mutual"
3276
+ ]
3277
+ },
3278
+ {
3279
+ "name": "friend_id",
3280
+ "fields": [
3281
+ "friend_id",
3282
+ "is_mutual"
3283
+ ]
3284
+ }
3285
+ ]
3286
+ },
3287
+ {
3288
+ "name": "cms_users_groups",
3289
+ "comment": "Группы пользователей",
3290
+ "fields": [
3291
+ {
3292
+ "name": "id",
3293
+ "type": "INT(11)",
3294
+ "nullable": false,
3295
+ "extra": "AUTO_INCREMENT"
3296
+ },
3297
+ {
3298
+ "name": "name",
3299
+ "type": "VARCHAR(32)",
3300
+ "nullable": true,
3301
+ "default": "NULL",
3302
+ "comment": "Системное имя"
3303
+ },
3304
+ {
3305
+ "name": "title",
3306
+ "type": "VARCHAR(32)",
3307
+ "nullable": true,
3308
+ "default": "NULL",
3309
+ "comment": "Название группы"
3310
+ },
3311
+ {
3312
+ "name": "is_fixed",
3313
+ "type": "TINYINT(1)",
3314
+ "nullable": true,
3315
+ "default": "NULL",
3316
+ "comment": "Системная?"
3317
+ },
3318
+ {
3319
+ "name": "is_public",
3320
+ "type": "TINYINT(1)",
3321
+ "nullable": true,
3322
+ "default": "NULL",
3323
+ "comment": "Группу можно выбрать при регистрации?"
3324
+ },
3325
+ {
3326
+ "name": "is_filter",
3327
+ "type": "TINYINT(1)",
3328
+ "nullable": true,
3329
+ "default": "NULL",
3330
+ "comment": "Выводить группу в фильтре пользователей?"
3331
+ },
3332
+ {
3333
+ "name": "ordering",
3334
+ "type": "INT(11)",
3335
+ "nullable": true,
3336
+ "default": "1",
3337
+ "comment": "Порядок"
3338
+ }
3339
+ ],
3340
+ "indexes": [
3341
+ {
3342
+ "name": "PRIMARY",
3343
+ "fields": [
3344
+ "id"
3345
+ ]
3346
+ },
3347
+ {
3348
+ "name": "ordering",
3349
+ "fields": [
3350
+ "ordering"
3351
+ ]
3352
+ }
3353
+ ]
3354
+ },
3355
+ {
3356
+ "name": "cms_users_groups_members",
3357
+ "comment": "Привязка пользователей к группам",
3358
+ "fields": [
3359
+ {
3360
+ "name": "user_id",
3361
+ "type": "INT(11)",
3362
+ "nullable": false
3363
+ },
3364
+ {
3365
+ "name": "group_id",
3366
+ "type": "INT(11)",
3367
+ "nullable": false
3368
+ }
3369
+ ],
3370
+ "indexes": [
3371
+ {
3372
+ "name": "user_id",
3373
+ "fields": [
3374
+ "user_id"
3375
+ ]
3376
+ },
3377
+ {
3378
+ "name": "group_id",
3379
+ "fields": [
3380
+ "group_id"
3381
+ ]
3382
+ }
3383
+ ]
3384
+ },
3385
+ {
3386
+ "name": "cms_users_groups_migration",
3387
+ "comment": "Правила перевода между группами",
3388
+ "fields": [
3389
+ {
3390
+ "name": "id",
3391
+ "type": "INT(11)",
3392
+ "nullable": false,
3393
+ "extra": "AUTO_INCREMENT"
3394
+ },
3395
+ {
3396
+ "name": "is_active",
3397
+ "type": "TINYINT(1)",
3398
+ "nullable": true,
3399
+ "default": "NULL"
3400
+ },
3401
+ {
3402
+ "name": "title",
3403
+ "type": "VARCHAR(256)",
3404
+ "nullable": true,
3405
+ "default": "NULL"
3406
+ },
3407
+ {
3408
+ "name": "group_from_id",
3409
+ "type": "INT(11)",
3410
+ "nullable": true,
3411
+ "default": "NULL"
3412
+ },
3413
+ {
3414
+ "name": "group_to_id",
3415
+ "type": "INT(11)",
3416
+ "nullable": true,
3417
+ "default": "NULL"
3418
+ },
3419
+ {
3420
+ "name": "is_keep_group",
3421
+ "type": "TINYINT(1)",
3422
+ "nullable": true,
3423
+ "default": "NULL"
3424
+ },
3425
+ {
3426
+ "name": "is_passed",
3427
+ "type": "TINYINT(1)",
3428
+ "nullable": true,
3429
+ "default": "NULL"
3430
+ },
3431
+ {
3432
+ "name": "is_rating",
3433
+ "type": "TINYINT(1)",
3434
+ "nullable": true,
3435
+ "default": "NULL"
3436
+ },
3437
+ {
3438
+ "name": "is_karma",
3439
+ "type": "TINYINT(1)",
3440
+ "nullable": true,
3441
+ "default": "NULL"
3442
+ },
3443
+ {
3444
+ "name": "passed_days",
3445
+ "type": "INT(11)",
3446
+ "nullable": true,
3447
+ "default": "NULL"
3448
+ },
3449
+ {
3450
+ "name": "passed_from",
3451
+ "type": "TINYINT(1)",
3452
+ "nullable": true,
3453
+ "default": "NULL"
3454
+ },
3455
+ {
3456
+ "name": "rating",
3457
+ "type": "INT(11)",
3458
+ "nullable": true,
3459
+ "default": "NULL"
3460
+ },
3461
+ {
3462
+ "name": "karma",
3463
+ "type": "INT(11)",
3464
+ "nullable": true,
3465
+ "default": "NULL"
3466
+ },
3467
+ {
3468
+ "name": "is_notify",
3469
+ "type": "TINYINT(1)",
3470
+ "nullable": true,
3471
+ "default": "NULL"
3472
+ },
3473
+ {
3474
+ "name": "notify_text",
3475
+ "type": "TEXT",
3476
+ "nullable": true
3477
+ }
3478
+ ],
3479
+ "indexes": [
3480
+ {
3481
+ "name": "PRIMARY",
3482
+ "fields": [
3483
+ "id"
3484
+ ]
3485
+ },
3486
+ {
3487
+ "name": "group_from_id",
3488
+ "fields": [
3489
+ "group_from_id"
3490
+ ]
3491
+ },
3492
+ {
3493
+ "name": "group_to_id",
3494
+ "fields": [
3495
+ "group_to_id"
3496
+ ]
3497
+ }
3498
+ ]
3499
+ },
3500
+ {
3501
+ "name": "cms_users_ignors",
3502
+ "comment": "Списки игнорирования",
3503
+ "fields": [
3504
+ {
3505
+ "name": "id",
3506
+ "type": "INT(11)",
3507
+ "nullable": false,
3508
+ "extra": "AUTO_INCREMENT"
3509
+ },
3510
+ {
3511
+ "name": "user_id",
3512
+ "type": "INT(11)",
3513
+ "nullable": false,
3514
+ "comment": "ID пользователя"
3515
+ },
3516
+ {
3517
+ "name": "ignored_user_id",
3518
+ "type": "INT(11)",
3519
+ "nullable": false,
3520
+ "comment": "ID игнорируемого пользователя"
3521
+ }
3522
+ ],
3523
+ "indexes": [
3524
+ {
3525
+ "name": "PRIMARY",
3526
+ "fields": [
3527
+ "id"
3528
+ ]
3529
+ },
3530
+ {
3531
+ "name": "ignored_user_id",
3532
+ "fields": [
3533
+ "ignored_user_id",
3534
+ "user_id"
3535
+ ]
3536
+ },
3537
+ {
3538
+ "name": "user_id",
3539
+ "fields": [
3540
+ "user_id"
3541
+ ]
3542
+ }
3543
+ ]
3544
+ },
3545
+ {
3546
+ "name": "cms_users_invites",
3547
+ "comment": "Выданные инвайты",
3548
+ "fields": [
3549
+ {
3550
+ "name": "id",
3551
+ "type": "INT(11)",
3552
+ "nullable": false,
3553
+ "extra": "AUTO_INCREMENT"
3554
+ },
3555
+ {
3556
+ "name": "user_id",
3557
+ "type": "INT(11)",
3558
+ "nullable": true,
3559
+ "default": "NULL"
3560
+ },
3561
+ {
3562
+ "name": "email",
3563
+ "type": "VARCHAR(100)",
3564
+ "nullable": true,
3565
+ "default": "NULL"
3566
+ },
3567
+ {
3568
+ "name": "code",
3569
+ "type": "VARCHAR(10)",
3570
+ "nullable": true,
3571
+ "default": "NULL"
3572
+ }
3573
+ ],
3574
+ "indexes": [
3575
+ {
3576
+ "name": "PRIMARY",
3577
+ "fields": [
3578
+ "id"
3579
+ ]
3580
+ },
3581
+ {
3582
+ "name": "user_id",
3583
+ "fields": [
3584
+ "user_id"
3585
+ ]
3586
+ },
3587
+ {
3588
+ "name": "email",
3589
+ "fields": [
3590
+ "email"
3591
+ ]
3592
+ },
3593
+ {
3594
+ "name": "key",
3595
+ "fields": [
3596
+ "code"
3597
+ ]
3598
+ }
3599
+ ]
3600
+ },
3601
+ {
3602
+ "name": "cms_users_karma",
3603
+ "comment": "Оценки репутации пользователей",
3604
+ "fields": [
3605
+ {
3606
+ "name": "id",
3607
+ "type": "INT(11)",
3608
+ "nullable": false,
3609
+ "extra": "AUTO_INCREMENT"
3610
+ },
3611
+ {
3612
+ "name": "user_id",
3613
+ "type": "INT(11)",
3614
+ "nullable": true,
3615
+ "default": "NULL",
3616
+ "comment": "Кто поставил"
3617
+ },
3618
+ {
3619
+ "name": "profile_id",
3620
+ "type": "INT(11)",
3621
+ "nullable": true,
3622
+ "default": "NULL",
3623
+ "comment": "Кому поставил"
3624
+ },
3625
+ {
3626
+ "name": "date_pub",
3627
+ "type": "TIMESTAMP",
3628
+ "nullable": false,
3629
+ "default": "CURRENT_TIMESTAMP",
3630
+ "comment": "Дата оценки"
3631
+ },
3632
+ {
3633
+ "name": "points",
3634
+ "type": "TINYINT(2)",
3635
+ "nullable": true,
3636
+ "default": "NULL",
3637
+ "comment": "Оценка"
3638
+ },
3639
+ {
3640
+ "name": "comment",
3641
+ "type": "VARCHAR(256)",
3642
+ "nullable": true,
3643
+ "default": "NULL",
3644
+ "comment": "Пояснение"
3645
+ }
3646
+ ],
3647
+ "indexes": [
3648
+ {
3649
+ "name": "PRIMARY",
3650
+ "fields": [
3651
+ "id"
3652
+ ]
3653
+ },
3654
+ {
3655
+ "name": "user_id",
3656
+ "fields": [
3657
+ "user_id"
3658
+ ]
3659
+ },
3660
+ {
3661
+ "name": "profile_id",
3662
+ "fields": [
3663
+ "profile_id"
3664
+ ]
3665
+ },
3666
+ {
3667
+ "name": "date_pub",
3668
+ "fields": [
3669
+ "date_pub"
3670
+ ]
3671
+ }
3672
+ ]
3673
+ },
3674
+ {
3675
+ "name": "cms_users_messages",
3676
+ "comment": "Личные сообщения пользователей",
3677
+ "fields": [
3678
+ {
3679
+ "name": "id",
3680
+ "type": "INT(11)",
3681
+ "nullable": false,
3682
+ "extra": "AUTO_INCREMENT"
3683
+ },
3684
+ {
3685
+ "name": "from_id",
3686
+ "type": "INT(11)",
3687
+ "nullable": false,
3688
+ "comment": "ID отправителя"
3689
+ },
3690
+ {
3691
+ "name": "to_id",
3692
+ "type": "INT(11)",
3693
+ "nullable": false,
3694
+ "comment": "ID получателя"
3695
+ },
3696
+ {
3697
+ "name": "date_pub",
3698
+ "type": "TIMESTAMP",
3699
+ "nullable": false,
3700
+ "default": "CURRENT_TIMESTAMP",
3701
+ "comment": "Дата создания"
3702
+ },
3703
+ {
3704
+ "name": "date_delete",
3705
+ "type": "TIMESTAMP",
3706
+ "nullable": true,
3707
+ "default": "NULL",
3708
+ "comment": "Дата удаления"
3709
+ },
3710
+ {
3711
+ "name": "is_new",
3712
+ "type": "TINYINT(1)",
3713
+ "nullable": true,
3714
+ "default": "1",
3715
+ "comment": "Не прочитано?"
3716
+ },
3717
+ {
3718
+ "name": "content",
3719
+ "type": "TEXT",
3720
+ "nullable": false,
3721
+ "comment": "Текст сообщения"
3722
+ },
3723
+ {
3724
+ "name": "is_deleted",
3725
+ "type": "TINYINT(1)",
3726
+ "nullable": true,
3727
+ "default": "NULL"
3728
+ }
3729
+ ],
3730
+ "indexes": [
3731
+ {
3732
+ "name": "PRIMARY",
3733
+ "fields": [
3734
+ "id"
3735
+ ]
3736
+ },
3737
+ {
3738
+ "name": "to_id",
3739
+ "fields": [
3740
+ "to_id",
3741
+ "from_id",
3742
+ "is_deleted"
3743
+ ]
3744
+ }
3745
+ ]
3746
+ },
3747
+ {
3748
+ "name": "cms_users_notices",
3749
+ "comment": "Уведомления пользователей",
3750
+ "fields": [
3751
+ {
3752
+ "name": "id",
3753
+ "type": "INT(11)",
3754
+ "nullable": false,
3755
+ "extra": "AUTO_INCREMENT"
3756
+ },
3757
+ {
3758
+ "name": "user_id",
3759
+ "type": "INT(11)",
3760
+ "nullable": false
3761
+ },
3762
+ {
3763
+ "name": "date_pub",
3764
+ "type": "TIMESTAMP",
3765
+ "nullable": false,
3766
+ "default": "CURRENT_TIMESTAMP"
3767
+ },
3768
+ {
3769
+ "name": "content",
3770
+ "type": "TEXT",
3771
+ "nullable": true
3772
+ },
3773
+ {
3774
+ "name": "options",
3775
+ "type": "TEXT",
3776
+ "nullable": true
3777
+ },
3778
+ {
3779
+ "name": "actions",
3780
+ "type": "TEXT",
3781
+ "nullable": true
3782
+ }
3783
+ ],
3784
+ "indexes": [
3785
+ {
3786
+ "name": "PRIMARY",
3787
+ "fields": [
3788
+ "id"
3789
+ ]
3790
+ },
3791
+ {
3792
+ "name": "user_id",
3793
+ "fields": [
3794
+ "user_id",
3795
+ "date_pub"
3796
+ ]
3797
+ }
3798
+ ]
3799
+ },
3800
+ {
3801
+ "name": "cms_users_statuses",
3802
+ "comment": "Текстовые статусы пользователей",
3803
+ "fields": [
3804
+ {
3805
+ "name": "id",
3806
+ "type": "INT(11)",
3807
+ "nullable": false,
3808
+ "extra": "AUTO_INCREMENT"
3809
+ },
3810
+ {
3811
+ "name": "user_id",
3812
+ "type": "INT(11)",
3813
+ "nullable": true,
3814
+ "default": "NULL",
3815
+ "comment": "Пользователь"
3816
+ },
3817
+ {
3818
+ "name": "date_pub",
3819
+ "type": "TIMESTAMP",
3820
+ "nullable": true,
3821
+ "default": "CURRENT_TIMESTAMP",
3822
+ "comment": "Дата публикации"
3823
+ },
3824
+ {
3825
+ "name": "content",
3826
+ "type": "VARCHAR(140)",
3827
+ "nullable": true,
3828
+ "default": "NULL",
3829
+ "comment": "Текст статуса"
3830
+ },
3831
+ {
3832
+ "name": "replies_count",
3833
+ "type": "INT(11)",
3834
+ "nullable": false,
3835
+ "default": "0",
3836
+ "comment": "Количество ответов"
3837
+ },
3838
+ {
3839
+ "name": "wall_entry_id",
3840
+ "type": "INT(11)",
3841
+ "nullable": true,
3842
+ "default": "NULL",
3843
+ "comment": "ID записи на стене"
3844
+ }
3845
+ ],
3846
+ "indexes": [
3847
+ {
3848
+ "name": "PRIMARY",
3849
+ "fields": [
3850
+ "id"
3851
+ ]
3852
+ },
3853
+ {
3854
+ "name": "user_id",
3855
+ "fields": [
3856
+ "user_id"
3857
+ ]
3858
+ },
3859
+ {
3860
+ "name": "date_pub",
3861
+ "fields": [
3862
+ "date_pub"
3863
+ ]
3864
+ },
3865
+ {
3866
+ "name": "replies_count",
3867
+ "fields": [
3868
+ "replies_count"
3869
+ ]
3870
+ },
3871
+ {
3872
+ "name": "wall_entry_id",
3873
+ "fields": [
3874
+ "wall_entry_id"
3875
+ ]
3876
+ }
3877
+ ]
3878
+ },
3879
+ {
3880
+ "name": "cms_users_tabs",
3881
+ "comment": "Табы профилей",
3882
+ "fields": [
3883
+ {
3884
+ "name": "id",
3885
+ "type": "INT(11)",
3886
+ "nullable": false,
3887
+ "extra": "AUTO_INCREMENT"
3888
+ },
3889
+ {
3890
+ "name": "title",
3891
+ "type": "VARCHAR(32)",
3892
+ "nullable": true,
3893
+ "default": "NULL"
3894
+ },
3895
+ {
3896
+ "name": "controller",
3897
+ "type": "VARCHAR(32)",
3898
+ "nullable": true,
3899
+ "default": "NULL"
3900
+ },
3901
+ {
3902
+ "name": "name",
3903
+ "type": "VARCHAR(32)",
3904
+ "nullable": true,
3905
+ "default": "NULL"
3906
+ },
3907
+ {
3908
+ "name": "is_active",
3909
+ "type": "TINYINT(1)",
3910
+ "nullable": true,
3911
+ "default": "NULL"
3912
+ },
3913
+ {
3914
+ "name": "ordering",
3915
+ "type": "INT(11)",
3916
+ "nullable": true,
3917
+ "default": "NULL"
3918
+ },
3919
+ {
3920
+ "name": "groups_view",
3921
+ "type": "TEXT",
3922
+ "nullable": true
3923
+ },
3924
+ {
3925
+ "name": "groups_hide",
3926
+ "type": "TEXT",
3927
+ "nullable": true
3928
+ },
3929
+ {
3930
+ "name": "show_only_owner",
3931
+ "type": "TINYINT(1)",
3932
+ "nullable": true,
3933
+ "default": "NULL"
3934
+ }
3935
+ ],
3936
+ "indexes": [
3937
+ {
3938
+ "name": "PRIMARY",
3939
+ "fields": [
3940
+ "id"
3941
+ ]
3942
+ },
3943
+ {
3944
+ "name": "name",
3945
+ "fields": [
3946
+ "name"
3947
+ ],
3948
+ "type": "UNIQUE"
3949
+ },
3950
+ {
3951
+ "name": "is_active",
3952
+ "fields": [
3953
+ "is_active",
3954
+ "ordering"
3955
+ ]
3956
+ }
3957
+ ]
3958
+ },
3959
+ {
3960
+ "name": "cms_users_personal_settings",
3961
+ "comment": "Универсальные персональные настройки пользователей",
3962
+ "fields": [
3963
+ {
3964
+ "name": "id",
3965
+ "type": "INT(11)",
3966
+ "nullable": false,
3967
+ "extra": "AUTO_INCREMENT"
3968
+ },
3969
+ {
3970
+ "name": "user_id",
3971
+ "type": "INT(11)",
3972
+ "nullable": false
3973
+ },
3974
+ {
3975
+ "name": "skey",
3976
+ "type": "VARCHAR(150)",
3977
+ "nullable": true,
3978
+ "default": "NULL"
3979
+ },
3980
+ {
3981
+ "name": "settings",
3982
+ "type": "TEXT",
3983
+ "nullable": true
3984
+ }
3985
+ ],
3986
+ "indexes": [
3987
+ {
3988
+ "name": "PRIMARY",
3989
+ "fields": [
3990
+ "id"
3991
+ ]
3992
+ },
3993
+ {
3994
+ "name": "user_id",
3995
+ "fields": [
3996
+ "user_id",
3997
+ "skey"
3998
+ ],
3999
+ "type": "UNIQUE"
4000
+ }
4001
+ ]
4002
+ },
4003
+ {
4004
+ "name": "cms_users_auth_tokens",
4005
+ "comment": "Токены авторизации",
4006
+ "fields": [
4007
+ {
4008
+ "name": "id",
4009
+ "type": "INT(11)",
4010
+ "nullable": false,
4011
+ "extra": "AUTO_INCREMENT"
4012
+ },
4013
+ {
4014
+ "name": "auth_token",
4015
+ "type": "VARCHAR(128)",
4016
+ "nullable": true,
4017
+ "default": "NULL"
4018
+ },
4019
+ {
4020
+ "name": "date_auth",
4021
+ "type": "TIMESTAMP",
4022
+ "nullable": true,
4023
+ "default": "CURRENT_TIMESTAMP"
4024
+ },
4025
+ {
4026
+ "name": "date_log",
4027
+ "type": "TIMESTAMP",
4028
+ "nullable": true,
4029
+ "default": "NULL"
4030
+ },
4031
+ {
4032
+ "name": "user_id",
4033
+ "type": "INT(11)",
4034
+ "nullable": true,
4035
+ "default": "NULL"
4036
+ },
4037
+ {
4038
+ "name": "access_type",
4039
+ "type": "VARCHAR(100)",
4040
+ "nullable": true,
4041
+ "default": "NULL"
4042
+ },
4043
+ {
4044
+ "name": "ip",
4045
+ "type": "VARBINARY(16)",
4046
+ "nullable": true,
4047
+ "default": "NULL"
4048
+ }
4049
+ ],
4050
+ "indexes": [
4051
+ {
4052
+ "name": "PRIMARY",
4053
+ "fields": [
4054
+ "id"
4055
+ ]
4056
+ },
4057
+ {
4058
+ "name": "auth_token",
4059
+ "fields": [
4060
+ "auth_token"
4061
+ ],
4062
+ "type": "UNIQUE"
4063
+ },
4064
+ {
4065
+ "name": "user_id",
4066
+ "fields": [
4067
+ "user_id"
4068
+ ]
4069
+ }
4070
+ ]
4071
+ },
4072
+ {
4073
+ "name": "cms_widgets",
4074
+ "comment": "Доступные виджеты CMS",
4075
+ "fields": [
4076
+ {
4077
+ "name": "id",
4078
+ "type": "INT(11)",
4079
+ "nullable": false,
4080
+ "extra": "AUTO_INCREMENT"
4081
+ },
4082
+ {
4083
+ "name": "controller",
4084
+ "type": "VARCHAR(32)",
4085
+ "nullable": true,
4086
+ "default": "NULL",
4087
+ "comment": "Контроллер"
4088
+ },
4089
+ {
4090
+ "name": "name",
4091
+ "type": "VARCHAR(32)",
4092
+ "nullable": false,
4093
+ "comment": "Системное имя"
4094
+ },
4095
+ {
4096
+ "name": "title",
4097
+ "type": "VARCHAR(64)",
4098
+ "nullable": true,
4099
+ "default": "NULL",
4100
+ "comment": "Название"
4101
+ },
4102
+ {
4103
+ "name": "author",
4104
+ "type": "VARCHAR(128)",
4105
+ "nullable": true,
4106
+ "default": "NULL",
4107
+ "comment": "Имя автора"
4108
+ },
4109
+ {
4110
+ "name": "url",
4111
+ "type": "VARCHAR(250)",
4112
+ "nullable": true,
4113
+ "default": "NULL",
4114
+ "comment": "Сайт автора"
4115
+ },
4116
+ {
4117
+ "name": "version",
4118
+ "type": "VARCHAR(8)",
4119
+ "nullable": true,
4120
+ "default": "NULL",
4121
+ "comment": "Версия"
4122
+ },
4123
+ {
4124
+ "name": "is_external",
4125
+ "type": "TINYINT(1)",
4126
+ "nullable": true,
4127
+ "default": "1"
4128
+ },
4129
+ {
4130
+ "name": "files",
4131
+ "type": "TEXT",
4132
+ "nullable": true,
4133
+ "comment": "Список файлов виджета (для стороних виджетов)"
4134
+ },
4135
+ {
4136
+ "name": "addon_id",
4137
+ "type": "INT(11)",
4138
+ "nullable": true,
4139
+ "default": "NULL",
4140
+ "comment": "ID дополнения в официальном каталоге"
4141
+ },
4142
+ {
4143
+ "name": "image_hint_path",
4144
+ "type": "VARCHAR(100)",
4145
+ "nullable": true,
4146
+ "default": "NULL",
4147
+ "comment": "Поясняющее изображение"
4148
+ }
4149
+ ],
4150
+ "indexes": [
4151
+ {
4152
+ "name": "PRIMARY",
4153
+ "fields": [
4154
+ "id"
4155
+ ]
4156
+ },
4157
+ {
4158
+ "name": "version",
4159
+ "fields": [
4160
+ "version"
4161
+ ]
4162
+ },
4163
+ {
4164
+ "name": "name",
4165
+ "fields": [
4166
+ "name"
4167
+ ]
4168
+ },
4169
+ {
4170
+ "name": "controller",
4171
+ "fields": [
4172
+ "controller"
4173
+ ]
4174
+ }
4175
+ ]
4176
+ },
4177
+ {
4178
+ "name": "cms_widgets_bind",
4179
+ "comment": "Виджеты сайта",
4180
+ "fields": [
4181
+ {
4182
+ "name": "id",
4183
+ "type": "INT(11)",
4184
+ "nullable": false,
4185
+ "extra": "AUTO_INCREMENT"
4186
+ },
4187
+ {
4188
+ "name": "template_layouts",
4189
+ "type": "VARCHAR(500)",
4190
+ "nullable": true,
4191
+ "default": "NULL"
4192
+ },
4193
+ {
4194
+ "name": "languages",
4195
+ "type": "VARCHAR(100)",
4196
+ "nullable": true,
4197
+ "default": "NULL"
4198
+ },
4199
+ {
4200
+ "name": "widget_id",
4201
+ "type": "INT(11)",
4202
+ "nullable": false
4203
+ },
4204
+ {
4205
+ "name": "title",
4206
+ "type": "VARCHAR(128)",
4207
+ "nullable": true,
4208
+ "default": "NULL",
4209
+ "comment": "Заголовок"
4210
+ },
4211
+ {
4212
+ "name": "links",
4213
+ "type": "TEXT",
4214
+ "nullable": true
4215
+ },
4216
+ {
4217
+ "name": "class",
4218
+ "type": "VARCHAR(64)",
4219
+ "nullable": true,
4220
+ "default": "NULL",
4221
+ "comment": "CSS класс"
4222
+ },
4223
+ {
4224
+ "name": "class_title",
4225
+ "type": "VARCHAR(64)",
4226
+ "nullable": true,
4227
+ "default": "NULL"
4228
+ },
4229
+ {
4230
+ "name": "class_wrap",
4231
+ "type": "VARCHAR(64)",
4232
+ "nullable": true,
4233
+ "default": "NULL"
4234
+ },
4235
+ {
4236
+ "name": "is_title",
4237
+ "type": "TINYINT(1)",
4238
+ "nullable": true,
4239
+ "default": "1",
4240
+ "comment": "Показывать заголовок"
4241
+ },
4242
+ {
4243
+ "name": "is_tab_prev",
4244
+ "type": "TINYINT(1)",
4245
+ "nullable": true,
4246
+ "default": "NULL",
4247
+ "comment": "Объединять с предыдущим?"
4248
+ },
4249
+ {
4250
+ "name": "groups_view",
4251
+ "type": "TEXT",
4252
+ "nullable": true,
4253
+ "comment": "Показывать группам"
4254
+ },
4255
+ {
4256
+ "name": "groups_hide",
4257
+ "type": "TEXT",
4258
+ "nullable": true,
4259
+ "comment": "Не показывать группам"
4260
+ },
4261
+ {
4262
+ "name": "url_mask_not",
4263
+ "type": "TEXT",
4264
+ "nullable": true,
4265
+ "default": "NULL",
4266
+ "comment": "Отрицательные маски виджета"
4267
+ },
4268
+ {
4269
+ "name": "options",
4270
+ "type": "TEXT",
4271
+ "nullable": true,
4272
+ "comment": "Опции"
4273
+ },
4274
+ {
4275
+ "name": "tpl_body",
4276
+ "type": "VARCHAR(128)",
4277
+ "nullable": true,
4278
+ "default": "NULL"
4279
+ },
4280
+ {
4281
+ "name": "tpl_wrap",
4282
+ "type": "VARCHAR(128)",
4283
+ "nullable": true,
4284
+ "default": "NULL"
4285
+ },
4286
+ {
4287
+ "name": "tpl_wrap_custom",
4288
+ "type": "TEXT",
4289
+ "nullable": true
4290
+ },
4291
+ {
4292
+ "name": "tpl_wrap_style",
4293
+ "type": "VARCHAR(50)",
4294
+ "nullable": true,
4295
+ "default": "NULL"
4296
+ },
4297
+ {
4298
+ "name": "device_types",
4299
+ "type": "VARCHAR(50)",
4300
+ "nullable": true,
4301
+ "default": "NULL"
4302
+ },
4303
+ {
4304
+ "name": "is_cacheable",
4305
+ "type": "TINYINT(1)",
4306
+ "nullable": true,
4307
+ "default": "1"
4308
+ }
4309
+ ],
4310
+ "indexes": [
4311
+ {
4312
+ "name": "PRIMARY",
4313
+ "fields": [
4314
+ "id"
4315
+ ]
4316
+ },
4317
+ {
4318
+ "name": "widget_id",
4319
+ "fields": [
4320
+ "widget_id"
4321
+ ]
4322
+ }
4323
+ ]
4324
+ },
4325
+ {
4326
+ "name": "cms_widgets_bind_pages",
4327
+ "comment": "Привязка виджетов к страницам",
4328
+ "fields": [
4329
+ {
4330
+ "name": "id",
4331
+ "type": "INT(11)",
4332
+ "nullable": false,
4333
+ "extra": "AUTO_INCREMENT"
4334
+ },
4335
+ {
4336
+ "name": "bind_id",
4337
+ "type": "INT(11)",
4338
+ "nullable": true,
4339
+ "default": "NULL",
4340
+ "comment": "ID параметров виджета"
4341
+ },
4342
+ {
4343
+ "name": "template",
4344
+ "type": "VARCHAR(30)",
4345
+ "nullable": true,
4346
+ "default": "NULL",
4347
+ "comment": "Привязка к шаблону"
4348
+ },
4349
+ {
4350
+ "name": "is_enabled",
4351
+ "type": "TINYINT(1)",
4352
+ "nullable": true,
4353
+ "default": "NULL",
4354
+ "comment": "Включен?"
4355
+ },
4356
+ {
4357
+ "name": "page_id",
4358
+ "type": "INT(11)",
4359
+ "nullable": true,
4360
+ "default": "NULL",
4361
+ "comment": "ID страницы для вывода"
4362
+ },
4363
+ {
4364
+ "name": "position",
4365
+ "type": "VARCHAR(32)",
4366
+ "nullable": true,
4367
+ "default": "NULL",
4368
+ "comment": "Имя позиции"
4369
+ },
4370
+ {
4371
+ "name": "ordering",
4372
+ "type": "INT(11)",
4373
+ "nullable": true,
4374
+ "default": "NULL",
4375
+ "comment": "Порядковый номер"
4376
+ }
4377
+ ],
4378
+ "indexes": [
4379
+ {
4380
+ "name": "PRIMARY",
4381
+ "fields": [
4382
+ "id"
4383
+ ]
4384
+ },
4385
+ {
4386
+ "name": "position",
4387
+ "fields": [
4388
+ "position"
4389
+ ]
4390
+ },
4391
+ {
4392
+ "name": "page_id",
4393
+ "fields": [
4394
+ "page_id",
4395
+ "position",
4396
+ "ordering"
4397
+ ]
4398
+ }
4399
+ ]
4400
+ },
4401
+ {
4402
+ "name": "cms_widgets_pages",
4403
+ "fields": [
4404
+ {
4405
+ "name": "id",
4406
+ "type": "INT(11)",
4407
+ "nullable": false,
4408
+ "extra": "AUTO_INCREMENT"
4409
+ },
4410
+ {
4411
+ "name": "controller",
4412
+ "type": "VARCHAR(32)",
4413
+ "nullable": true,
4414
+ "default": "NULL",
4415
+ "comment": "Компонент"
4416
+ },
4417
+ {
4418
+ "name": "name",
4419
+ "type": "VARCHAR(64)",
4420
+ "nullable": true,
4421
+ "default": "NULL",
4422
+ "comment": "Системное имя"
4423
+ },
4424
+ {
4425
+ "name": "title_const",
4426
+ "type": "VARCHAR(64)",
4427
+ "nullable": true,
4428
+ "default": "NULL",
4429
+ "comment": "Название страницы (языковая константа)"
4430
+ },
4431
+ {
4432
+ "name": "title_subject",
4433
+ "type": "VARCHAR(64)",
4434
+ "nullable": true,
4435
+ "default": "NULL",
4436
+ "comment": "Название субъекта (передается в языковую константу)"
4437
+ },
4438
+ {
4439
+ "name": "title",
4440
+ "type": "VARCHAR(64)",
4441
+ "nullable": true,
4442
+ "default": "NULL",
4443
+ "comment": "Название страницы"
4444
+ },
4445
+ {
4446
+ "name": "url_mask",
4447
+ "type": "TEXT",
4448
+ "nullable": true,
4449
+ "comment": "Маска URL"
4450
+ },
4451
+ {
4452
+ "name": "url_mask_not",
4453
+ "type": "TEXT",
4454
+ "nullable": true,
4455
+ "comment": "Отрицательная маска"
4456
+ },
4457
+ {
4458
+ "name": "groups",
4459
+ "type": "TEXT",
4460
+ "nullable": true,
4461
+ "comment": "Группы доступа"
4462
+ },
4463
+ {
4464
+ "name": "countries",
4465
+ "type": "TEXT",
4466
+ "nullable": true,
4467
+ "comment": "Страны доступа"
4468
+ },
4469
+ {
4470
+ "name": "body_css",
4471
+ "type": "VARCHAR(100)",
4472
+ "nullable": true,
4473
+ "default": "NULL",
4474
+ "comment": "CSS класс для тега body"
4475
+ },
4476
+ {
4477
+ "name": "layout",
4478
+ "type": "VARCHAR(32)",
4479
+ "nullable": true,
4480
+ "default": "NULL",
4481
+ "comment": "Название лайоута для страницы"
4482
+ }
4483
+ ],
4484
+ "indexes": [
4485
+ {
4486
+ "name": "PRIMARY",
4487
+ "fields": [
4488
+ "id"
4489
+ ]
4490
+ },
4491
+ {
4492
+ "name": "controller",
4493
+ "fields": [
4494
+ "controller"
4495
+ ]
4496
+ },
4497
+ {
4498
+ "name": "name",
4499
+ "fields": [
4500
+ "name"
4501
+ ]
4502
+ }
4503
+ ]
4504
+ },
4505
+ {
4506
+ "name": "cms_wysiwygs_presets",
4507
+ "comment": "Пресеты для wysiwyg редакторов",
4508
+ "fields": [
4509
+ {
4510
+ "name": "id",
4511
+ "type": "INT(11)",
4512
+ "nullable": false,
4513
+ "extra": "AUTO_INCREMENT"
4514
+ },
4515
+ {
4516
+ "name": "wysiwyg_name",
4517
+ "type": "VARCHAR(40)",
4518
+ "nullable": true,
4519
+ "default": "NULL",
4520
+ "comment": "Имя редактора"
4521
+ },
4522
+ {
4523
+ "name": "options",
4524
+ "type": "TEXT",
4525
+ "nullable": true,
4526
+ "comment": "Опции"
4527
+ },
4528
+ {
4529
+ "name": "title",
4530
+ "type": "VARCHAR(100)",
4531
+ "nullable": true,
4532
+ "default": "NULL",
4533
+ "comment": "Название пресета"
4534
+ }
4535
+ ],
4536
+ "indexes": [
4537
+ {
4538
+ "name": "PRIMARY",
4539
+ "fields": [
4540
+ "id"
4541
+ ]
4542
+ }
4543
+ ]
4544
+ }
4545
+ ],
4546
+ "tableCount": 50,
4547
+ "generatedAt": "2026-06-04T12:03:09+03:00",
4548
+ "sourceFile": "base.sql"
4549
+ };
4550
+ function getTable(name) {
4551
+ return exports.databaseSchema.tables.find(t => t.name === name);
4552
+ }
4553
+ function getTablesByPrefix(prefix) {
4554
+ return exports.databaseSchema.tables.filter(t => t.name.startsWith(prefix));
4555
+ }