{"version":3,"file":"message-status.type.mjs","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;;;AAGF,iBAAiB,mBAAmB,EAClC,MAAM,qBACP,CAAC;AAGK,8BAAM,kBAAkB;YAC5B,YAAY,kBAAkB;gCAFhC,YAAY;AAON,iCAAM,6BAA6B,kBAAkB;;;cAChC,kBAAkB;;;mCAF7C,YAAY;AAMN,iCAAM,6BAA6B,kBAAkB;;;cAChC,kBAAkB;;;mCAF7C,YAAY;AAMN,gCAAM,4BAA4B,kBAAkB;;;cAC/B,kBAAkB;;;YAE3C,YAAY,OAAO;kCAJrB,YAAY;AAQb,MAAa,qBAAqB,gBAAgB;CAChD,MAAM;CACN,aACE;EAAC;EAAsB;EAAsB;EAAoB;CACpE,CAAC"}