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
101
:earth_asia:
:blue_heart: Category
sheetbase db create categories
102
:earth_asia:
:blue_heart: Tag
sheetbase db create tags
103
:earth_asia:
:blue_heart: Page
sheetbase db create pages
104
:earth_asia:
:blue_heart: Post
sheetbase db create posts
105
:earth_asia:
:blue_heart: Author
sheetbase db create authors
106
:earth_asia:
:blue_heart: Thread
sheetbase db create threads
107
:x:
:blue_heart: User
sheetbase db create users
108
:earth_asia:
:blue_heart: Option
sheetbase db create options
111
:earth_asia:
:green_heart: Bundle
sheetbase db create bundles
112
:earth_asia:
:green_heart: Audio
sheetbase db create audios
113
:earth_asia:
:green_heart: Video
sheetbase db create videos
114
:earth_asia:
:green_heart: Product
sheetbase db create products
161
:x:
:heart: Order
sheetbase db create orders
162
:x:
:heart: Property
sheetbase db create properties
181
:earth_asia:
:purple_heart: Notification
sheetbase db create notifications
182
:earth_asia:
:purple_heart: Promotion
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.