import { ElementFormData, ElementMetaAttributes, User } from '.' export interface CommentValue { createdBy: string | User lastChangeAt: number organization: string value: string } type Privileges = 'create' | 'read' | 'delete' | 'update' export interface TicketProperty { lastChangeAt: string lastChangeBy?: string organization?: string privileges: Privileges[] value?: T } export enum TicketStatus { CLOSED = 'Close', OPEN = 'Open', IN_PROGESS = 'In-progress', } interface TicketLog { action: 'create' | 'view' | 'update' createdBy: User createdAt: string } export interface TicketData extends Omit { approvers: TicketProperty assignees: TicketProperty checklist: TicketProperty children: TicketData[] parent?: Partial comments: CommentValue[] createdAt: TicketProperty createdBy: TicketProperty description: TicketProperty dueDate: TicketProperty elements: TicketProperty logs: TicketLog[] overDue: boolean participants: TicketProperty priority?: TicketProperty status: TicketProperty subject: TicketProperty is_incomplete: TicketProperty }