Refacto of how the content is structured

This commit is contained in:
DrMint 2022-02-06 18:37:15 +01:00
parent c54d650806
commit ae1f6d1a00
35 changed files with 465 additions and 356 deletions

View File

@ -1,34 +0,0 @@
{
"kind": "collectionType",
"collectionName": "audio_sets",
"info": {
"singularName": "audio-set",
"pluralName": "audio-sets",
"displayName": "🟡 Audio Sets",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"required": true,
"unique": true,
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"translations": {
"displayName": "Audio Sets",
"type": "component",
"repeatable": true,
"component": "translations.audio-sets"
},
"library_contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::library-content.library-content",
"mappedBy": "audio_set"
}
}
}

View File

@ -1,9 +0,0 @@
'use strict';
/**
* audio-set controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::audio-set.audio-set');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* audio-set router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::audio-set.audio-set');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* audio-set service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::audio-set.audio-set');

View File

@ -0,0 +1,50 @@
{
"kind": "collectionType",
"collectionName": "contents",
"info": {
"singularName": "content",
"pluralName": "contents",
"displayName": "🟡 Contents",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"unique": true,
"required": true,
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"categories": {
"type": "relation",
"relation": "oneToMany",
"target": "api::category.category"
},
"type": {
"type": "relation",
"relation": "oneToOne",
"target": "api::content-type.content-type"
},
"titles": {
"displayName": "title",
"type": "component",
"repeatable": true,
"component": "translations.title"
},
"ranged_contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::ranged-content.ranged-content",
"mappedBy": "content"
},
"text_set": {
"displayName": "text_set",
"type": "component",
"repeatable": true,
"component": "sets.text-set"
}
}
}

View File

@ -1,9 +1,9 @@
'use strict'; 'use strict';
/** /**
* scan-set controller * content controller
*/ */
const { createCoreController } = require('@strapi/strapi').factories; const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::scan-set.scan-set'); module.exports = createCoreController('api::content.content');

View File

@ -1,9 +1,9 @@
'use strict'; 'use strict';
/** /**
* scan-set router. * content router.
*/ */
const { createCoreRouter } = require('@strapi/strapi').factories; const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::scan-set.scan-set'); module.exports = createCoreRouter('api::content.content');

View File

@ -1,9 +1,9 @@
'use strict'; 'use strict';
/** /**
* text-set service. * content service.
*/ */
const { createCoreService } = require('@strapi/strapi').factories; const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::text-set.text-set'); module.exports = createCoreService('api::content.content');

View File

@ -1,80 +0,0 @@
{
"kind": "collectionType",
"collectionName": "library_contents",
"info": {
"singularName": "library-content",
"pluralName": "library-contents",
"displayName": "🟠 Library Contents",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"required": true,
"unique": true
},
"title": {
"displayName": "Library Content",
"type": "component",
"repeatable": true,
"component": "translations.library-content"
},
"library_item": {
"type": "relation",
"relation": "manyToOne",
"target": "api::library-item.library-item",
"inversedBy": "contents"
},
"scan_set": {
"type": "relation",
"relation": "oneToOne",
"target": "api::scan-set.scan-set",
"inversedBy": "library_content"
},
"text_set": {
"type": "relation",
"relation": "manyToOne",
"target": "api::text-set.text-set",
"inversedBy": "library_contents"
},
"range": {
"type": "dynamiczone",
"components": [
"range.page-range",
"range.time-range",
"range.game-aspect",
"range.other"
],
"required": true,
"max": 1,
"min": 1
},
"audio_set": {
"type": "relation",
"relation": "manyToOne",
"target": "api::audio-set.audio-set",
"inversedBy": "library_contents"
},
"video_set": {
"type": "relation",
"relation": "manyToOne",
"target": "api::video-set.video-set",
"inversedBy": "library_contents"
},
"type": {
"type": "relation",
"relation": "oneToOne",
"target": "api::content-type.content-type"
},
"categories": {
"type": "relation",
"relation": "oneToMany",
"target": "api::category.category"
}
}
}

View File

