#マニフェスト @models = { scroll: { associations: { belongs_to: { author: { }, }, has_many: { scroll_panels: { }, panels: { through: 'scroll_panel', }, }, }, attributes: { title: { type: 'text', rules : { required: true, } }, description: { type: 'text', rules : { } }, visible: { type: 'number', rules : { required: true, number: true, }, source: { type: 'magic_number', args: { select_item_name: 'scroll_visible_items', }, }, }, author_id: { type: 'number', rules : { required: true, number: true, }, }, }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_author: { type: 'filter', args: { }, }, by_panel: { type: 'through_filter', args: { through: 'scroll_panels', }, }, play: { type: 'play', args: { filter_item_name: 'scroll', filter_model_name: 'scroll_panel', filter_key: 'scroll_id', }, }, }, }, scroll_panel: { associations: { belongs_to: { panel: { }, scroll: { }, }, has_many: { }, }, attributes: { scroll_id: { type: 'number', rules : { required: true, number: true, } }, panel_id: { type: 'number', rules : { required: true, number: true, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, tree: { owner: 'scroll', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_scroll: { type: 'filter', }, by_panel: { type: 'filter', }, }, }, comic: { associations: { belongs_to: { author: { }, }, has_many: { stories: { }, }, }, attributes: { title: { type: 'text', rules : { required: true, } }, description: { type: 'text', rules : { } }, visible: { type: 'number', rules : { required: true, number: true, }, source: { type: 'magic_number', args: { select_item_name: 'comic_visible_items', }, }, }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_author: { type: 'filter', }, }, }, story: { associations: { belongs_to: { comic: { }, }, has_many: { story_sheets: { }, sheets: { through: 'story_sheets', }, }, }, attributes: { comic_id: { type: 'number', rules : { number: true, } }, title: { type: 'text', rules : { } }, description: { type: 'text', rules : { } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, visible: { type: 'number', rules : { required: true, number: true, }, source: { type: 'magic_number', args: { select_item_name: 'story_visible_items', }, }, }, }, tree: { owner: 'comic', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_comic: { type: 'filter', }, by_sheet: { type: 'through_filter', args: { through: 'story_sheets', }, }, by_author: { type: 'foreign_filter', }, play: { type: 'play', }, }, }, story_sheet: { associations: { belongs_to: { story: { }, sheet: { }, }, has_many: { }, }, attributes: { story_id: { type: 'number', rules : { number: true, } }, sheet_id: { type: 'number', rules : { number: true, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, tree: { owner: 'story', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_story: { type: 'filter', }, by_sheet: { type: 'filter', }, }, }, sheet: { associations: { belongs_to: { author: { }, }, has_many: { story_sheets: { }, stories: { through: 'story_sheets', }, sheet_panels: { }, panels: { through: 'sheet_panels', }, }, }, attributes: { caption: { type: 'text', rules : { } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, visible: { type: 'number', rules : { required: true, number: true, }, source: { type: 'magic_number', args: { select_item_name: 'sheet_visible_items', }, }, }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_story: { type: 'through_filter', args: { through: 'story_sheets', }, }, by_panel: { type: 'through_filter', args: { through: 'sheet_panels', }, }, by_author: { type: 'filter', }, play: { type: 'play', }, }, }, sheet_panel: { associations: { belongs_to: { sheet: { }, panel: { }, }, has_many: { }, }, attributes: { sheet_id: { type: 'number', rules : { number: true, } }, panel_id: { type: 'number', rules : { number: true, } }, x: { type: 'number', rules : { required: true, number: true, } }, y: { type: 'number', rules : { required: true, number: true, } }, z: { type: 'number', rules : { required: true, number: true, min: 1, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, author_id: { type: 'number', rules : { number: true, } }, }, tree: { owner: 'sheet', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_sheet: { type: 'filter', }, by_panel: { type: 'filter', }, }, }, panel: { peta: { type: 'root', args: { element_tree_name: 'panel', }, }, associations: { belongs_to: { author: { }, }, has_many: { scroll_panels: { }, scrolls: { through: 'scroll_panels', }, sheet_panels: { }, sheets: { through: 'sheet_panels', }, panel_pictures: { }, speech_balloons: { }, ground_pictures: { }, ground_colors: { }, }, }, attributes: { width: { type: 'number', rules : { required: true, number: true, min: 1, } }, height: { type: 'number', rules : { required: true, number: true, min: 1, } }, border: { type: 'number', rules : { required: true, number: true, min: 0, } }, caption: { type: 'text', rules : { } }, publish: { type: 'number', rules : { required: true, number: true, }, source: { type: 'magic_number', args: { select_item_name: 'panel_visible_items', }, }, }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_scroll: { type: 'through_filter', args: { through: 'scroll_panels', }, }, by_sheet: { type: 'through_filter', args: { through: 'sheet_panels', }, }, by_author: { type: 'filter', }, by_speech_balloon_template: { type: 'through_filter', }, }, }, panel_picture: { associations: { belongs_to: { panel: { }, }, has_many: { }, }, attributes: { panel_id: { type: 'number', rules : { number: true, } }, picture_id: { type: 'number', rules : { required: true, number: true, } }, caption: { type: 'text', rules : { } }, x: { type: 'number', rules : { required: true, number: true, } }, y: { type: 'number', rules : { required: true, number: true, } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, link: { type: 'text', rules : { url: true, } }, z: { type: 'number', rules : { required: true, number: true, min: 1, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, }, tree: { owner: 'panel', panel: 'panel', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_panel: { type: 'filter', }, by_author: { type: 'foreign_filter', }, }, }, speech_balloon: { extend_column_name: 'classname', associations: { belongs_to: { panel: { }, }, has_many: { }, has_one: { balloon: { }, speech: { }, }, }, attributes: { panel_id: { type: 'number', rules : { number: true, } }, speech_balloon_template_id: { type: 'number', rules : { required: true, number: true, } }, classname: { type: 'text', rules : { required: true, } }, z: { type: 'number', rules : { required: true, number: true, min: 1, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, settings: { type: 'text', rules : { } }, caption: { type: 'text', rules : { } }, }, tree: { owner: 'panel', panel: 'panel', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_panel: { type: 'filter', }, by_speech_balloon_template: { type: 'filter', }, by_author: { type: 'foreign_filter', }, }, }, balloon: { associations: { belongs_to: { speech_balloon: { }, system_picture: { }, }, has_many: { }, }, attributes: { speech_balloon_id: { type: 'number', rules : { number: true, } }, system_picture_id: { type: 'number', rules : { required: true, number: true, } }, x: { type: 'number', rules : { required: true, number: true, } }, y: { type: 'number', rules : { required: true, number: true, } }, width: { type: 'number', rules : { required: true, number: true, min: 1, } }, height: { type: 'number', rules : { required: true, number: true, min: 1, } }, r: { type: 'number', rules : { required: true, number: true, } }, settings: { type: 'text', rules : { } }, }, tree: { owner: 'speech_balloon', panel: 'speech_balloon', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_panel: { type: 'filter', }, by_speech_balloon: { type: 'filter', }, by_author: { type: 'foreign_filter', }, }, }, speech: { associations: { belongs_to: { speech_balloon: { }, writing_format: { }, }, has_many: { }, }, attributes: { speech_balloon_id: { type: 'number', rules : { number: true, } }, writing_format_id: { type: 'number', source: { type: 'model', }, rules : { required: true, number: true, } }, content: { type: 'text', rules : { } }, font_size: { type: 'float', rules : { required: true, number: true, min: 0, }, source: { type: 'magic_number', args: { select_item_name: 'speech_font_size_items', }, }, }, text_align: { type: 'number', rules : { required: true, number: true, range: [0, 3], }, source: { type: 'magic_number', args: { select_item_name: 'speech_text_align_items', }, }, }, fore_color: { type: 'number', rules : { required: true, number: true, range: [0, 0xffffff], } }, x: { type: 'number', rules : { required: true, number: true, } }, y: { type: 'number', rules : { required: true, number: true, } }, width: { type: 'number', rules : { required: true, number: true, min: 1, } }, height: { type: 'number', rules : { required: true, number: true, min: 1, } }, quotes: { type: 'text', rules : { } }, settings: { type: 'text', rules : { } }, }, tree: { owner: 'speech_balloon', panel: 'speech_balloon', }, lists: { public: { type: 'public', }, by_speech_balloon: { type: 'filter', }, by_writing_format: { type: 'filter', }, }, }, ground_picture: { associations: { belongs_to: { panel: { }, }, has_many: { }, }, attributes: { panel_id: { type: 'number', rules : { number: true, } }, picture_id: { type: 'number', rules : { required: true, number: true, } }, caption: { type: 'text', rules : { } }, repeat: { type: 'number', rules : { required: true, number: true, range: [0, 3], }, source: { type: 'magic_number', args: { select_item_name: 'ground_picture_repeat_items', }, }, }, x: { type: 'number', rules : { required: true, number: true, } }, y: { type: 'number', rules : { required: true, number: true, } }, z: { type: 'number', rules : { required: true, number: true, min: 1, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, }, tree: { owner: 'panel', panel: 'panel', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_panel: { type: 'filter', }, by_author: { type: 'foreign_filter', }, }, }, ground_color: { associations: { belongs_to: { panel: { }, }, has_many: { }, }, attributes: { panel_id: { type: 'number', rules : { number: true, } }, caption: { type: 'text', rules : { } }, code: { type: 'number', rules : { required: true, number: true, range: [0, 0xffffff], } }, orientation: { type: 'number', rules : { required: true, number: true, range: [0, 1], }, source: { type: 'magic_number', args: { select_item_name: 'ground_color_orientation_items', }, }, }, xy: { type: 'number', rules : { number: true, } }, wh: { type: 'number', rules : { number: true, } }, z: { type: 'number', rules : { required: true, number: true, min: 1, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, }, tree: { owner: 'panel', panel: 'panel', }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_panel: { type: 'filter', }, by_author: { type: 'foreign_filter', }, }, }, original_picture: { associations: { belongs_to: { artist: { }, }, has_many: { pictures: { }, }, has_one: { resource_picture: { }, }, }, attributes: { ext: { type: 'text', rules : { required: true, } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, filesize: { type: 'number', rules : { required: true, number: true, } }, artist_id: { type: 'number', rules : { required: true, number: true, } }, md5: { type: 'text', rules : { required: true, required: true, } }, uploaded_at: { type: 'datetime', }, published_at: { type: 'datetime', }, stopped_at: { type: 'datetime', }, }, lists: { private: { type: 'private', }, }, }, picture: { associations: { belongs_to: { license: { }, artist: { }, }, has_many: { }, has_one: { }, }, attributes: { original_picture_id: { type: 'number', rules : { required: true, number: true, } }, revision: { type: 'number', rules : { required: true, number: true, } }, ext: { type: 'text', rules : { required: true, } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, filesize: { type: 'number', rules : { required: true, number: true, } }, artist_id: { type: 'number', rules : { required: true, number: true, } }, license_id: { type: 'number', rules : { required: true, number: true, } }, md5: { type: 'text', rules : { required: true, } }, artist_name: { type: 'text', rules : { required: true, } }, credit: { type: 'text', rules : { } }, settings: { type: 'text', rules : { } }, classname: { type: 'text', rules : { required: true, } }, } }, resource_picture: { associations: { belongs_to: { original_picture: { }, license: { }, artist: { }, }, has_many: { }, has_one: { }, }, attributes: { original_picture_id: { type: 'number', rules : { required: true, number: true, } }, revision: { type: 'number', rules : { required: true, number: true, } }, ext: { type: 'text', rules : { required: true, } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, filesize: { type: 'number', rules : { required: true, number: true, } }, artist_id: { type: 'number', rules : { required: true, number: true, } }, license_id: { type: 'number', rules : { required: true, number: true, } }, md5: { type: 'text', rules : { required: true, } }, artist_name: { type: 'text', rules : { required: true, } }, credit: { type: 'text', rules : { } }, settings: { type: 'text', rules : { } }, picture_id: { type: 'number', rules : { required: true, number: true, } }, classname: { type: 'text', rules : { required: true, } }, }, lists: { public: { type: 'public', }, private: { type: 'private', }, by_original_picture: { type: 'filter', }, by_license: { type: 'filter', }, by_artist: { type: 'filter', }, }, }, speech_balloon_template: { extend_column_name: 'classname', associations: { belongs_to: { system_picture: { }, }, has_many: { speech_balloons: { }, panels: { through: 'speech_balloons', }, }, has_one: { }, }, attributes: { name: { type: 'text', rules : { required: true, } }, classname: { type: 'text', rules : { required: true, } }, caption: { type: 'text', rules : { required: true, } }, t: { type: 'number', rules : { required: true, number: true, min: 0, } }, system_picture_id: { type: 'number', rules : { required: true, number: true, } }, settings: { type: 'text', rules : { required: true, } }, }, lists: { public: { type: 'public', }, select_items: { type: 'system_resource', args: { select_item_name: 'panel_visible_items', }, }, }, }, writing_format: { extend_column_name: 'classname', associations: { belongs_to: { system_picture: { }, }, has_many: { speeches: { }, }, has_one: { }, }, attributes: { name: { type: 'text', rules : { required: true, } }, classname: { type: 'text', rules : { required: true, } }, caption: { type: 'text', rules : { required: true, } }, system_picture_id: { type: 'number', rules : { required: true, number: true, } }, settings: { type: 'text', rules : { required: true, } }, }, lists: { public: { type: 'public', }, select_items: { type: 'system_resource', }, by_system_picture: { type: 'filter', }, }, }, license_group: { extend_column_name: 'classname', associations: { belongs_to: { }, has_many: { licenses: { }, }, has_one: { }, }, attributes: { name: { type: 'text', rules : { required: true, } }, classname: { type: 'text', rules : { required: true, } }, caption: { type: 'text', rules : { required: true, } }, url: { type: 'text', rules : { required: true, } }, }, lists: { public: { type: 'public', }, select_items: { type: 'system_resource', }, }, }, license: { associations: { belongs_to: { license_group: { }, system_picture: { }, }, has_many: { resource_pictures: { }, }, has_one: { }, }, attributes: { license_group_id: { type: 'number', rules : { number: true, } }, name: { type: 'text', rules : { required: true, } }, caption: { type: 'text', rules : { required: true, } }, system_picture_id: { type: 'number', rules : { required: true, number: true, } }, url: { type: 'text', rules : { required: true, } }, settings: { type: 'text', rules : { } }, credit_pictures: { type: 'text', rules : { } }, }, lists: { public: { type: 'public', }, by_license_group: { type: 'filter', }, by_system_picture: { type: 'filter', }, }, }, author: { associations: { belongs_to: { }, has_many: { scrolls: { }, comics: { }, stories: { }, sheets: { }, panels: { }, }, has_one: { }, }, attributes: { name: { type: 'text', rules : { required: true, } }, user_id: { type: 'number', rules : { required: true, number: true, } }, }, lists: { public: { type: 'public', }, }, }, artist: { associations: { belongs_to: { }, has_many: { resource_pictures: { }, }, has_one: { }, }, attributes: { name: { type: 'text', rules : { required: true, } }, author_id: { type: 'number', rules : { required: true, number: true, } }, }, lists: { public: { type: 'public', }, }, }, system_picture: { associations: { belongs_to: { }, has_many: { balloons: { }, speech_balloon_templates: { }, licenses: { }, }, has_one: { }, }, attributes: { ext: { type: 'text', rules : { required: true, } }, width: { type: 'number', rules : { required: true, number: true, } }, height: { type: 'number', rules : { required: true, number: true, } }, filesize: { type: 'number', rules : { required: true, number: true, } }, md5: { type: 'text', rules : { required: true, required: true, } }, }, lists: { public: { type: 'public', }, }, }, }