{"version":3,"sources":["../src/types/support.ts"],"sourcesContent":["export enum SupportStatus {\n  ABERTO = 'aberto',\n  RESPONDIDO = 'respondido',\n  ENCERRADO = 'encerrado',\n}\n\nexport enum SupportCategory {\n  ACESSO = 'acesso',\n  TECNICO = 'tecnico',\n  OUTROS = 'outros',\n}\n\nexport type TicketStatus = SupportStatus;\nexport type ProblemType = SupportCategory | null;\nexport type TabType = 'criar-pedido' | 'historico';\n\nexport interface SupportResponse {\n  id: string;\n  receivedAt: string;\n  message: string;\n}\n\nexport interface SupportTicket {\n  id: string;\n  title: string;\n  status: TicketStatus;\n  createdAt: string;\n  category: ProblemType;\n  description?: string;\n  response?: SupportResponse;\n}\n\nexport const getStatusBadgeAction = (\n  status: SupportStatus\n): 'success' | 'error' | 'warning' | 'info' => {\n  switch (status) {\n    case SupportStatus.ABERTO:\n      return 'success';\n    case SupportStatus.RESPONDIDO:\n      return 'warning';\n    case SupportStatus.ENCERRADO:\n      return 'info';\n    default:\n      return 'info';\n  }\n};\n\nexport const getStatusText = (status: SupportStatus): string => {\n  switch (status) {\n    case SupportStatus.ABERTO:\n      return 'Aberto';\n    case SupportStatus.RESPONDIDO:\n      return 'Respondido';\n    case SupportStatus.ENCERRADO:\n      return 'Encerrado';\n    default:\n      return status;\n  }\n};\n\nexport const getCategoryText = (category: SupportCategory | null): string => {\n  if (!category) return '';\n  switch (category) {\n    case SupportCategory.ACESSO:\n      return 'Acesso';\n    case SupportCategory.TECNICO:\n      return 'Técnico';\n    case SupportCategory.OUTROS:\n      return 'Outros';\n    default:\n      return category;\n  }\n};\n\n// API Types\nexport interface CreateSupportTicketRequest {\n  subject: string;\n  description: string;\n  type: string;\n}\n\nexport interface CreateSupportTicketResponse {\n  message: string;\n  data: {\n    id: string;\n    ownerId: string;\n    type: string;\n    email: string;\n    subject: string;\n    description: string;\n    status: string;\n    createdAt: string;\n    updatedAt: string;\n  };\n}\n\nexport interface SupportTicketAPI {\n  id: string;\n  ownerId: string;\n  type: string;\n  email: string;\n  subject: string;\n  description: string;\n  status: string;\n  createdAt: string;\n  updatedAt: string;\n}\n\nexport interface SupportPagination {\n  page: number;\n  limit: number;\n  total: number;\n  totalPages: number;\n  hasNext: boolean;\n  hasPrev: boolean;\n}\n\nexport interface GetSupportTicketsResponse {\n  message: string;\n  data: {\n    support: SupportTicketAPI[];\n    pagination: SupportPagination;\n  };\n}\n\nexport interface SupportAnswerAPI {\n  id: string;\n  userId: string;\n  supportId: string;\n  answer: string;\n  read: boolean;\n  createdAt: string;\n  updatedAt: string;\n}\n\nexport interface GetSupportAnswersResponse {\n  message: string;\n  data: SupportAnswerAPI[];\n}\n\nexport interface SubmitSupportAnswerRequest {\n  userId: string;\n  supportId: string;\n  answer: string;\n}\n\nexport interface SubmitSupportAnswerResponse {\n  message: string;\n  data: SupportAnswerAPI;\n}\n\n// Mapping functions for API status to internal status\nexport const mapApiStatusToInternal = (apiStatus: string): SupportStatus => {\n  switch (apiStatus) {\n    case 'ABERTO':\n      return SupportStatus.ABERTO;\n    case 'PENDENTE':\n      return SupportStatus.RESPONDIDO;\n    case 'FECHADO':\n      return SupportStatus.ENCERRADO;\n    default:\n      return SupportStatus.ABERTO;\n  }\n};\n\nexport const mapInternalStatusToApi = (\n  internalStatus: SupportStatus\n): string => {\n  switch (internalStatus) {\n    case SupportStatus.ABERTO:\n      return 'ABERTO';\n    case SupportStatus.RESPONDIDO:\n      return 'PENDENTE';\n    case SupportStatus.ENCERRADO:\n      return 'FECHADO';\n    default:\n      return 'ABERTO';\n  }\n};\n\n// API Client interface for dependency injection\nexport interface SupportApiClient {\n  get: <T>(url: string) => Promise<{ data: T }>;\n  post: <T>(url: string, data?: unknown) => Promise<{ data: T }>;\n  patch: <T>(url: string, data?: unknown) => Promise<{ data: T }>;\n}\n\n// Feature Flag Support Types\nexport enum SupportType {\n  NATIVE = 'NATIVE',\n  ZENDESK = 'ZENDESK',\n}\n\nexport interface SupportFeatureFlags {\n  institutionId: string;\n  page: string;\n  version: {\n    supportType: SupportType;\n  };\n}\n"],"mappings":";AAAO,IAAK,gBAAL,kBAAKA,mBAAL;AACL,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAML,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AA0BL,IAAM,uBAAuB,CAClC,WAC6C;AAC7C,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,IAAM,gBAAgB,CAAC,WAAkC;AAC9D,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,IAAM,kBAAkB,CAAC,aAA6C;AAC3E,MAAI,CAAC,SAAU,QAAO;AACtB,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAgFO,IAAM,yBAAyB,CAAC,cAAqC;AAC1E,UAAQ,WAAW;AAAA,IACjB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,IAAM,yBAAyB,CACpC,mBACW;AACX,UAAQ,gBAAgB;AAAA,IACtB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAUO,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,aAAU;AAFA,SAAAA;AAAA,GAAA;","names":["SupportStatus","SupportCategory","SupportType"]}