import { TicketApprovalStatus } from './Approval'; import { TicketTaskStatus } from './Task'; import { ITicketAuditedEntity, TicketPropertyValue, TicketStage } from "./Common"; export interface ITicketStatus extends ITicketAuditedEntity { name: string; description?: string; color?: string; icon?: string; stage: TicketStage; order: number; isInitial: boolean; isFinal: boolean; enabled: boolean; version: number; } export interface ITicketStatusCreateDTO extends Omit { } export interface ITicketStatusUpdateDTO extends Partial> { id: string; expectedVersion: number; } export declare enum TicketConditionOperator { EQUALS = "EQUALS", NOT_EQUALS = "NOT_EQUALS", EXISTS = "EXISTS", NOT_EXISTS = "NOT_EXISTS", GREATER_THAN = "GREATER_THAN", GREATER_THAN_OR_EQUAL = "GREATER_THAN_OR_EQUAL", LESS_THAN = "LESS_THAN", LESS_THAN_OR_EQUAL = "LESS_THAN_OR_EQUAL", CONTAINS = "CONTAINS", NOT_CONTAINS = "NOT_CONTAINS", IN = "IN", NOT_IN = "NOT_IN" } export declare enum TicketTransitionConditionType { FIELD = "FIELD", ACTIVITY_OCCURRED = "ACTIVITY_OCCURRED", FORM_SUBMITTED = "FORM_SUBMITTED", APPROVAL_COMPLETED = "APPROVAL_COMPLETED", TASK_COMPLETED = "TASK_COMPLETED", ALL_REQUIRED_TASKS_COMPLETED = "ALL_REQUIRED_TASKS_COMPLETED", CHECKLIST_COMPLETED = "CHECKLIST_COMPLETED" } export interface ITicketTransitionCondition { id: string; type: TicketTransitionConditionType; operator: TicketConditionOperator; fieldNameKey?: string; activityType?: string; formId?: string; approvalProcessDefinitionId?: string; approvalStatus?: TicketApprovalStatus; taskId?: string; taskDefinitionId?: string; requiredTaskStatus?: TicketTaskStatus; checklistItemId?: string; expectedValue?: TicketPropertyValue; } export interface ICreateTicketTransitionConditionDTO extends Omit { } export interface IUpdateTicketTransitionConditionDTO extends Partial> { id: string; } export interface ITicketTransition extends ITicketAuditedEntity { name?: string; fromStatusId: string; toStatusId: string; enabled: boolean; version: number; allowedRoleIds?: string[]; conditions: ITicketTransitionCondition[]; } export interface ICreateTicketTransitionDTO extends Omit { conditions: ICreateTicketTransitionConditionDTO[]; } export interface IUpdateTicketTransitionDTO extends Partial> { id: string; expectedVersion: number; } export declare enum TicketActivityType { CREATED = "CREATED", UPDATED = "UPDATED", STATUS_CHANGED = "STATUS_CHANGED", ASSIGNMENT_CHANGED = "ASSIGNMENT_CHANGED", COMMENTED = "COMMENTED", ATTACHMENT_ADDED = "ATTACHMENT_ADDED", ATTACHMENT_DELETED = "ATTACHMENT_DELETED", FORM_SUBMITTED = "FORM_SUBMITTED", APPROVAL_COMPLETED = "APPROVAL_COMPLETED", TASK_COMPLETED = "TASK_COMPLETED", ALL_REQUIRED_TASKS_COMPLETED = "ALL_REQUIRED_TASKS_COMPLETED", CHECKLIST_COMPLETED = "CHECKLIST_COMPLETED", TICKET_EVENT = "TICKET_EVENT" } export interface ITicketFieldChange { fieldNameKey: string; previousValue?: TicketPropertyValue; newValue?: TicketPropertyValue; } export interface ITicketActivity { id: string; spaceId: string; ticketId: string; type: TicketActivityType; ticketEventType?: string; actorId?: string; occurredAt: Date; comment?: string; attachmentIds?: string[]; changes?: ITicketFieldChange[]; metadata?: { [key: string]: TicketPropertyValue; }; } export interface ITicketFormRequirement { id: string; formId: string; formVersion?: number; requiredOnCreate?: boolean; requiredForStatusIds?: string[]; } export interface ITicketFormSubmissionReference { formId: string; submissionId: string; formVersion?: number; submittedAt: Date; submittedBy: string; }