Skip to content
This repository has been archived by the owner on Sep 28, 2020. It is now read-only.
/ models_v1 Public archive

⛔️ DEPRECATED, Sheetbase commonly used sheet structures.

License

Notifications You must be signed in to change notification settings

sheetbase/models_v1

Repository files navigation

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

💙 Category 101 🌏

Schema | Type | Sample

sheetbase db create categories

💙 Tag 102 🌏

Schema | Type | Sample

sheetbase db create tags

💙 Page 103 🌏

Schema | Type | Sample

sheetbase db create pages

💙 Post 104 🌏

Schema | Type | Sample

sheetbase db create posts

💙 Author 105 🌏

Schema | Type | Sample

sheetbase db create authors

💙 Thread 106 🌏

Schema | Type | Sample

sheetbase db create threads

💙 User 107

Schema | Type

sheetbase db create users

💙 Option 108 🌏

Schema | Type | Sample

sheetbase db create options

💚 Bundle 111 🌏

Schema | Type | Sample

sheetbase db create bundles

💚 Audio 112 🌏

Schema | Type | Sample

sheetbase db create audios

💚 Video 113 🌏

Schema | Type | Sample

sheetbase db create videos

💚 Product 114 🌏

Schema | Type | Sample

sheetbase db create products

❤️ Order 161

Schema | Type

sheetbase db create orders

❤️ Property 162

Schema | Type

sheetbase db create properties

💜 Notification 181 🌏

Schema | Type | Sample

sheetbase db create notifications

💜 Promotion 182 🌏

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

Model

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 Model {
  gid: string | number; // will be corverted to string
  public?: boolean;
  dataUrl?: string;
  schema: ModelSchema[];
}

export interface ModelSchema {
  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.

  • 💙 10x: major sheets
  • 💚 11x-15x: custom content public sheets
  • ❤️ 16x-17x: private sheets
  • 💜 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:

  • 💚 [2-9]1x-[2-9]5x: custom content public sheets
  • ❤️ [2-9]6x-[2-9]7x: private sheets
  • 💜 [2-9]8x-[2-9]9x: miscellaneous sheets

Lisence

Sheetbase Models is released under the MIT license.