import { QueryParams } from '../types/fetchResponse.type'; import { ApprovalStatus } from '../types/projectApprovalService.type'; export interface ApprovalFilterOptionQueryParams extends QueryParams { moduleOptions?: boolean; subModuleOptions?: boolean; processOptions?: boolean; taskOptions?: boolean; assignedToOptions?: boolean; checklistOptions?: boolean; teamOptions?: boolean; status?: ApprovalStatus[]; } export interface ApprovalListQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; module?: string; subModule?: string; process?: string; task?: string; assignedTo?: string; team?: string; duration?: string; createdAt?: string; status?: ApprovalStatus[]; checklist?: string; approvedAt?: string; } export interface ApprovalRequestListQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; module?: string; subModule?: string; process?: string; task?: string; duration?: string; createdAt?: string; status?: string; approvedAt?: string; checklist?: string; } export interface ApprovalRequestsFilterOptionQueryParams extends QueryParams { moduleOptions?: boolean; subModuleOptions?: boolean; processOptions?: boolean; taskOptions?: boolean; checklistOptions?: boolean; } export interface ImprovementApprovalFilterOptionQueryParams extends QueryParams { improvementOptions?: boolean; taskOptions?: boolean; memberOptions?: boolean; status?: ApprovalStatus[]; } export interface ImprovementApprovalListQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; improvement?: string; task?: string; member?: string; createdAt?: string; status?: ApprovalStatus[]; approvedAt?: string; } export interface ImprovementApprovalRequestQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; improvement?: string; task?: string; createdAt?: string; status?: string; approvedAt?: string; } export interface ImprovementApprovalRequestsListQueryParams extends QueryParams { improvementOptions?: boolean; taskOptions?: boolean; } export interface MemberQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; nickName?: string[]; isActive?: string[]; division?: string[]; position?: string[]; team?: string[]; employeeType?: string[]; finishedDate?: string[]; groupMember?: string[]; targetType?: string[]; adminRole?: string[]; needLeaderReview?: string[]; needTestingAccount?: string[]; projectCount?: string[]; taskProgress?: string[]; lastLogin?: string[]; groupMemberAssignedBy?: string[]; groupMemberAssignedAt?: string[]; } export interface SprintApprovalFilterOptionQueryParams extends QueryParams { projectId?: string; search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; minPbiAmount?: number; maxPbiAmount?: number; minTaskAmount?: number; maxTaskAmount?: number; sprintPeriod?: string; status?: ApprovalStatus[]; startedAt?: string; sentAt?: string; sprintPeriodOptions?: boolean; } export interface SprintApprovalListQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; minPbiAmount?: number; maxPbiAmount?: number; minTaskAmount?: number; maxTaskAmount?: number; sprintPeriod?: string; status?: ApprovalStatus[]; startedAt?: string; sentAt?: string; } export interface SprintApprovalRequestsFilterOptionQueryParams extends QueryParams { sprintPeriodOptions: boolean; } export interface SprintApprovalRequestsListQueryParams extends QueryParams { search?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: number; minPbiAmount?: number; maxPbiAmount?: number; minTaskAmount?: number; maxTaskAmount?: number; sprintPeriod?: string; status?: string; startedAt?: string; sentAt?: string; } export interface AddApprovalDoApprovalRequestBody extends QueryParams { isApproved: boolean; } export interface AddApprovalLevelRequestBody extends QueryParams { project: string; team: string; process: string; } export interface UpdateApprovalRequestBody extends QueryParams { type: 'and' | 'or'; user: string[]; level: number; team: string; process: string; }