import { ApprovalStatus } from './common.types';

export interface ApprovalLevel {
  levelId: string;
  requestId: string;
  levelNumber: number;
  levelName?: string;
  approverId: string;
  approverEmail: string;
  approverName: string;
  tatHours: number;
  tatDays: number;
  status: ApprovalStatus;
  levelStartTime?: Date;
  levelEndTime?: Date;
  actionDate?: Date;
  comments?: string;
  rejectionReason?: string;
  isFinalApprover: boolean;
  elapsedHours: number;
  remainingHours: number;
  tatPercentageUsed: number;
  createdAt: Date;
  updatedAt: Date;
}

export interface ApprovalAction {
  action: 'APPROVE' | 'REJECT';
  comments?: string;
  rejectionReason?: string;
}

export interface ApprovalResponse {
  levelId: string;
  status: ApprovalStatus;
  actionDate: Date;
  comments?: string;
  rejectionReason?: string;
}
