@lcas58/esmi-api-types 1.0.17 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import type { AppRouteHandler } from "../../lib/types.js";
2
- import type { GetOneRoute, ListRoute } from "./events.routes.js";
2
+ import type { DiscoverRoute, GetOneRoute, ListRoute } from "./events.routes.js";
3
3
  export declare const list: AppRouteHandler<ListRoute>;
4
4
  export declare const getOne: AppRouteHandler<GetOneRoute>;
5
+ export declare const discover: AppRouteHandler<DiscoverRoute>;
@@ -1,6 +1,7 @@
1
1
  import { and, eq, gte, ilike, inArray, isNotNull, lte } from "drizzle-orm";
2
2
  import * as HttpStatusCodes from "stoker/http-status-codes";
3
3
  import * as HttpStatusPhrases from "stoker/http-status-phrases";
4
+ import { runDiscoveryAgent } from "../../agent/runner.js";
4
5
  import { createDb } from "../../db/index.js";
5
6
  import { event, location } from "../../db/schema/index.js";
6
7
  export const list = async (c) => {
@@ -93,3 +94,15 @@ export const getOne = async (c) => {
93
94
  }
94
95
  return c.json(foundEvent, HttpStatusCodes.OK);
95
96
  };
97
+ export const discover = async (c) => {
98
+ const body = c.req.valid("json");
99
+ const { db } = createDb(c.env);
100
+ const events = await runDiscoveryAgent(c.env, db, {
101
+ sportId: body.sportId,
102
+ city: body.city,
103
+ state: body.state,
104
+ from: body.from,
105
+ to: body.to,
106
+ });
107
+ return c.json(events, HttpStatusCodes.OK);
108
+ };
@@ -118,5 +118,75 @@ declare const router: import("@hono/zod-openapi").OpenAPIHono<import("../../shar
118
118
  status: 404;
119
119
  };
120
120
  };
121
+ } & {
122
+ "/events/discover": {
123
+ $post: {
124
+ input: {
125
+ json: {
126
+ sportId: string;
127
+ city: string;
128
+ state: string;
129
+ from?: string | undefined;
130
+ to?: string | undefined;
131
+ };
132
+ };
133
+ output: {
134
+ metadata: any;
135
+ id: string;
136
+ title: string;
137
+ createdAt: string;
138
+ sport: {
139
+ id: string;
140
+ name: string;
141
+ icon: string | null;
142
+ } | null;
143
+ sportId: string;
144
+ startsAt: string;
145
+ endsAt: string | null;
146
+ timezone: string;
147
+ location: {
148
+ id: string;
149
+ name: string;
150
+ formattedAddress: string;
151
+ city: string | null;
152
+ state: string | null;
153
+ latitude: number | null;
154
+ longitude: number | null;
155
+ } | null;
156
+ locationId: string | null;
157
+ externalLinkId: string | null;
158
+ source: "external" | "community";
159
+ thumbnailUrl: string | null;
160
+ createdByUserId: string | null;
161
+ creator: {
162
+ image: string | null;
163
+ id: string;
164
+ name: string;
165
+ } | null;
166
+ externalLink: {
167
+ url: string;
168
+ id: string;
169
+ domain: string;
170
+ } | null;
171
+ }[];
172
+ outputFormat: "text" | "json";
173
+ status: 200;
174
+ } | {
175
+ input: {
176
+ json: {
177
+ sportId: string;
178
+ city: string;
179
+ state: string;
180
+ from?: string | undefined;
181
+ to?: string | undefined;
182
+ };
183
+ };
184
+ output: {
185
+ message: string;
186
+ };
187
+ outputFormat: "text" | "json";
188
+ status: 401;
189
+ };
190
+ };
121
191
  }, "/">;
122
192
  export default router;
@@ -3,5 +3,6 @@ import * as handlers from "./events.handlers.js";
3
3
  import * as routes from "./events.routes.js";
4
4
  const router = createRouter()
5
5
  .openapi(routes.list, handlers.list)
6
- .openapi(routes.getOne, handlers.getOne);
6
+ .openapi(routes.getOne, handlers.getOne)
7
+ .openapi(routes.discover, handlers.discover);
7
8
  export default router;
@@ -588,5 +588,337 @@ export declare const getOne: {
588
588
  } & {
589
589
  getRoutingPath(): "/events/:id";
590
590
  };
