import type { Text } from '@blocksuite/store'; import { BlockModel, BlockSchemaExtension, defineBlockSchema, } from '@blocksuite/store'; import type { ColumnDataType, SerializedCells, ViewBasicDataType, } from './types.js'; export type DatabaseBlockProps = { views: ViewBasicDataType[]; title: Text; cells: SerializedCells; columns: Array; }; export class DatabaseBlockModel extends BlockModel {} export const DatabaseBlockSchema = defineBlockSchema({ flavour: 'affine:database', props: (internal): DatabaseBlockProps => ({ views: [], title: internal.Text(), cells: Object.create(null), columns: [], }), metadata: { role: 'hub', version: 3, parent: ['affine:note'], children: ['affine:paragraph', 'affine:list'], }, toModel: () => new DatabaseBlockModel(), }); export const DatabaseBlockSchemaExtension = BlockSchemaExtension(DatabaseBlockSchema);