@sheetbase/models

Sheetbase commonly used models.

Usage no npm install needed!

<script type="module">
  import sheetbaseModels from 'https://cdn.skypack.dev/@sheetbase/models';
</script>

README

Sheetbase Models

Commonly used sheet structures for using Google Spreadsheet with Sheetbase backend.

License Support me on Patreon PayPal Ask me anything

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:

Schema | Type | Sample

sheetbase db create categories

:blue_heart: Tag 102 :earth_asia:

Schema | Type | Sample

sheetbase db create tags

:blue_heart: Page 103 :earth_asia:

Schema | Type | Sample

sheetbase db create pages

:blue_heart: Post 104 :earth_asia:

Schema | Type | Sample

sheetbase db create posts

:blue_heart: Author 105 :earth_asia:

Schema | Type | Sample

sheetbase db create authors

:blue_heart: Thread 106 :earth_asia:

Schema | Type | Sample

sheetbase db create threads

:blue_heart: User 107 :x:

Schema | Type

sheetbase db create users

:blue_heart: Option 108 :earth_asia:

Schema | Type | Sample

sheetbase db create options

:green_heart: Bundle 111 :earth_asia:

Schema | Type | Sample

sheetbase db create bundles

:green_heart: Audio 112 :earth_asia:

Schema | Type | Sample

sheetbase db create audios

:green_heart: Video 113 :earth_asia:

Schema | Type | Sample

sheetbase db create videos

:green_heart: Product 114 :earth_asia:

Schema | Type | Sample

sheetbase db create products

:heart: Order 161 :x:

Schema | Type

sheetbase db create orders

:heart: Property 162 :x:

Schema | Type

sheetbase db create properties

:purple_heart: Notification 181 :earth_asia:

Schema | Type | Sample

sheetbase db create notifications

:purple_heart: Promotion 182 :earth_asia:

Schema | Type | Sample

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.