OSDN Git Service

8437e64cf14b3ce094b0038a09d907dd9eed7214
[pettanr/pettanr.git] / app / assets / javascripts / manifest / work / models.js.coffee.erb
1 #マニフェスト\r
2 @models = {\r
3   scroll: {\r
4     peta: {\r
5       type: 'binder',\r
6       args: {\r
7         leaf_tree_name: 'owner',\r
8       },\r
9     },\r
10     associations: {\r
11       belongs_to: {\r
12         author: {\r
13         }, \r
14       },\r
15       has_many: {\r
16         scroll_panels: {\r
17         }, \r
18         panels: {\r
19           through: 'scroll_panel',\r
20         }, \r
21       },\r
22     },\r
23     attributes: {\r
24       title: {\r
25         type: 'text',\r
26         rules : {\r
27           required: true,\r
28         }\r
29       },\r
30       description: {\r
31         type: 'text',\r
32         rules : {\r
33         }\r
34       },\r
35       visible: {\r
36         type: 'number',\r
37         rules : {\r
38           required: true,\r
39           number: true,\r
40         },\r
41         source: {\r
42           type: 'magic_number',\r
43           args: {\r
44             select_item_name: 'scroll_visible_items',\r
45           },\r
46         },\r
47       },\r
48       author_id: {\r
49         type: 'number',\r
50         rules : {\r
51           required: true,\r
52           number: true,\r
53         },\r
54       },\r
55     },\r
56     tree: {\r
57       scroll_owner: 'author',\r
58     },\r
59   },\r
60   scroll_panel: {\r
61     peta: {\r
62       type: 'leaf',\r
63     },\r
64     associations: {\r
65       belongs_to: {\r
66         panel: {\r
67         }, \r
68         scroll: {\r
69         }, \r
70       },\r
71       has_many: {\r
72       },\r
73     },\r
74     attributes: {\r
75       scroll_id: {\r
76         type: 'number',\r
77         rules : {\r
78           required: true,\r
79           number: true,\r
80         }\r
81       },\r
82       panel_id: {\r
83         type: 'number',\r
84         rules : {\r
85           required: true,\r
86           number: true,\r
87         }\r
88       },\r
89       t: {\r
90         type: 'number',\r
91         rules : {\r
92           required: true,\r
93           number: true,\r
94           min: 0,\r
95         }\r
96       },\r
97       author_id: {\r
98         type: 'number',\r
99         rules : {\r
100           required: true,\r
101           number: true,\r
102         }\r
103       },\r
104     },\r
105     tree: {\r
106       owner: 'scroll',\r
107       scroll_owner: 'scroll',\r
108     },\r
109   },\r
110   comic: {\r
111     peta: {\r
112       type: 'binder',\r
113       args: {\r
114         leaf_tree_name: 'owner',\r
115       },\r
116     },\r
117     associations: {\r
118       belongs_to: {\r
119         author: {\r
120         }, \r
121       },\r
122       has_many: {\r
123         stories: {\r
124         }, \r
125       },\r
126     },\r
127     attributes: {\r
128       title: {\r
129         type: 'text',\r
130         rules : {\r
131           required: true,\r
132         }\r
133       },\r
134       description: {\r
135         type: 'text',\r
136         rules : {\r
137         }\r
138       },\r
139       visible: {\r
140         type: 'number',\r
141         rules : {\r
142           required: true,\r
143           number: true,\r
144         },\r
145         source: {\r
146           type: 'magic_number',\r
147           args: {\r
148             select_item_name: 'comic_visible_items',\r
149           },\r
150         },\r
151       },\r
152       author_id: {\r
153         type: 'number',\r
154         rules : {\r
155           required: true,\r
156           number: true,\r
157         }\r
158       },\r
159     },\r
160     tree: {\r
161       comic_owner: 'author',\r
162     },\r
163   },\r
164   story: {\r
165     peta: {\r
166       type: 'binder',\r
167       args: {\r
168         leaf_tree_name: 'owner',\r
169       },\r
170     },\r
171     associations: {\r
172       belongs_to: {\r
173         comic: {\r
174         }, \r
175       },\r
176       has_many: {\r
177         story_sheets: {\r
178         }, \r
179         sheets: {\r
180           through: 'story_sheets',\r
181         }, \r
182       },\r
183     },\r
184     attributes: {\r
185       comic_id: {\r
186         type: 'number',\r
187         rules : {\r
188           number: true,\r
189         }\r
190       },\r
191       title: {\r
192         type: 'text',\r
193         rules : {\r
194         }\r
195       },\r
196       description: {\r
197         type: 'text',\r
198         rules : {\r
199         }\r
200       },\r
201       t: {\r
202         type: 'number',\r
203         rules : {\r
204           required: true,\r
205           number: true,\r
206           min: 0,\r
207         }\r
208       },\r
209       visible: {\r
210         type: 'number',\r
211         rules : {\r
212           required: true,\r
213           number: true,\r
214         },\r
215         source: {\r
216           type: 'magic_number',\r
217           args: {\r
218             select_item_name: 'story_visible_items',\r
219           },\r
220         },\r
221       },\r
222     },\r
223     tree: {\r
224       owner: 'comic',\r
225       comic_owner: 'comic',\r
226     },\r
227   },\r
228   story_sheet: {\r
229     peta: {\r
230       type: 'leaf',\r
231     },\r
232     associations: {\r
233       belongs_to: {\r
234         story: {\r
235         }, \r
236         sheet: {\r
237         }, \r
238       },\r
239       has_many: {\r
240       },\r
241     },\r
242     attributes: {\r
243       story_id: {\r
244         type: 'number',\r
245         rules : {\r
246           number: true,\r
247         }\r
248       },\r
249       sheet_id: {\r
250         type: 'number',\r
251         rules : {\r
252           number: true,\r
253         }\r
254       },\r
255       t: {\r
256         type: 'number',\r
257         rules : {\r
258           required: true,\r
259           number: true,\r
260           min: 0,\r
261         }\r
262       },\r
263       author_id: {\r
264         type: 'number',\r
265         rules : {\r
266           required: true,\r
267           number: true,\r
268         }\r
269       },\r
270     },\r
271     tree: {\r
272       owner: 'story',\r
273       comic_owner: 'story',\r
274     },\r
275   },\r
276   sheet: {\r
277     peta: {\r
278       type: 'root',\r
279       args: {\r
280         element_tree_name: 'owner',\r
281       },\r
282     },\r
283     associations: {\r
284       belongs_to: {\r
285         author: {\r
286         }, \r
287       },\r
288       has_many: {\r
289         story_sheets: {\r
290         }, \r
291         stories: {\r
292           through: 'story_sheets',\r
293         }, \r
294         sheet_panels: {\r
295         }, \r
296         panels: {\r
297           through: 'sheet_panels',\r
298         }, \r
299       },\r
300     },\r
301     attributes: {\r
302       caption: {\r
303         type: 'text',\r
304         rules : {\r
305         }\r
306       },\r
307       width: {\r
308         type: 'number',\r
309         rules : {\r
310           required: true,\r
311           number: true,\r
312         }\r
313       },\r
314       height: {\r
315         type: 'number',\r
316         rules : {\r
317           required: true,\r
318           number: true,\r
319         }\r
320       },\r
321       visible: {\r
322         type: 'number',\r
323         rules : {\r
324           required: true,\r
325           number: true,\r
326         },\r
327         source: {\r
328           type: 'magic_number',\r
329           args: {\r
330             select_item_name: 'sheet_visible_items',\r
331           },\r
332         },\r
333       },\r
334       author_id: {\r
335         type: 'number',\r
336         rules : {\r
337           required: true,\r
338           number: true,\r
339         }\r
340       },\r
341     },\r
342     tree: {\r
343       sheet_owner: 'author',\r
344     },\r
345   },\r
346   sheet_panel: {\r
347     peta: {\r
348       type: 'element',\r
349       args: {\r
350         element_tree_name: 'owner',\r
351       },\r
352     },\r
353     associations: {\r
354       belongs_to: {\r
355         sheet: {\r
356         }, \r
357         panel: {\r
358         }, \r
359       },\r
360       has_many: {\r
361       },\r
362     },\r
363     attributes: {\r
364       sheet_id: {\r
365         type: 'number',\r
366         rules : {\r
367           number: true,\r
368         }\r
369       },\r
370       panel_id: {\r
371         type: 'number',\r
372         rules : {\r
373           number: true,\r
374         }\r
375       },\r
376       x: {\r
377         type: 'number',\r
378         rules : {\r
379           required: true,\r
380           number: true,\r
381         }\r
382       },\r
383       y: {\r
384         type: 'number',\r
385         rules : {\r
386           required: true,\r
387           number: true,\r
388         }\r
389       },\r
390       z: {\r
391         type: 'number',\r
392         rules : {\r
393           required: true,\r
394           number: true,\r
395           min: 1,\r
396         }\r
397       },\r
398       t: {\r
399         type: 'number',\r
400         rules : {\r
401           required: true,\r
402           number: true,\r
403           min: 0,\r
404         }\r
405       },\r
406       author_id: {\r
407         type: 'number',\r
408         rules : {\r
409           number: true,\r
410         }\r
411       },\r
412     },\r
413     tree: {\r
414       owner: 'sheet',\r
415       sheet_owner: 'sheet',\r
416     },\r
417   },\r
418   panel: {\r
419     peta: {\r
420       type: 'root',\r
421       args: {\r
422         element_tree_name: 'panel',\r
423       },\r
424     },\r
425     associations: {\r
426       belongs_to: {\r
427         author: {\r
428         }, \r
429       },\r
430       has_many: {\r
431         scroll_panels: {\r
432         }, \r
433         scrolls: {\r
434           through: 'scroll_panels',\r
435         }, \r
436         sheet_panels: {\r
437         }, \r
438         sheets: {\r
439           through: 'sheet_panels',\r
440         }, \r
441         panel_pictures: {\r
442         }, \r
443         speech_balloons: {\r
444         }, \r
445         ground_pictures: {\r
446         }, \r
447         ground_colors: {\r
448         }, \r
449       },\r
450     },\r
451     attributes: {\r
452       width: {\r
453         type: 'number',\r
454         rules : {\r
455           required: true,\r
456           number: true,\r
457           min: 1,\r
458         }\r
459       },\r
460       height: {\r
461         type: 'number',\r
462         rules : {\r
463           required: true,\r
464           number: true,\r
465           min: 1,\r
466         }\r
467       },\r
468       border: {\r
469         type: 'number',\r
470         rules : {\r
471           required: true,\r
472           number: true,\r
473           min: 0,\r
474         }\r
475       },\r
476       caption: {\r
477         type: 'text',\r
478         rules : {\r
479         }\r
480       },\r
481       publish: {\r
482         type: 'number',\r
483         rules : {\r
484           required: true,\r
485           number: true,\r
486         },\r
487         source: {\r
488           type: 'magic_number',\r
489           args: {\r
490             select_item_name: 'panel_visible_items',\r
491           },\r
492         },\r
493       },\r
494       author_id: {\r
495         type: 'number',\r
496         rules : {\r
497           required: true,\r
498           number: true,\r
499         }\r
500       },\r
501     },\r
502     tree: {\r
503       panel_owner: 'author',\r
504     },\r
505   },\r
506   panel_picture: {\r
507     peta: {\r
508       type: 'element',\r
509       args: {\r
510         element_tree_name: 'panel',\r
511       },\r
512     },\r
513     associations: {\r
514       belongs_to: {\r
515         panel: {\r
516         }, \r
517       },\r
518       has_many: {\r
519       },\r
520     },\r
521     attributes: {\r
522       panel_id: {\r
523         type: 'number',\r
524         rules : {\r
525           number: true,\r
526         }\r
527       },\r
528       picture_id: {\r
529         type: 'number',\r
530         rules : {\r
531           required: true,\r
532           number: true,\r
533         }\r
534       },\r
535       caption: {\r
536         type: 'text',\r
537         rules : {\r
538         }\r
539       },\r
540       x: {\r
541         type: 'number',\r
542         rules : {\r
543           required: true,\r
544           number: true,\r
545         }\r
546       },\r
547       y: {\r
548         type: 'number',\r
549         rules : {\r
550           required: true,\r
551           number: true,\r
552         }\r
553       },\r
554       width: {\r
555         type: 'number',\r
556         rules : {\r
557           required: true,\r
558           number: true,\r
559         }\r
560       },\r
561       height: {\r
562         type: 'number',\r
563         rules : {\r
564           required: true,\r
565           number: true,\r
566         }\r
567       },\r
568       link: {\r
569         type: 'text',\r
570         rules : {\r
571           url: true,\r
572         }\r
573       },\r
574       z: {\r
575         type: 'number',\r
576         rules : {\r
577           required: true,\r
578           number: true,\r
579           min: 1,\r
580         }\r
581       },\r
582       t: {\r
583         type: 'number',\r
584         rules : {\r
585           required: true,\r
586           number: true,\r
587           min: 0,\r
588         }\r
589       },\r
590     },\r
591     tree: {\r
592       owner: 'panel',\r
593       panel_owner: 'panel',\r
594       panel: 'panel',\r
595     },\r
596   },\r
597   speech_balloon: {\r
598     peta: {\r
599       type: 'element',\r
600       args: {\r
601         element_tree_name: 'panel',\r
602       },\r
603     },\r
604     extend_column_name: 'classname', \r
605     associations: {\r
606       belongs_to: {\r
607         panel: {\r
608         }, \r
609       },\r
610       has_many: {\r
611       },\r
612       has_one: {\r
613         balloon: {\r
614         }, \r
615         speech: {\r
616         }, \r
617       },\r
618     },\r
619     attributes: {\r
620       panel_id: {\r
621         type: 'number',\r
622         rules : {\r
623           number: true,\r
624         }\r
625       },\r
626       speech_balloon_template_id: {\r
627         type: 'number',\r
628         rules : {\r
629           required: true,\r
630           number: true,\r
631         }\r
632       },\r
633       classname: {\r
634         type: 'text',\r
635         rules : {\r
636           required: true,\r
637         }\r
638       },\r
639       z: {\r
640         type: 'number',\r
641         rules : {\r
642           required: true,\r
643           number: true,\r
644           min: 1,\r
645         }\r
646       },\r
647       t: {\r
648         type: 'number',\r
649         rules : {\r
650           required: true,\r
651           number: true,\r
652           min: 0,\r
653         }\r
654       },\r
655       settings: {\r
656         type: 'text',\r
657         rules : {\r
658         }\r
659       },\r
660       caption: {\r
661         type: 'text',\r
662         rules : {\r
663         }\r
664       },\r
665     },\r
666     tree: {\r
667       owner: 'panel',\r
668       panel_owner: 'panel',\r
669       panel: 'panel',\r
670     },\r
671   }, \r
672   balloon: {\r
673     peta: {\r
674       type: 'element',\r
675       args: {\r
676         element_tree_name: 'panel',\r
677       },\r
678     },\r
679     associations: {\r
680       belongs_to: {\r
681         speech_balloon: {\r
682         }, \r
683         system_picture: {\r
684         }, \r
685       },\r
686       has_many: {\r
687       },\r
688     },\r
689     attributes: {\r
690       speech_balloon_id: {\r
691         type: 'number',\r
692         rules : {\r
693           number: true,\r
694         }\r
695       },\r
696       system_picture_id: {\r
697         type: 'number',\r
698         rules : {\r
699           required: true,\r
700           number: true,\r
701         }\r
702       },\r
703       x: {\r
704         type: 'number',\r
705         rules : {\r
706           required: true,\r
707           number: true,\r
708         }\r
709       },\r
710       y: {\r
711         type: 'number',\r
712         rules : {\r
713           required: true,\r
714           number: true,\r
715         }\r
716       },\r
717       width: {\r
718         type: 'number',\r
719         rules : {\r
720           required: true,\r
721           number: true,\r
722           min: 1,\r
723         }\r
724       },\r
725       height: {\r
726         type: 'number',\r
727         rules : {\r
728           required: true,\r
729           number: true,\r
730           min: 1,\r
731         }\r
732       },\r
733       r: {\r
734         type: 'number',\r
735         rules : {\r
736           required: true,\r
737           number: true,\r
738         }\r
739       },\r
740       settings: {\r
741         type: 'text',\r
742         rules : {\r
743         }\r
744       },\r
745     },\r
746     tree: {\r
747       owner: 'speech_balloon',\r
748       panel_owner: 'speech_balloon',\r
749       panel: 'speech_balloon',\r
750     },\r
751   },\r
752   speech: {\r
753     peta: {\r
754       type: 'element',\r
755       args: {\r
756         element_tree_name: 'panel',\r
757       },\r
758     },\r
759     associations: {\r
760       belongs_to: {\r
761         speech_balloon: {\r
762         }, \r
763         writing_format: {\r
764         }, \r
765       },\r
766       has_many: {\r
767       },\r
768     },\r
769     attributes: {\r
770       speech_balloon_id: {\r
771         type: 'number',\r
772         rules : {\r
773           number: true,\r
774         }\r
775       },\r
776       writing_format_id: {\r
777         type: 'number',\r
778         source: {\r
779           type: 'model',\r
780         },\r
781         rules : {\r
782           required: true,\r
783           number: true,\r
784         }\r
785       },\r
786       content: {\r
787         type: 'text',\r
788         rules : {\r
789         }\r
790       },\r
791       font_size: {\r
792         type: 'float',\r
793         rules : {\r
794           required: true,\r
795           number: true,\r
796           min: 0,\r
797         },\r
798         source: {\r
799           type: 'magic_number',\r
800           args: {\r
801             select_item_name: 'speech_font_size_items',\r
802           },\r
803         },\r
804       },\r
805       text_align: {\r
806         type: 'number',\r
807         rules : {\r
808           required: true,\r
809           number: true,\r
810           range: [0, 3],\r
811         },\r
812         source: {\r
813           type: 'magic_number',\r
814           args: {\r
815             select_item_name: 'speech_text_align_items',\r
816           },\r
817         },\r
818       },\r
819       fore_color: {\r
820         type: 'number',\r
821         rules : {\r
822           required: true,\r
823           number: true,\r
824           range: [0, 0xffffff],\r
825         }\r
826       },\r
827       x: {\r
828         type: 'number',\r
829         rules : {\r
830           required: true,\r
831           number: true,\r
832         }\r
833       },\r
834       y: {\r
835         type: 'number',\r
836         rules : {\r
837           required: true,\r
838           number: true,\r
839         }\r
840       },\r
841       width: {\r
842         type: 'number',\r
843         rules : {\r
844           required: true,\r
845           number: true,\r
846           min: 1,\r
847         }\r
848       },\r
849       height: {\r
850         type: 'number',\r
851         rules : {\r
852           required: true,\r
853           number: true,\r
854           min: 1,\r
855         }\r
856       },\r
857       quotes: {\r
858         type: 'text',\r
859         rules : {\r
860         }\r
861       },\r
862       settings: {\r
863         type: 'text',\r
864         rules : {\r
865         }\r
866       },\r
867     },\r
868     tree: {\r
869       owner: 'speech_balloon',\r
870       panel_owner: 'speech_balloon',\r
871       panel: 'speech_balloon',\r
872     },\r
873   },\r
874   ground_picture: {\r
875     peta: {\r
876       type: 'element',\r
877       args: {\r
878         element_tree_name: 'panel',\r
879       },\r
880     },\r
881     associations: {\r
882       belongs_to: {\r
883         panel: {\r
884         }, \r
885       },\r
886       has_many: {\r
887       },\r
888     },\r
889     attributes: {\r
890       panel_id: {\r
891         type: 'number',\r
892         rules : {\r
893           number: true,\r
894         }\r
895       },\r
896       picture_id: {\r
897         type: 'number',\r
898         rules : {\r
899           required: true,\r
900           number: true,\r
901         }\r
902       },\r
903       caption: {\r
904         type: 'text',\r
905         rules : {\r
906         }\r
907       },\r
908       repeat: {\r
909         type: 'number',\r
910         rules : {\r
911           required: true,\r
912           number: true,\r
913           range: [0, 3],\r
914         },\r
915         source: {\r
916           type: 'magic_number',\r
917           args: {\r
918             select_item_name: 'ground_picture_repeat_items',\r
919           },\r
920         },\r
921       },\r
922       x: {\r
923         type: 'number',\r
924         rules : {\r
925           required: true,\r
926           number: true,\r
927         }\r
928       },\r
929       y: {\r
930         type: 'number',\r
931         rules : {\r
932           required: true,\r
933           number: true,\r
934         }\r
935       },\r
936       z: {\r
937         type: 'number',\r
938         rules : {\r
939           required: true,\r
940           number: true,\r
941           min: 1,\r
942         }\r
943       },\r
944       t: {\r
945         type: 'number',\r
946         rules : {\r
947           required: true,\r
948           number: true,\r
949           min: 0,\r
950         }\r
951       },\r
952     },\r
953     tree: {\r
954       owner: 'panel',\r
955       panel_owner: 'panel',\r
956       panel: 'panel',\r
957     },\r
958   },\r
959   ground_color: {\r
960     peta: {\r
961       type: 'element',\r
962       args: {\r
963         element_tree_name: 'panel',\r
964       },\r
965     },\r
966     associations: {\r
967       belongs_to: {\r
968         panel: {\r
969         }, \r
970       },\r
971       has_many: {\r
972       },\r
973     },\r
974     attributes: {\r
975       panel_id: {\r
976         type: 'number',\r
977         rules : {\r
978           number: true,\r
979         }\r
980       },\r
981       caption: {\r
982         type: 'text',\r
983         rules : {\r
984         }\r
985       },\r
986       code: {\r
987         type: 'number',\r
988         rules : {\r
989           required: true,\r
990           number: true,\r
991           range: [0, 0xffffff],\r
992         }\r
993       },\r
994       orientation: {\r
995         type: 'number',\r
996         rules : {\r
997           required: true,\r
998           number: true,\r
999           range: [0, 1],\r
1000         },\r
1001         source: {\r
1002           type: 'magic_number',\r
1003           args: {\r
1004             select_item_name: 'ground_color_orientation_items',\r
1005           },\r
1006         },\r
1007       },\r
1008       xy: {\r
1009         type: 'number',\r
1010         rules : {\r
1011           number: true,\r
1012         }\r
1013       },\r
1014       wh: {\r
1015         type: 'number',\r
1016         rules : {\r
1017           number: true,\r
1018         }\r
1019       },\r
1020       z: {\r
1021         type: 'number',\r
1022         rules : {\r
1023           required: true,\r
1024           number: true,\r
1025           min: 1,\r
1026         }\r
1027       },\r
1028       t: {\r
1029         type: 'number',\r
1030         rules : {\r
1031           required: true,\r
1032           number: true,\r
1033           min: 0,\r
1034         }\r
1035       },\r
1036     },\r
1037     tree: {\r
1038       owner: 'panel',\r
1039       panel_owner: 'panel',\r
1040       panel: 'panel',\r
1041     },\r
1042   },\r
1043   original_picture: {\r
1044     associations: {\r
1045       belongs_to: {\r
1046         artist: {\r
1047         }, \r
1048       },\r
1049       has_many: {\r
1050         pictures: {\r
1051         }, \r
1052       },\r
1053       has_one: {\r
1054         resource_picture: {\r
1055         }, \r
1056       },\r
1057     },\r
1058     attributes: {\r
1059       ext: {\r
1060         type: 'text',\r
1061         rules : {\r
1062           required: true,\r
1063         }\r
1064       },\r
1065       width: {\r
1066         type: 'number',\r
1067         rules : {\r
1068           required: true,\r
1069           number: true,\r
1070         }\r
1071       },\r
1072       height: {\r
1073         type: 'number',\r
1074         rules : {\r
1075           required: true,\r
1076           number: true,\r
1077         }\r
1078       },\r
1079       filesize: {\r
1080         type: 'number',\r
1081         rules : {\r
1082           required: true,\r
1083           number: true,\r
1084         }\r
1085       },\r
1086       artist_id: {\r
1087         type: 'number',\r
1088         rules : {\r
1089           required: true,\r
1090           number: true,\r
1091         }\r
1092       },\r
1093       md5: {\r
1094         type: 'text',\r
1095         rules : {\r
1096           required: true,\r
1097           required: true,\r
1098         }\r
1099       },\r
1100       uploaded_at: {\r
1101         type: 'datetime',\r
1102       },\r
1103       published_at: {\r
1104         type: 'datetime',\r
1105       },\r
1106       stopped_at: {\r
1107         type: 'datetime',\r
1108       },\r
1109     },\r
1110   },\r
1111   picture: {\r
1112     associations: {\r
1113       belongs_to: {\r
1114         license: {\r
1115         }, \r
1116         artist: {\r
1117         }, \r
1118       },\r
1119       has_many: {\r
1120       },\r
1121       has_one: {\r
1122       },\r
1123     },\r
1124     attributes: {\r
1125       original_picture_id: {\r
1126         type: 'number',\r
1127         rules : {\r
1128           required: true,\r
1129           number: true,\r
1130         }\r
1131       },\r
1132       revision: {\r
1133         type: 'number',\r
1134         rules : {\r
1135           required: true,\r
1136           number: true,\r
1137         }\r
1138       },\r
1139       ext: {\r
1140         type: 'text',\r
1141         rules : {\r
1142           required: true,\r
1143         }\r
1144       },\r
1145       width: {\r
1146         type: 'number',\r
1147         rules : {\r
1148           required: true,\r
1149           number: true,\r
1150         }\r
1151       },\r
1152       height: {\r
1153         type: 'number',\r
1154         rules : {\r
1155           required: true,\r
1156           number: true,\r
1157         }\r
1158       },\r
1159       filesize: {\r
1160         type: 'number',\r
1161         rules : {\r
1162           required: true,\r
1163           number: true,\r
1164         }\r
1165       },\r
1166       artist_id: {\r
1167         type: 'number',\r
1168         rules : {\r
1169           required: true,\r
1170           number: true,\r
1171         }\r
1172       },\r
1173       license_id: {\r
1174         type: 'number',\r
1175         rules : {\r
1176           required: true,\r
1177           number: true,\r
1178         }\r
1179       },\r
1180       md5: {\r
1181         type: 'text',\r
1182         rules : {\r
1183           required: true,\r
1184         }\r
1185       },\r
1186       artist_name: {\r
1187         type: 'text',\r
1188         rules : {\r
1189           required: true,\r
1190         }\r
1191       },\r
1192       credit: {\r
1193         type: 'text',\r
1194         rules : {\r
1195         }\r
1196       },\r
1197       settings: {\r
1198         type: 'text',\r
1199         rules : {\r
1200         }\r
1201       },\r
1202       classname: {\r
1203         type: 'text',\r
1204         rules : {\r
1205           required: true,\r
1206         }\r
1207       },\r
1208     }\r
1209   },\r
1210   resource_picture: {\r
1211     associations: {\r
1212       belongs_to: {\r
1213         original_picture: {\r
1214         }, \r
1215         license: {\r
1216         }, \r
1217         artist: {\r
1218         }, \r
1219       },\r
1220       has_many: {\r
1221       },\r
1222       has_one: {\r
1223       },\r
1224     },\r
1225     attributes: {\r
1226       original_picture_id: {\r
1227         type: 'number',\r
1228         rules : {\r
1229           required: true,\r
1230           number: true,\r
1231         }\r
1232       },\r
1233       revision: {\r
1234         type: 'number',\r
1235         rules : {\r
1236           required: true,\r
1237           number: true,\r
1238         }\r
1239       },\r
1240       ext: {\r
1241         type: 'text',\r
1242         rules : {\r
1243           required: true,\r
1244         }\r
1245       },\r
1246       width: {\r
1247         type: 'number',\r
1248         rules : {\r
1249           required: true,\r
1250           number: true,\r
1251         }\r
1252       },\r
1253       height: {\r
1254         type: 'number',\r
1255         rules : {\r
1256           required: true,\r
1257           number: true,\r
1258         }\r
1259       },\r
1260       filesize: {\r
1261         type: 'number',\r
1262         rules : {\r
1263           required: true,\r
1264           number: true,\r
1265         }\r
1266       },\r
1267       artist_id: {\r
1268         type: 'number',\r
1269         rules : {\r
1270           required: true,\r
1271           number: true,\r
1272         }\r
1273       },\r
1274       license_id: {\r
1275         type: 'number',\r
1276         rules : {\r
1277           required: true,\r
1278           number: true,\r
1279         }\r
1280       },\r
1281       md5: {\r
1282         type: 'text',\r
1283         rules : {\r
1284           required: true,\r
1285         }\r
1286       },\r
1287       artist_name: {\r
1288         type: 'text',\r
1289         rules : {\r
1290           required: true,\r
1291         }\r
1292       },\r
1293       credit: {\r
1294         type: 'text',\r
1295         rules : {\r
1296         }\r
1297       },\r
1298       settings: {\r
1299         type: 'text',\r
1300         rules : {\r
1301         }\r
1302       },\r
1303       picture_id: {\r
1304         type: 'number',\r
1305         rules : {\r
1306           required: true,\r
1307           number: true,\r
1308         }\r
1309       },\r
1310       classname: {\r
1311         type: 'text',\r
1312         rules : {\r
1313           required: true,\r
1314         }\r
1315       },\r
1316     },\r
1317   },\r
1318   speech_balloon_template: {\r
1319     extend_column_name: 'classname', \r
1320     associations: {\r
1321       belongs_to: {\r
1322         system_picture: {\r
1323         }, \r
1324       },\r
1325       has_many: {\r
1326         speech_balloons: {\r
1327         }, \r
1328         panels: {\r
1329           through: 'speech_balloons',\r
1330         }, \r
1331       },\r
1332       has_one: {\r
1333       },\r
1334     },\r
1335     attributes: {\r
1336       name: {\r
1337         type: 'text',\r
1338         rules : {\r
1339           required: true,\r
1340         }\r
1341       },\r
1342       classname: {\r
1343         type: 'text',\r
1344         rules : {\r
1345           required: true,\r
1346         }\r
1347       },\r
1348       caption: {\r
1349         type: 'text',\r
1350         rules : {\r
1351           required: true,\r
1352         }\r
1353       },\r
1354       t: {\r
1355         type: 'number',\r
1356         rules : {\r
1357           required: true,\r
1358           number: true,\r
1359           min: 0,\r
1360         }\r
1361       },\r
1362       system_picture_id: {\r
1363         type: 'number',\r
1364         rules : {\r
1365           required: true,\r
1366           number: true,\r
1367         }\r
1368       },\r
1369       settings: {\r
1370         type: 'text',\r
1371         rules : {\r
1372           required: true,\r
1373         }\r
1374       },\r
1375     },\r
1376   },\r
1377   writing_format: {\r
1378     extend_column_name: 'classname', \r
1379     associations: {\r
1380       belongs_to: {\r
1381         system_picture: {\r
1382         }, \r
1383       },\r
1384       has_many: {\r
1385         speeches: {\r
1386         }, \r
1387       },\r
1388       has_one: {\r
1389       },\r
1390     },\r
1391     attributes: {\r
1392       name: {\r
1393         type: 'text',\r
1394         rules : {\r
1395           required: true,\r
1396         }\r
1397       },\r
1398       classname: {\r
1399         type: 'text',\r
1400         rules : {\r
1401           required: true,\r
1402         }\r
1403       },\r
1404       caption: {\r
1405         type: 'text',\r
1406         rules : {\r
1407           required: true,\r
1408         }\r
1409       },\r
1410       system_picture_id: {\r
1411         type: 'number',\r
1412         rules : {\r
1413           required: true,\r
1414           number: true,\r
1415         }\r
1416       },\r
1417       settings: {\r
1418         type: 'text',\r
1419         rules : {\r
1420           required: true,\r
1421         }\r
1422       },\r
1423     },\r
1424   },\r
1425   license_group: {\r
1426     extend_column_name: 'classname', \r
1427     associations: {\r
1428       belongs_to: {\r
1429       },\r
1430       has_many: {\r
1431         licenses: {\r
1432         }, \r
1433       },\r
1434       has_one: {\r
1435       },\r
1436     },\r
1437     attributes: {\r
1438       name: {\r
1439         type: 'text',\r
1440         rules : {\r
1441           required: true,\r
1442         }\r
1443       },\r
1444       classname: {\r
1445         type: 'text',\r
1446         rules : {\r
1447           required: true,\r
1448         }\r
1449       },\r
1450       caption: {\r
1451         type: 'text',\r
1452         rules : {\r
1453           required: true,\r
1454         }\r
1455       },\r
1456       url: {\r
1457         type: 'text',\r
1458         rules : {\r
1459           required: true,\r
1460         }\r
1461       },\r
1462     },\r
1463   },\r
1464   license: {\r
1465     associations: {\r
1466       belongs_to: {\r
1467         license_group: {\r
1468         }, \r
1469         system_picture: {\r
1470         }, \r
1471       },\r
1472       has_many: {\r
1473         resource_pictures: {\r
1474         }, \r
1475       },\r
1476       has_one: {\r
1477       },\r
1478     },\r
1479     attributes: {\r
1480       license_group_id: {\r
1481         type: 'number',\r
1482         rules : {\r
1483           number: true,\r
1484         }\r
1485       },\r
1486       name: {\r
1487         type: 'text',\r
1488         rules : {\r
1489           required: true,\r
1490         }\r
1491       },\r
1492       caption: {\r
1493         type: 'text',\r
1494         rules : {\r
1495           required: true,\r
1496         }\r
1497       },\r
1498       system_picture_id: {\r
1499         type: 'number',\r
1500         rules : {\r
1501           required: true,\r
1502           number: true,\r
1503         }\r
1504       },\r
1505       url: {\r
1506         type: 'text',\r
1507         rules : {\r
1508           required: true,\r
1509         }\r
1510       },\r
1511       settings: {\r
1512         type: 'text',\r
1513         rules : {\r
1514         }\r
1515       },\r
1516       credit_pictures: {\r
1517         type: 'text',\r
1518         rules : {\r
1519         }\r
1520       },\r
1521     },\r
1522   },\r
1523   author: {\r
1524     associations: {\r
1525       belongs_to: {\r
1526       },\r
1527       has_many: {\r
1528         scrolls: {\r
1529         }, \r
1530         comics: {\r
1531         }, \r
1532         stories: {\r
1533         }, \r
1534         sheets: {\r
1535         }, \r
1536         panels: {\r
1537         }, \r
1538       },\r
1539       has_one: {\r
1540       },\r
1541     },\r
1542     attributes: {\r
1543       name: {\r
1544         type: 'text',\r
1545         rules : {\r
1546           required: true,\r
1547         }\r
1548       },\r
1549       user_id: {\r
1550         type: 'number',\r
1551         rules : {\r
1552           required: true,\r
1553           number: true,\r
1554         }\r
1555       },\r
1556     },\r
1557   },\r
1558   artist: {\r
1559     associations: {\r
1560       belongs_to: {\r
1561       },\r
1562       has_many: {\r
1563         resource_pictures: {\r
1564         }, \r
1565       },\r
1566       has_one: {\r
1567       },\r
1568     },\r
1569     attributes: {\r
1570       name: {\r
1571         type: 'text',\r
1572         rules : {\r
1573           required: true,\r
1574         }\r
1575       },\r
1576       author_id: {\r
1577         type: 'number',\r
1578         rules : {\r
1579           required: true,\r
1580           number: true,\r
1581         }\r
1582       },\r
1583     },\r
1584   },\r
1585   system_picture: {\r
1586     associations: {\r
1587       belongs_to: {\r
1588       },\r
1589       has_many: {\r
1590         balloons: {\r
1591         }, \r
1592         speech_balloon_templates: {\r
1593         }, \r
1594         licenses: {\r
1595         }, \r
1596       },\r
1597       has_one: {\r
1598       },\r
1599     },\r
1600     attributes: {\r
1601       ext: {\r
1602         type: 'text',\r
1603         rules : {\r
1604           required: true,\r
1605         }\r
1606       },\r
1607       width: {\r
1608         type: 'number',\r
1609         rules : {\r
1610           required: true,\r
1611           number: true,\r
1612         }\r
1613       },\r
1614       height: {\r
1615         type: 'number',\r
1616         rules : {\r
1617           required: true,\r
1618           number: true,\r
1619         }\r
1620       },\r
1621       filesize: {\r
1622         type: 'number',\r
1623         rules : {\r
1624           required: true,\r
1625           number: true,\r
1626         }\r
1627       },\r
1628       md5: {\r
1629         type: 'text',\r
1630         rules : {\r
1631           required: true,\r
1632           required: true,\r
1633         }\r
1634       },\r
1635     },\r
1636   },\r
1637 }\r
1638 \r