mirror of
				https://github.com/strapi/strapi.git
				synced 2025-11-04 03:43:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			342 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			342 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
const category = {
 | 
						|
  modelName: 'category',
 | 
						|
  uid: 'category',
 | 
						|
  collectionName: 'categories',
 | 
						|
  attributes: {
 | 
						|
    title: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    price: {
 | 
						|
      type: 'integer',
 | 
						|
      required: true,
 | 
						|
      default: 12,
 | 
						|
 | 
						|
      column: {
 | 
						|
        unique: true,
 | 
						|
        nonNullable: true,
 | 
						|
        unsigned: true,
 | 
						|
        defaultTo: 12,
 | 
						|
      },
 | 
						|
    },
 | 
						|
    articles: {
 | 
						|
      type: 'relation',
 | 
						|
      relation: 'oneToMany',
 | 
						|
      target: 'article',
 | 
						|
      mappedBy: 'category',
 | 
						|
    },
 | 
						|
    compo: {
 | 
						|
      type: 'component',
 | 
						|
      component: 'compo',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const article = {
 | 
						|
  modelName: 'article',
 | 
						|
  uid: 'article',
 | 
						|
  collectionName: 'articles',
 | 
						|
  attributes: {
 | 
						|
    title: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    category: {
 | 
						|
      type: 'relation',
 | 
						|
      relation: 'manyToOne',
 | 
						|
      target: 'category',
 | 
						|
      inversedBy: 'articles',
 | 
						|
      // useJoinTable: false,
 | 
						|
    },
 | 
						|
    // tags: {
 | 
						|
    //   type: 'relation',
 | 
						|
    //   relation: 'manyToMany',
 | 
						|
    //   target: 'tag',
 | 
						|
    //   inversedBy: 'articles',
 | 
						|
    // },
 | 
						|
    // compo: {
 | 
						|
    //   type: 'component',
 | 
						|
    //   component: 'compo',
 | 
						|
    //   // repeatable: true,
 | 
						|
    // },
 | 
						|
    // cover: {
 | 
						|
    //   type: 'media',
 | 
						|
    //   single: true,
 | 
						|
    // },
 | 
						|
    // gallery: {
 | 
						|
    //   type: 'media',
 | 
						|
    //   multiple: true,
 | 
						|
    // },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const tags = {
 | 
						|
  modelName: 'tag',
 | 
						|
  uid: 'tag',
 | 
						|
  collectionName: 'tags',
 | 
						|
  attributes: {
 | 
						|
    name: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    articles: {
 | 
						|
      type: 'relation',
 | 
						|
      relation: 'manyToMany',
 | 
						|
      target: 'article',
 | 
						|
      mappedBy: 'tag',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const compo = {
 | 
						|
  modelName: 'compo',
 | 
						|
  uid: 'compo',
 | 
						|
  collectionName: 'compos',
 | 
						|
  attributes: {
 | 
						|
    key: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    value: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const user = {
 | 
						|
  modelName: 'user',
 | 
						|
  uid: 'user',
 | 
						|
  collectionName: 'users',
 | 
						|
  attributes: {
 | 
						|
    address: {
 | 
						|
      type: 'relation',
 | 
						|
      relation: 'oneToOne',
 | 
						|
      target: 'address',
 | 
						|
      inversedBy: 'user',
 | 
						|
      // useJoinTable: false,
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const address = {
 | 
						|
  modelName: 'address',
 | 
						|
  uid: 'address',
 | 
						|
  collectionName: 'addresses',
 | 
						|
  attributes: {
 | 
						|
    name: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    user: {
 | 
						|
      type: 'relation',
 | 
						|
      relation: 'oneToOne',
 | 
						|
      target: 'user',
 | 
						|
      mappedBy: 'address',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const file = {
 | 
						|
  modelName: 'file',
 | 
						|
  uid: 'file',
 | 
						|
  collectionName: 'files',
 | 
						|
  attributes: {
 | 
						|
    name: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    alternativeText: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    caption: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    width: {
 | 
						|
      type: 'integer',
 | 
						|
    },
 | 
						|
    height: {
 | 
						|
      type: 'integer',
 | 
						|
    },
 | 
						|
    formats: {
 | 
						|
      type: 'json',
 | 
						|
    },
 | 
						|
    hash: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    ext: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    mime: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    size: {
 | 
						|
      type: 'decimal',
 | 
						|
    },
 | 
						|
    url: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    previewUrl: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    provider: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    provider_metadata: {
 | 
						|
      type: 'json',
 | 
						|
    },
 | 
						|
    // related: {
 | 
						|
    //   type: 'relation',
 | 
						|
    //   relation: 'oneToMany',
 | 
						|
    //   target: 'file_morph',
 | 
						|
    //   mappedBy: 'file',
 | 
						|
    // },
 | 
						|
    // related: {
 | 
						|
    //   type: 'relation',
 | 
						|
    //   realtion: 'morphTo',
 | 
						|
    // },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const fileMorph = {
 | 
						|
  modelName: 'file-morph',
 | 
						|
  uid: 'file-morph',
 | 
						|
  collectionName: 'file_morphs',
 | 
						|
  attributes: {
 | 
						|
    // file: {
 | 
						|
    //   type: 'relation',
 | 
						|
    //   relation: 'manyToOne',
 | 
						|
    //   target: 'file',
 | 
						|
    //   inversedBy: 'related',
 | 
						|
    //   useJoinTable: false,
 | 
						|
    // },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const blogPost = {
 | 
						|
  modelName: 'blogPost',
 | 
						|
  uid: 'blogPost',
 | 
						|
  collectionName: 'blog_posts',
 | 
						|
  attributes: {
 | 
						|
    passwordField: {
 | 
						|
      type: 'password',
 | 
						|
    },
 | 
						|
    emailField: {
 | 
						|
      type: 'email',
 | 
						|
    },
 | 
						|
    stringField: {
 | 
						|
      type: 'string',
 | 
						|
    },
 | 
						|
    uidField: {
 | 
						|
      type: 'uid',
 | 
						|
    },
 | 
						|
    richtextField: {
 | 
						|
      type: 'richtext',
 | 
						|
    },
 | 
						|
    textField: {
 | 
						|
      type: 'text',
 | 
						|
    },
 | 
						|
    enumerationField: {
 | 
						|
      type: 'enumeration',
 | 
						|
      enum: ['A', 'B'],
 | 
						|
    },
 | 
						|
    jsonField: {
 | 
						|
      type: 'json',
 | 
						|
    },
 | 
						|
    bigintegerField: {
 | 
						|
      type: 'biginteger',
 | 
						|
    },
 | 
						|
    integerField: {
 | 
						|
      type: 'integer',
 | 
						|
    },
 | 
						|
    floatField: {
 | 
						|
      type: 'float',
 | 
						|
    },
 | 
						|
    decimalField: {
 | 
						|
      type: 'decimal',
 | 
						|
    },
 | 
						|
    dateField: {
 | 
						|
      type: 'date',
 | 
						|
    },
 | 
						|
    timeField: {
 | 
						|
      type: 'time',
 | 
						|
    },
 | 
						|
    datetimeField: {
 | 
						|
      type: 'datetime',
 | 
						|
    },
 | 
						|
    timestampField: {
 | 
						|
      type: 'timestamp',
 | 
						|
    },
 | 
						|
    booleanField: {
 | 
						|
      type: 'boolean',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
module.exports = [category, article, tags, compo, user, address, file, fileMorph, blogPost];
 | 
						|
 | 
						|
// const article = {
 | 
						|
//   modelName: 'article',
 | 
						|
//   uid: 'article',
 | 
						|
//   collectionName: 'articles',
 | 
						|
//   attributes: {
 | 
						|
//     commentable: {
 | 
						|
//       type: 'relation',
 | 
						|
//       relation: 'morphToOne',
 | 
						|
//     },
 | 
						|
//     reportables: {
 | 
						|
//       type: 'relation',
 | 
						|
//       relation: 'morphToMany',
 | 
						|
//     },
 | 
						|
//     dz: {
 | 
						|
//       type: 'dynamiczone',
 | 
						|
//       components: ['comment', 'video-comment'],
 | 
						|
//     },
 | 
						|
//   },
 | 
						|
// };
 | 
						|
 | 
						|
// const comment = {
 | 
						|
//   modelName: 'comment',
 | 
						|
//   uid: 'comment',
 | 
						|
//   collectionName: 'comments',
 | 
						|
//   attributes: {
 | 
						|
//     article: {
 | 
						|
//       type: 'relation',
 | 
						|
//       relation: 'morphOne',
 | 
						|
//       target: 'article',
 | 
						|
//       morphBy: 'commentable',
 | 
						|
//     },
 | 
						|
//     title: {
 | 
						|
//       type: 'string',
 | 
						|
//     },
 | 
						|
//   },
 | 
						|
// };
 | 
						|
 | 
						|
// const videoComment = {
 | 
						|
//   modelName: 'video-comment',
 | 
						|
//   uid: 'video-comment',
 | 
						|
//   collectionName: 'video_comments',
 | 
						|
//   attributes: {
 | 
						|
//     articles: {
 | 
						|
//       type: 'relation',
 | 
						|
//       relation: 'morphMany',
 | 
						|
//       target: 'article',
 | 
						|
//       morphBy: 'commentable',
 | 
						|
//     },
 | 
						|
//     title: {
 | 
						|
//       type: 'string',
 | 
						|
//     },
 | 
						|
//   },
 | 
						|
// };
 | 
						|
 | 
						|
// const folder = {
 | 
						|
//   modelName: 'folder',
 | 
						|
//   uid: 'folder',
 | 
						|
//   collectionName: 'folders',
 | 
						|
//   attributes: {
 | 
						|
//     articles: {
 | 
						|
//       type: 'relation',
 | 
						|
//       relation: 'morphMany',
 | 
						|
//       target: 'article',
 | 
						|
//       morphBy: 'reportables',
 | 
						|
//     },
 | 
						|
//   },
 | 
						|
// };
 | 
						|
 | 
						|
// module.exports = [article, comment, videoComment, folder];
 |