Files
penx/lib/types/database-types.ts
2024-12-24 23:50:07 +08:00

89 lines
1.5 KiB
TypeScript

export enum FieldType {
TEXT = 'TEXT',
NUMBER = 'NUMBER',
PASSWORD = 'PASSWORD',
BOOLEAN = 'BOOLEAN',
MARKDOWN = 'MARKDOWN',
URL = 'URL',
IMAGE = 'IMAGE',
RATE = 'RATE',
FILE = 'FILE',
TODO_SOURCE = 'TODO_SOURCE',
NODE_ID = 'NODE_ID',
SINGLE_SELECT = 'SINGLE_SELECT',
MULTIPLE_SELECT = 'MULTIPLE_SELECT',
DATE = 'DATE',
CREATED_AT = 'CREATED_AT',
UPDATED_AT = 'UPDATED_AT',
}
export enum ViewType {
TABLE = 'TABLE',
LIST = 'LIST',
CALENDAR = 'CALENDAR',
GALLERY = 'GALLERY',
KANBAN = 'KANBAN',
}
export interface ViewField {
fieldId: string
width: number
visible: boolean
}
export interface Option {
id: string
fieldId: string
name: string
color: string
}
export interface Sort {
fieldId: string
isAscending: boolean
}
export interface Group {
fieldId: string
isAscending: boolean
showEmptyGroup: boolean
}
export enum ConjunctionType {
OR = 'OR',
AND = 'AND',
}
export enum OperatorType {
IS_EMPTY = 'IS_EMPTY',
IS_NOT_EMPTY = 'IS_NOT_EMPTY',
CONTAINS = 'CONTAINS',
DOES_NOT_CONTAIN = 'DOES_NOT_CONTAIN',
IS = 'IS',
IS_NOT = 'IS_NOT',
EQUAL = 'EQUAL', // =
NOT_EQUAL = 'NOT_EQUAL', //!=
LESS_THAN = 'LESS_THAN', // <
MORE_THAN = 'MORE_THAN', // >
LESS_THAN_OR_EQUAL = 'LESS_THAN_OR_EQUAL', // <=
MORE_THAN_OR_EQUAL = 'MORE_THAN_OR_EQUAL', // >=
FILENAME = 'FILENAME',
FILETYPE = 'FILETYPE',
}
export interface Filter {
fieldId: string // field id
conjunction: ConjunctionType
operator: OperatorType
value: any
}