export type TableSchema = {
  name: string,
  columns: {
    name: string,
    type: string,
    constraint: string,
  }[],
}

export default [
  {
    name: 'article',
    columns: [
      { name: 'seq', type: 'serial', constraint: 'primary key' },
      { name: 'id', type: 'text', constraint: 'not null' },
      { name: 'released_at', type: 'timestamp', constraint: 'not null' },
      { name: 'updated_at', type: 'timestamp', constraint: 'not null' },
      { name: 'author', type: 'text', constraint: 'not null' },
      { name: 'email', type: 'text', constraint: 'not null' },
      { name: 'title', type: 'text', constraint: 'not null' },
      { name: 'category', type: 'text', constraint: 'not null' },
      { name: 'tags', type: 'text[]', constraint: 'not null' },
      { name: 'image', type: 'text', constraint: '' },
      { name: 'publish', type: 'text', constraint: 'not null' },
      { name: 'content', type: 'text', constraint: 'not null' },
    ],
  },
  {
    name: 'article_comment',
    columns: [
      { name: 'id', type: 'serial', constraint: 'primary key' },
      { name: 'article', type: 'integer', constraint: 'not null' },
      { name: 'posted_at', type: 'timestamp', constraint: 'not null' },
      { name: 'content', type: 'text', constraint: 'not null' },
    ],
  },
  {
    name: 'thread',
    columns: [
      { name: 'seq', type: 'serial', constraint: 'primary key' },
      { name: 'id', type: 'text', constraint: 'not null' },
      { name: 'title', type: 'text', constraint: 'not null' },
      { name: 'category', type: 'text', constraint: 'not null' },
      { name: 'created_at', type: 'timestamp', constraint: 'not null' },
      { name: 'updated_at', type: 'timestamp', constraint: 'not null' },
      { name: 'tags', type: 'text[]', constraint: 'not null' },
      { name: 'content', type: 'text', constraint: 'not null' },
    ],
  },
  {
    name: 'thread_post',
    columns: [
      { name: 'seq', type: 'serial', constraint: 'primary key' },
      { name: 'thread_id', type: 'integer', constraint: 'not null' },
      { name: 'title', type: 'text', constraint: 'not null' },
      { name: 'posted_at', type: 'timestamp', constraint: 'not null' },
      { name: 'content', type: 'text', constraint: 'not null' },
    ],
  },
  {
    name: 'thread_comment',
    columns: [
      { name: 'id', type: 'serial', constraint: 'primary key' },
      { name: 'thread', type: 'integer', constraint: 'not null' },
      { name: 'posted_at', type: 'timestamp', constraint: 'not null' },
      { name: 'content', type: 'text', constraint: 'not null' },
    ],
  },
  {
    name: 'tag',
    columns: [
      { name: 'seq', type: 'serial', constraint: 'primary key' },
      { name: 'name', type: 'text', constraint: 'not null' },
      { name: 'ref_count', type: 'integer', constraint: 'not null' },
    ],
  }
] as TableSchema[];