@ -1,9 +0,0 @@
'use strict';
/**
* library-content controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::library-content.library-content');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* library-content router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::library-content.library-content');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* library-content service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::library-content.library-content');

View File

@ -84,12 +84,6 @@
"pluginOptions": {}, "pluginOptions": {},
"component": "basics.size" "component": "basics.size"
}, },
"contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::library-content.library-content",
"mappedBy": "library_item"
},
"release_date": { "release_date": {
"type": "component", "type": "component",
"repeatable": false, "repeatable": false,
@ -103,12 +97,24 @@
"component": "translations.library-items" "component": "translations.library-items"
}, },
"gallery": { "gallery": {
"type": "media",
"multiple": true,
"required": false,
"allowedTypes": [ "allowedTypes": [
"images", "images",
"videos" "videos"
], ]
"type": "media", },
"multiple": true "contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::ranged-content.ranged-content",
"mappedBy": "library_item"
},
"images": {
"type": "component",
"repeatable": false,
"component": "collections-component.library-images"
} }
} }
} }

View File

@ -0,0 +1,50 @@
{
"kind": "collectionType",
"collectionName": "ranged_contents",
"info": {
"singularName": "ranged-content",
"pluralName": "ranged-contents",
"displayName": "🟠 Ranged Contents",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"unique": true,
"required": true,
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"range": {
"type": "dynamiczone",
"components": [
"range.page-range",
"range.time-range",
"range.other"
],
"max": 1,
"min": 1
},
"scan_set": {
"displayName": "scan_set",
"type": "component",
"repeatable": true,
"component": "sets.scan-set"
},
"library_item": {
"type": "relation",
"relation": "manyToOne",
"target": "api::library-item.library-item",
"inversedBy": "contents"
},
"content": {
"type": "relation",
"relation": "manyToOne",
"target": "api::content.content",
"inversedBy": "ranged_contents"
}
}
}

View File

@ -0,0 +1,9 @@
'use strict';
/**
* ranged-content controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::ranged-content.ranged-content');

View File

@ -0,0 +1,9 @@
'use strict';
/**
* ranged-content router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::ranged-content.ranged-content');

View File

@ -0,0 +1,9 @@
'use strict';
/**
* ranged-content service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::ranged-content.ranged-content');

View File

@ -1,34 +0,0 @@
{
"kind": "collectionType",
"collectionName": "scan_sets",
"info": {
"singularName": "scan-set",
"pluralName": "scan-sets",
"displayName": "🟡 Scan Sets",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"unique": true,
"required": true
},
"translations": {
"displayName": "Scan Set",
"type": "component",
"repeatable": true,
"component": "translations.scan-set"
},
"library_content": {
"type": "relation",
"relation": "oneToOne",
"target": "api::library-content.library-content",
"mappedBy": "scan_set"
}
}
}

View File

@ -1,9 +0,0 @@
'use strict';
/**
* scan-set service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::scan-set.scan-set');

View File

@ -12,20 +12,15 @@
}, },
"pluginOptions": {}, "pluginOptions": {},
"attributes": { "attributes": {
"source": {
"type": "dynamiczone",
"components": [
"source.url-source",
"source.library-text"
],
"max": 1,
"min": 1,
"required": true
},
"name": { "name": {
"type": "string", "type": "string",
"required": true, "required": true,
"unique": true "unique": true
},
"content": {
"type": "relation",
"relation": "oneToOne",
"target": "api::content.content"
} }
} }
} }

View File

@ -1,34 +0,0 @@
{
"kind": "collectionType",
"collectionName": "text_sets",
"info": {
"singularName": "text-set",
"pluralName": "text-sets",
"displayName": "🟡 Text Sets",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"unique": true,
"required": true
},
"translations": {
"displayName": "Text Set",
"type": "component",
"repeatable": true,
"component": "translations.text-set"
},
"library_contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::library-content.library-content",
"mappedBy": "text_set"
}
}
}

View File

@ -1,9 +0,0 @@
'use strict';
/**
* text-set controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::text-set.text-set');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* text-set router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::text-set.text-set');

View File

@ -1,34 +0,0 @@
{
"kind": "collectionType",
"collectionName": "video_sets",
"info": {
"singularName": "video-set",
"pluralName": "video-sets",
"displayName": "🟡 Video Sets",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"slug": {
"type": "string",
"unique": true,
"required": true,
"regex": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"translations": {
"displayName": "Video Sets",
"type": "component",
"repeatable": true,
"component": "translations.video-sets"
},
"library_contents": {
"type": "relation",
"relation": "oneToMany",
"target": "api::library-content.library-content",
"mappedBy": "video_set"
}
}
}

View File

@ -1,9 +0,0 @@
'use strict';
/**
* video-set controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::video-set.video-set');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* video-set router.
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::video-set.video-set');

View File

@ -1,9 +0,0 @@
'use strict';
/**
* video-set service.
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::video-set.video-set');

View File

@ -0,0 +1,45 @@
{
"collectionName": "components_collections_component_library_covers",
"info": {
"displayName": "Library Cover",
"icon": "address-book"
},
"options": {},
"attributes": {
"front": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"spine": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"back": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"inside_full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
}
}
}

View File

@ -0,0 +1,63 @@
{
"collectionName": "components_collections_component_library_dust_jackets",
"info": {
"displayName": "Library Dust Jacket",
"icon": "caret-square-up",
"description": ""
},
"options": {},
"attributes": {
"front": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
]
},
"spine": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
]
},
"back": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
]
},
"full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"flap_front": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"flap_back": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"inside_full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
}
}
}

View File

@ -0,0 +1,28 @@
{
"collectionName": "components_collections_component_library_images",
"info": {
"displayName": "Library Images",
"icon": "image",
"description": ""
},
"options": {},
"attributes": {
"cover": {
"displayName": "Library Cover",
"type": "component",
"repeatable": false,
"component": "collections-component.library-cover"
},
"dust_jacket": {
"type": "component",
"repeatable": false,
"component": "collections-component.library-dust-jacket"
},
"obi_belt": {
"displayName": "Library Obi Belt",
"type": "component",
"repeatable": false,
"component": "collections-component.library-obi-belt"
}
}
}

View File

@ -0,0 +1,45 @@
{
"collectionName": "components_collections_component_library_obi_belts",
"info": {
"displayName": "Library Obi Belt",
"icon": "circle-notch"
},
"options": {},
"attributes": {
"front": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"spine": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"back": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
},
"inside_full": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false
}
}
}

View File

@ -0,0 +1,58 @@
{
"collectionName": "components_sets_scan_sets",
"info": {
"displayName": "scan_set",
"icon": "file-contract",
"description": ""
},
"options": {},
"attributes": {
"language": {
"type": "relation",
"relation": "oneToOne",
"target": "api::language.language"
},
"status": {
"type": "enumeration",
"enum": [
"Incomplete",
"Draft",
"Review",
"Done"
],
"default": "Incomplete",
"required": true
},
"pages": {
"type": "media",
"multiple": true,
"required": false,
"allowedTypes": [
"images"
]
},
"source_language": {
"type": "relation",
"relation": "oneToOne",
"target": "api::language.language"
},
"scanners": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"cleaners": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"typesetters": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"notes": {
"type": "text"
}
}
}

View File

@ -0,0 +1,53 @@
{
"collectionName": "components_sets_text_sets",
"info": {
"displayName": "text_set",
"icon": "pencil-alt",
"description": ""
},
"options": {},
"attributes": {
"language": {
"type": "relation",
"relation": "oneToOne",
"target": "api::language.language"
},
"status": {
"type": "enumeration",
"enum": [
"Incomplete",
"Draft",
"Review",
"Done"
],
"default": "Incomplete",
"required": true
},
"source_language": {
"type": "relation",
"relation": "oneToOne",
"target": "api::language.language"
},
"transcribers": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"translators": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"proofreaders": {
"type": "relation",
"relation": "oneToMany",
"target": "api::recorder.recorder"
},
"notes": {
"type": "text"
},
"text": {
"type": "richtext"
}
}
}

View File

@ -6,11 +6,5 @@
"description": "" "description": ""
}, },
"options": {}, "options": {},
"attributes": { "attributes": {}
"text_set": {
"type": "relation",
"relation": "oneToOne",
"target": "api::text-set.text-set"
}
}
} }

View File

@ -0,0 +1,19 @@
{
"collectionName": "components_translations_titles",
"info": {
"displayName": "title",
"icon": "feather"
},
"options": {},
"attributes": {
"language": {
"type": "relation",
"relation": "oneToOne",
"target": "api::language.language"
},
"title": {
"type": "string",
"required": true
}
}
}