import { IBaseFleioObjectModel } from '../../../base-model/base-fleio-object.model';
import { IUserModel } from '../../../client-user/model/user.model';
import { IServiceModel } from '../../../billing/model/service.model';
import { ITicketAttachmentModel } from './ticket-attachment.model';
import { ITicketReplyModel } from './ticket-reply.model';
import { AppColor } from '@shared/ui/common/enums/app-color.enum';

export interface ITicketModel extends IBaseFleioObjectModel {
  assigned_to_email: string;
  created_at: Date;
  routerLink?: string;
  fragment?: string;
  timestamp?: string;
  timestamp_display?: string;
  last_reply_at: Date;
  created_by: IUserModel;
  created_by_display: string;
  client: number;
  client_display: string;
  opener_email?: string;
  assigned_to: IUserModel;
  assigned_to_display: string;
  title: string;
  description: string;
  department: number;
  department_display: string;
  department_email?: string;
  priority: string;
  priority_display: string;
  status: string;
  status_display: string;
  to_recipients?: string;
  to_recipients_display?: string;
  cc_recipients: string | Array<string>;
  linked_tickets: Array<string>;
  created_by_email: string;
  service: IServiceModel;
  main_attachments: Array<ITicketAttachmentModel>;
  replies_and_notes: Array<ITicketReplyModel>;
  unread: boolean;
  pinned_by_current_user: boolean;
  users_that_pinned_this: Array<string>;
  is_staff_generated: boolean;
  ticket_owner_email: string;
  ticket_activity: boolean;
  appLineColor?: AppColor;
  merged_into?: ITicketModel;
}
