import { MigrationInterface, QueryRunner } from 'typeorm';

export class addContest2024SwipeVote1715588869800
  implements MigrationInterface
{
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
        INSERT INTO asset_block_keys(project_id, block_key, block_name, block_title, block_type)
        SELECT id, 10002, 'preview', '', 'contest2024swipevote'
        FROM projects;
    `);
    await queryRunner.query(
      `
        INSERT INTO public.assets (id, workspace_id, parent_ids, project_id, name, title, icon, scope_id, is_abstract, created_at, updated_at, deleted_at, creator_user_id) 
        VALUES ('00000000-0000-0000-0000-100000000010', '00000000-0000-0000-0000-000000000001', null, 1, null, 'Презентация', null, 3, true, '2023-12-03 18:51:19.372203 +00:00', '2023-12-03 19:32:52.452284 +00:00', null, null);
    `,
    );
    await queryRunner.query(
      `
    INSERT INTO public.asset_blocks (project_id, block_key, asset_id, title, props, created_at, 
        updated_at, index, has_formula) 
        VALUES (1, 1, '00000000-0000-0000-0000-100000000010', 'Содержимое карточки', $1, 
          '2023-12-03 19:32:52.452284 +00:00', '2023-12-03 19:32:52.452284 +00:00', null, false);
    `,
      [
        {
          '\\usp': null,
          '\\жанр': null,
          'index\\usp': 4,
          'title\\usp': 'USP',
          'field\\usp\\type': 'string',
          'index\\жанр': 4.25,
          'title\\жанр': 'Жанр',
          '\\сеттинг': null,
          '\\описание': null,
          '\\платформа': null,
          'field\\жанр\\type': 'string',
          'index\\сеттинг': 4.5,
          'title\\сеттинг': 'Сеттинг',
          'index\\описание': 5,
          'title\\описание': 'Описание',
          '\\изображение': null,
          'index\\платформа': 8,
          'title\\платформа': 'Платформа',
          'field\\сеттинг\\type': 'string',
          'field\\название\\type': 'string',
          'index\\изображение': 1,
          'title\\изображение': 'Изображение',
          'field\\изображение\\hint':
            'Изображение размером 350x550 или 700x1100',
          'field\\платформа\\type': 'string',
          '\\краткоеописание': null,
          'field\\изображение\\type': 'attachment',
          'index\\краткоеописание': 2,
          'title\\краткоеописание': 'Краткое описание',
          '\\ключеваяособенность': null,
          'field\\краткоеописание\\type': 'string',
          'field\\краткоеописание\\hint':
            'Текст внизу экрана: жанр, сеттинг, ключевая особенность, аннотация',
          'index\\ключеваяособенность': 3,
          'title\\ключеваяособенность': 'Ключевая особенность',
          '\\площадкараспространения': null,
          'field\\ключеваяособенность\\type': 'string',
          'index\\площадкараспространения': 7,
          'title\\площадкараспространения': 'Площадка распространения',
          '\\технологияразработкидвижок': null,
          'field\\площадкараспространения\\type': 'string',
          'index\\технологияразработкидвижок': 6,
          'title\\технологияразработкидвижок': 'Технология разработки (движок)',
          'field\\технологияразработкидвижок\\type': 'string',
        },
      ],
    );
    await queryRunner.query(`
        INSERT INTO public.asset_blocks (project_id, block_key, asset_id, title, props, created_at, updated_at, index, has_formula) 
        VALUES (1, 10002, '00000000-0000-0000-0000-100000000010', 'Превью', '{}', '2023-12-03 19:32:52.452284 +00:00', '2023-12-03 19:32:52.452284 +00:00', null, false);
    `);

    await queryRunner.query(`
        INSERT INTO asset_comps(project_id, id)
        SELECT project_id, id
        FROM assets
        ON CONFLICT DO NOTHING;
        INSERT INTO asset_block_comps(project_id, asset_id, block_key)
        SELECT project_id, asset_id, block_key
        FROM asset_blocks
        ON CONFLICT DO NOTHING;
    `);
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
        DELETE FROM public.assets 
        WHERE id = '00000000-0000-0000-0000-100000000010'
    `);
  }
}
