import { MigrationInterface, QueryRunner } from 'typeorm';

export class projectViews1697699077087 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
            create table project_views
            (
                id uuid PRIMARY KEY,
                project_id    bigint  not null
                        references projects
                        on update cascade on delete cascade,
                ip INET NOT NULL,
                user_id       integer
                        references users
                        on update cascade on delete cascade,
                created_at timestamptz NOT NULL DEFAULT(NOW())
            );
        `);
    await queryRunner.query(`
            CREATE INDEX project_views_created_at_idx ON project_views(project_id, created_at);
        `);
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.dropTable(`
            DROP TABLE project_views;
        `);
  }
}
