{"version":3,"file":"message-status.type.cjs","names":[],"sources":["../../../src/graphql/types/message-status.type.ts"],"sourcesContent":["import {\n  Field,\n  ObjectType,\n  createUnionType,\n  registerEnumType,\n} from \"type-graphql\";\n\nexport enum MessageStatusCode {\n  Pending = \"pending\",\n  Success = \"success\",\n  Failed = \"failed\",\n}\n\nregisterEnumType(MessageStatusCode, {\n  name: \"MessageStatusCode\",\n});\n\n@ObjectType()\nexport class BaseMessageStatus {\n  @Field(() => MessageStatusCode)\n  code: MessageStatusCode;\n}\n\n@ObjectType()\nexport class PendingMessageStatus extends BaseMessageStatus {\n  code: MessageStatusCode = MessageStatusCode.Pending;\n}\n\n@ObjectType()\nexport class SuccessMessageStatus extends BaseMessageStatus {\n  code: MessageStatusCode = MessageStatusCode.Success;\n}\n\n@ObjectType()\nexport class FailedMessageStatus extends BaseMessageStatus {\n  code: MessageStatusCode = MessageStatusCode.Failed;\n\n  @Field(() => String)\n  reason: string;\n}\n\nexport const MessageStatusUnion = createUnionType({\n  name: \"MessageStatus\",\n  types: () =>\n    [PendingMessageStatus, SuccessMessageStatus, FailedMessageStatus] as const,\n});\n\nexport type MessageStatus = typeof MessageStatusUnion;\n"],"mappings":";;;;;;;;AAOA,IAAY,gEAAL;AACL;AACA;AACA;;;mCAGe,mBAAmB,EAClC,MAAM,qBACP,CAAC;AAGK,8BAAM,kBAAkB;2DAChB,kBAAkB;+EAFpB;AAON,iCAAM,6BAA6B,kBAAkB;;;cAChC,kBAAkB;;;kFAFjC;AAMN,iCAAM,6BAA6B,kBAAkB;;;cAChC,kBAAkB;;;kFAFjC;AAMN,gCAAM,4BAA4B,kBAAkB;;;cAC/B,kBAAkB;;;2DAE/B,OAAO;iFAJT;AAQb,MAAa,uDAAqC;CAChD,MAAM;CACN,aACE;EAAC;EAAsB;EAAsB;EAAoB;CACpE,CAAC"}