591
+ export declare const discoverRequestSchema: z.ZodObject<{
592
+ sportId: z.ZodString;
593
+ city: z.ZodString;
594
+ state: z.ZodString;
595
+ from: z.ZodOptional<z.ZodString>;
596
+ to: z.ZodOptional<z.ZodString>;
597
+ }, "strip", z.ZodTypeAny, {
598
+ sportId: string;
599
+ city: string;
600
+ state: string;
601
+ from?: string | undefined;
602
+ to?: string | undefined;
603
+ }, {
604
+ sportId: string;
605
+ city: string;
606
+ state: string;
607
+ from?: string | undefined;
608
+ to?: string | undefined;
609
+ }>;
610
+ export declare const discover: {
611
+ path: "/events/discover";
612
+ method: "post";
613
+ tags: string[];
614
+ middleware: [import("hono").MiddlewareHandler];
615
+ request: {
616
+ body: {
617
+ required: boolean;
618
+ content: {
619
+ "application/json": {
620
+ schema: z.ZodObject<{
621
+ sportId: z.ZodString;
622
+ city: z.ZodString;
623
+ state: z.ZodString;
624
+ from: z.ZodOptional<z.ZodString>;
625
+ to: z.ZodOptional<z.ZodString>;
626
+ }, "strip", z.ZodTypeAny, {
627
+ sportId: string;
628
+ city: string;
629
+ state: string;
630
+ from?: string | undefined;
631
+ to?: string | undefined;
632
+ }, {
633
+ sportId: string;
634
+ city: string;
635
+ state: string;
636
+ from?: string | undefined;
637
+ to?: string | undefined;
638
+ }>;
639
+ };
640
+ };
641
+ description: string;
642
+ };
643
+ };
644
+ responses: {
645
+ 200: {
646
+ content: {
647
+ "application/json": {
648
+ schema: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
649
+ id: z.ZodString;
650
+ sportId: z.ZodString;
651
+ title: z.ZodString;
652
+ startsAt: z.ZodDate;
653
+ endsAt: z.ZodNullable<z.ZodDate>;
654
+ timezone: z.ZodString;
655
+ locationId: z.ZodNullable<z.ZodString>;
656
+ externalLinkId: z.ZodNullable<z.ZodString>;
657
+ source: z.ZodEnum<["external", "community"]>;
658
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
659
+ metadata: z.ZodNullable<z.ZodType<string | number | boolean | {
660
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
661
+ } | (string | number | boolean | {
662
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
663
+ } | (string | number | boolean | {
664
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
665
+ } | (string | number | boolean | {
666
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
667
+ } | (string | number | boolean | {
668
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
669
+ } | (string | number | boolean | {
670
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
671
+ } | (string | number | boolean | {
672
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
673
+ } | (string | number | boolean | {
674
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
675
+ } | (string | number | boolean | {
676
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
677
+ } | (string | number | boolean | {
678
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
679
+ } | (string | number | boolean | {
680
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
681
+ } | (string | number | boolean | {
682
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
683
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | {
684
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
685
+ } | (string | number | boolean | {
686
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
687
+ } | (string | number | boolean | {
688
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
689
+ } | (string | number | boolean | {
690
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
691
+ } | (string | number | boolean | {
692
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
693
+ } | (string | number | boolean | {
694
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
695
+ } | (string | number | boolean | {
696
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
697
+ } | (string | number | boolean | {
698
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
699
+ } | (string | number | boolean | {
700
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
701
+ } | (string | number | boolean | {
702
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
703
+ } | (string | number | boolean | {
704
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
705
+ } | (string | number | boolean | {
706
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
707
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>;
708
+ createdByUserId: z.ZodNullable<z.ZodString>;
709
+ createdAt: z.ZodDate;
710
+ }, {
711
+ sport: z.ZodNullable<z.ZodObject<{
712
+ id: z.ZodString;
713
+ name: z.ZodString;
714
+ icon: z.ZodNullable<z.ZodString>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ id: string;
717
+ name: string;
718
+ icon: string | null;
719
+ }, {
720
+ id: string;
721
+ name: string;
722
+ icon: string | null;
723
+ }>>;
724
+ location: z.ZodNullable<z.ZodObject<{
725
+ id: z.ZodString;
726
+ name: z.ZodString;
727
+ formattedAddress: z.ZodString;
728
+ city: z.ZodNullable<z.ZodString>;
729
+ state: z.ZodNullable<z.ZodString>;
730
+ latitude: z.ZodNullable<z.ZodNumber>;
731
+ longitude: z.ZodNullable<z.ZodNumber>;
732
+ }, "strip", z.ZodTypeAny, {
733
+ id: string;
734
+ name: string;
735
+ formattedAddress: string;
736
+ city: string | null;
737
+ state: string | null;
738
+ latitude: number | null;
739
+ longitude: number | null;
740
+ }, {
741
+ id: string;
742
+ name: string;
743
+ formattedAddress: string;
744
+ city: string | null;
745
+ state: string | null;
746
+ latitude: number | null;
747
+ longitude: number | null;
748
+ }>>;
749
+ externalLink: z.ZodNullable<z.ZodObject<{
750
+ id: z.ZodString;
751
+ url: z.ZodString;
752
+ domain: z.ZodString;
753
+ }, "strip", z.ZodTypeAny, {
754
+ url: string;
755
+ id: string;
756
+ domain: string;
757
+ }, {
758
+ url: string;
759
+ id: string;
760
+ domain: string;
761
+ }>>;
762
+ creator: z.ZodNullable<z.ZodObject<{
763
+ id: z.ZodString;
764
+ name: z.ZodString;
765
+ image: z.ZodNullable<z.ZodString>;
766
+ }, "strip", z.ZodTypeAny, {
767
+ image: string | null;
768
+ id: string;
769
+ name: string;
770
+ }, {
771
+ image: string | null;
772
+ id: string;
773
+ name: string;
774
+ }>>;
775
+ }>, z.UnknownKeysParam, z.ZodTypeAny, {
776
+ metadata: string | number | boolean | {
777
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
778
+ } | (string | number | boolean | {
779
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
780
+ } | (string | number | boolean | {
781
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
782
+ } | (string | number | boolean | {
783
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
784
+ } | (string | number | boolean | {
785
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
786
+ } | (string | number | boolean | {
787
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
788
+ } | (string | number | boolean | {
789
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
790
+ } | (string | number | boolean | {
791
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
792
+ } | (string | number | boolean | {
793
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
794
+ } | (string | number | boolean | {
795
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
796
+ } | (string | number | boolean | {
797
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
798
+ } | (string | number | boolean | {
799
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
800
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
801
+ id: string;
802
+ title: string;
803
+ createdAt: Date;
804
+ sport: {
805
+ id: string;
806
+ name: string;
807
+ icon: string | null;
808
+ } | null;
809
+ sportId: string;
810
+ startsAt: Date;
811
+ endsAt: Date | null;
812
+ timezone: string;
813
+ location: {
814
+ id: string;
815
+ name: string;
816
+ formattedAddress: string;
817
+ city: string | null;
818
+ state: string | null;
819
+ latitude: number | null;
820
+ longitude: number | null;
821
+ } | null;
822
+ locationId: string | null;
823
+ externalLinkId: string | null;
824
+ source: "external" | "community";
825
+ thumbnailUrl: string | null;
826
+ createdByUserId: string | null;
827
+ creator: {
828
+ image: string | null;
829
+ id: string;
830
+ name: string;
831
+ } | null;
832
+ externalLink: {
833
+ url: string;
834
+ id: string;
835
+ domain: string;
836
+ } | null;
837
+ }, {
838
+ metadata: string | number | boolean | {
839
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
840
+ } | (string | number | boolean | {
841
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
842
+ } | (string | number | boolean | {
843
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
844
+ } | (string | number | boolean | {
845
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
846
+ } | (string | number | boolean | {
847
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
848
+ } | (string | number | boolean | {
849
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
850
+ } | (string | number | boolean | {
851
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
852
+ } | (string | number | boolean | {
853
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
854
+ } | (string | number | boolean | {
855
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
856
+ } | (string | number | boolean | {
857
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
858
+ } | (string | number | boolean | {
859
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
860
+ } | (string | number | boolean | {
861
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
862
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
863
+ id: string;
864
+ title: string;
865
+ createdAt: Date;
866
+ sport: {
867
+ id: string;
868
+ name: string;
869
+ icon: string | null;
870
+ } | null;
871
+ sportId: string;
872
+ startsAt: Date;
873
+ endsAt: Date | null;
874
+ timezone: string;
875
+ location: {
876
+ id: string;
877
+ name: string;
878
+ formattedAddress: string;
879
+ city: string | null;
880
+ state: string | null;
881
+ latitude: number | null;
882
+ longitude: number | null;
883
+ } | null;
884
+ locationId: string | null;
885
+ externalLinkId: string | null;
886
+ source: "external" | "community";
887
+ thumbnailUrl: string | null;
888
+ createdByUserId: string | null;
889
+ creator: {
890
+ image: string | null;
891
+ id: string;
892
+ name: string;
893
+ } | null;
894
+ externalLink: {
895
+ url: string;
896
+ id: string;
897
+ domain: string;
898
+ } | null;
899
+ }>, "many">;
900
+ };
901
+ };
902
+ description: string;
903
+ };
904
+ 401: {
905
+ content: {
906
+ "application/json": {
907
+ schema: z.ZodObject<{
908
+ message: z.ZodString;
909
+ }, "strip", z.ZodTypeAny, {
910
+ message: string;
911
+ }, {
912
+ message: string;
913
+ }>;
914
+ };
915
+ };
916
+ description: string;
917
+ };
918
+ };
919
+ } & {
920
+ getRoutingPath(): "/events/discover";
921
+ };
591
922
  export type ListRoute = typeof list;
592
923
  export type GetOneRoute = typeof getOne;
924
+ export type DiscoverRoute = typeof discover;
@@ -1,7 +1,8 @@
1
1
  import { createRoute, z } from "@hono/zod-openapi";
2
2
  import * as HttpStatusCodes from "stoker/http-status-codes";
3
- import { jsonContent } from "stoker/openapi/helpers";
4
- import { notFoundSchema } from "../../lib/constants.js";
3
+ import { jsonContent, jsonContentRequired } from "stoker/openapi/helpers";
4
+ import { notFoundSchema, unauthorizedSchema } from "../../lib/constants.js";
5
+ import { isAuth } from "../../middlewares/is-auth.js";
5
6
  import { eventWithRelationsSchema, listEventsQuerySchema } from "./schemas/index.js";
6
7
  export const list = createRoute({
7
8
  path: "/events",
@@ -28,3 +29,23 @@ export const getOne = createRoute({
28
29
  [HttpStatusCodes.NOT_FOUND]: jsonContent(notFoundSchema, "Event not found"),
29
30
  },
30
31
  });
32
+ export const discoverRequestSchema = z.object({
33
+ sportId: z.string().min(1),
34
+ city: z.string().min(1),
35
+ state: z.string().min(1),
36
+ from: z.string().optional(),
37
+ to: z.string().optional(),
38
+ });
39
+ export const discover = createRoute({
40
+ path: "/events/discover",
41
+ method: "post",
42
+ tags: ["Events"],
43
+ middleware: [isAuth()],
44
+ request: {
45
+ body: jsonContentRequired(discoverRequestSchema, "Event discovery criteria"),
46
+ },
47
+ responses: {
48
+ [HttpStatusCodes.OK]: jsonContent(z.array(eventWithRelationsSchema), "Discovered events"),
49
+ [HttpStatusCodes.UNAUTHORIZED]: jsonContent(unauthorizedSchema, "Unauthorized"),
50
+ },
51
+ });
@@ -1,8 +1,7 @@
1
- import type discover from "../routes/events/discover.index.js";
2
1
  import type events from "../routes/events/events.index.js";
3
2
  import type index from "../routes/index.route.js";
4
3
  import type marketing from "../routes/marketing/marketing.index.js";
5
4
  import type sports from "../routes/sports/sports.index.js";
6
5
  import type users from "../routes/users/users.index.js";
7
6
  import type webhooks from "../routes/webhooks/webhooks.index.js";
8
- export type AppType = typeof index | typeof events | typeof discover | typeof sports | typeof users | typeof marketing | typeof webhooks;
7
+ export type AppType = typeof index | typeof events | typeof sports | typeof users | typeof marketing | typeof webhooks;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcas58/esmi-api-types",
3
3
  "type": "module",
4
- "version": "1.0.17",
4
+ "version": "1.0.18",
5
5
  "license": "MIT",
6
6
  "exports": {
7
7
  ".": {