export type WalkthroughRatingKey =
  | 'attitude'
  | 'classroom_management'
  | 'cleanliness'
  | 'vibes'
  | 'team_dynamics'
  | 'emergency_exit'
  | 'lesson_plan';

export type WalkthroughCommentKey = `${WalkthroughRatingKey}_comment`;
export type WalkthroughRatingField = `${WalkthroughRatingKey}_rating`;

export interface WalkthroughCheckinDto {
  readonly id: string;
  readonly teacher_name: string;
  readonly classroom: string;
  readonly director_name: string;
  readonly check_in_date: string;
  readonly check_in_time: string;
  readonly attitude_rating: number;
  readonly attitude_comment: string | null;
  readonly classroom_management_rating: number;
  readonly classroom_management_comment: string | null;
  readonly cleanliness_rating: number;
  readonly cleanliness_comment: string | null;
  readonly vibes_rating: number;
  readonly vibes_comment: string | null;
  readonly team_dynamics_rating: number;
  readonly team_dynamics_comment: string | null;
  readonly emergency_exit_rating: number;
  readonly emergency_exit_comment: string | null;
  readonly lesson_plan_rating: number;
  readonly lesson_plan_comment: string | null;
  readonly overall_notes: string | null;
  readonly organizationId: string;
  readonly campusId: string | null;
  readonly createdById: string;
  readonly updatedById: string | null;
  readonly createdAt: string;
  readonly updatedAt: string;
}

export interface WalkthroughCheckinCreateDto {
  readonly teacher_name: string;
  readonly classroom: string;
  readonly director_name: string;
  readonly check_in_date: string;
  readonly check_in_time: string;
  readonly attitude_rating: number;
  readonly attitude_comment?: string;
  readonly classroom_management_rating: number;
  readonly classroom_management_comment?: string;
  readonly cleanliness_rating: number;
  readonly cleanliness_comment?: string;
  readonly vibes_rating: number;
  readonly vibes_comment?: string;
  readonly team_dynamics_rating: number;
  readonly team_dynamics_comment?: string;
  readonly emergency_exit_rating: number;
  readonly emergency_exit_comment?: string;
  readonly lesson_plan_rating: number;
  readonly lesson_plan_comment?: string;
  readonly overall_notes?: string;
}

export interface WalkthroughDeleteResponse {
  readonly deletedCount: number;
}
