package response

import (
	"time"
)

type ApprovalWorkflowStepsResponse struct {
	ID               uint      `json:"id"`
	WorkflowID       uint      `json:"workflowId"`
	StepOrder        int       `json:"stepOrder"`
	StepName         string    `json:"stepName"`
	Description      *string   `json:"description"`
	ApproverRoleID   uint      `json:"approverRoleId"`
	ApproverRoleName *string   `json:"approverRoleName,omitempty"`
	IsOptional       bool      `json:"isOptional"`
	RequiresComment  bool      `json:"requiresComment"`
	AutoApprove      bool      `json:"autoApprove"`
	TimeoutHours     *int      `json:"timeoutHours"`
	CreatedAt        time.Time `json:"createdAt"`
	UpdatedAt        time.Time `json:"updatedAt"`
}

type ApprovalWorkflowStepsSummaryResponse struct {
	ID              uint    `json:"id"`
	WorkflowID      uint    `json:"workflowId"`
	StepOrder       int     `json:"stepOrder"`
	StepName        string  `json:"stepName"`
	ApproverRoleID  uint    `json:"approverRoleId"`
	IsOptional      bool    `json:"isOptional"`
	RequiresComment bool    `json:"requiresComment"`
	TimeoutHours    *int    `json:"timeoutHours"`
}

type ApprovalWorkflowStepsStatsResponse struct {
	TotalSteps           int     `json:"totalSteps"`
	OptionalSteps        int     `json:"optionalSteps"`
	MandatorySteps       int     `json:"mandatorySteps"`
	StepsWithTimeout     int     `json:"stepsWithTimeout"`
	AverageTimeoutHours  float64 `json:"averageTimeoutHours"`
}