@sheetbase/models
v3.0.1
Published
Sheetbase commonly used models.
Downloads
19
Maintainers
Readme
Sheetbase Models
Commonly used sheet structures for using Google Spreadsheet with Sheetbase backend.
Install & usage
npm install --save @sheetbase/models
import { Post } from '@sheetbase/models';
const posts: Post[] = [];
const post: Post = {};
Models
:blue_heart: Category 101
:earth_asia:
sheetbase db create categories
:blue_heart: Tag 102
:earth_asia:
sheetbase db create tags
:blue_heart: Page 103
:earth_asia:
sheetbase db create pages
:blue_heart: Post 104
:earth_asia:
sheetbase db create posts
:blue_heart: Author 105
:earth_asia:
sheetbase db create authors
:blue_heart: Thread 106
:earth_asia:
sheetbase db create threads
:blue_heart: User 107
:x:
sheetbase db create users
:blue_heart: Option 108
:earth_asia:
sheetbase db create options
:green_heart: Bundle 111
:earth_asia:
sheetbase db create bundles
:green_heart: Audio 112
:earth_asia:
sheetbase db create audios
:green_heart: Video 113
:earth_asia:
sheetbase db create videos
:green_heart: Product 114
:earth_asia:
sheetbase db create products
:heart: Order 161
:x:
sheetbase db create orders
:heart: Property 162
:x:
sheetbase db create properties
:purple_heart: Notification 181
:earth_asia:
sheetbase db create notifications
:purple_heart: Promotion 182
:earth_asia:
sheetbase db create promotions
Field order
Sheet fields are sorted by groups.
- Ids:
#
,title
,$key
type
- Status:
status
createdAt
,updatedAt
authors
- Images:
thumbnail
,image
- Content:
description
|excerpt
,content
- (Specific properties)
locale
origin
parents
relationships
- Taxonomies:
categories
,tags
, ... - Rating:
rating
- Sharing:
sharing
- Statistics:
viewCount
,likeCount
,commentCount
keywords
- Extras:
meta
Schema
Every model is defined in a .json
file. File name is a plural string of a content type (categories, posts, ...) and is used as the model name.
export interface Schema {
gid: string | number; // will be corverted to string
public?: boolean;
dataUrl?: string;
schema: SchemaItem[];
}
export interface SchemaItem {
name: string;
width?: number;
note?: string;
}
Gid
A Google Sheets sheet is indentified by its name
(categories, posts, ...) or its gid
(a string number as can be seen in the url #gid=0
). @sheetbase/client uses the gid
to request the public data accordingly.
Built-in models
A built-in model names its gid
with 3 characters string number, prefix by 1
.
- :blue_heart:
10x
: major sheets - :green_heart:
11x-15x
: custom content public sheets - :heart:
16x-17x
: private sheets - :purple_heart:
18x-19x
: miscellaneous sheets
Custom models
You can use any string number (from 1-9 characters) for your custom models, but it should not starts with 1
for 3 characters gid
.
Suggested covention:
- :green_heart:
[2-9]1x-[2-9]5x
: custom content public sheets - :heart:
[2-9]6x-[2-9]7x
: private sheets - :purple_heart:
[2-9]8x-[2-9]9x
: miscellaneous sheets
Lisence
Sheetbase Models is released under the MIT license.