import { Component, Input, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material';

import { Course } from '@app/core/models/course';

import { DegreePlannerApiService } from '@app/degree-planner/services/api.service';
// tslint:disable-next-line:max-line-length
import { CourseDetailsDialogComponent } from '@app/degree-planner/dialogs/course-details-dialog/course-details-dialog.component';
// tslint:disable-next-line:max-line-length
import { RemoveCourseConfirmDialogComponent } from '@app/degree-planner/dialogs/remove-course-confirm-dialog/remove-course-confirm-dialog.component';

@Component({
  selector: 'cse-course-item',
  templateUrl: './course-item.component.html',
  styleUrls: ['./course-item.component.scss'],
})
export class CourseItemComponent implements OnInit {
  status; // TODO make this work k thx plz!?
  @Input() course: Course;
  @Input() disabled: string;
  @Input() type: 'saved' | 'course' | 'search';

  constructor(private api: DegreePlannerApiService, public dialog: MatDialog) {}

  ngOnInit() {}

  openCourseDetailsDialog(course) {
    this.api
      .getCourseDetails(course.subjectCode, course.courseId)
      .subscribe(courseDetails => {
        const dialogRef = this.dialog.open(CourseDetailsDialogComponent, {
          data: { courseDetails: courseDetails },
        });
      });
  }

  openRemoveConfirmationDialog() {
    const dialogRef = this.dialog.open(RemoveCourseConfirmDialogComponent, {
      data: { course: this.course, type: this.type },
    });
  }
}