@zyacreatives/shared 2.4.4 → 2.4.6

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.
@@ -617,3 +617,9 @@ export declare const ANALYTICS_EVENTS: {
617
617
  readonly EMPTY_STATE_VIEW: "comment_empty_state_view";
618
618
  };
619
619
  };
620
+ export type MarketplaceCategory = {
621
+ name: string;
622
+ imgUrl: string;
623
+ };
624
+ export declare const MARKETPLACE_CATEGORIES: MarketplaceCategory[];
625
+ export declare const CATEGORIES_MAP: Record<string, string[]>;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ANALYTICS_EVENTS = exports.DEFAULT_DISCIPLINES = exports.API_ROUTES = exports.DISCOUNT_TYPES = exports.PRICING_MODELS = exports.GATEWAY_PROVIDER = exports.COUNTRY_OF_OPERATION = exports.SIGNAL_STATUS = exports.SIGNAL_INTEREST_TYPES = exports.VENTURE_STAGES = exports.NOTIFICATION_TYPES = exports.APPLICATION_STATUS = exports.LINK_TYPES = exports.ACTIVITY_TYPES = exports.POST_BADGE_TYPES = exports.PROJECT_STATUS = exports.MESSAGE_REQUEST_STATUS = exports.PRODUCT_STATUS = exports.JOB_STATUS = exports.WAGES_CURRENCY = exports.GIG_TYPE = exports.MESSAGE_TYPES = exports.JOB_LOCATIONS = exports.JOB_SECTIONS = exports.WAGE_TYPES = exports.JOB_AVAILABILITY_TYPES = exports.EMPLOYMENT_TYPE = exports.WORK_MODE = exports.JOB_TYPE = exports.POST_TYPES = exports.ACTIVITY_PARENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_STATUSES = exports.GEOGRAPHIC_FOCUS = exports.INVESTMENT_SIZES = exports.INVESTOR_TYPES = exports.ONBOARDING_PAGES = exports.PAYMENT_METHOD_STATUS = exports.SELLER_STATUS = exports.EXPERIENCE_LEVELS = exports.CLIENT_TYPES = exports.USER_STATUSES = exports.ROLES = void 0;
3
+ exports.CATEGORIES_MAP = exports.MARKETPLACE_CATEGORIES = exports.ANALYTICS_EVENTS = exports.DEFAULT_DISCIPLINES = exports.API_ROUTES = exports.DISCOUNT_TYPES = exports.PRICING_MODELS = exports.GATEWAY_PROVIDER = exports.COUNTRY_OF_OPERATION = exports.SIGNAL_STATUS = exports.SIGNAL_INTEREST_TYPES = exports.VENTURE_STAGES = exports.NOTIFICATION_TYPES = exports.APPLICATION_STATUS = exports.LINK_TYPES = exports.ACTIVITY_TYPES = exports.POST_BADGE_TYPES = exports.PROJECT_STATUS = exports.MESSAGE_REQUEST_STATUS = exports.PRODUCT_STATUS = exports.JOB_STATUS = exports.WAGES_CURRENCY = exports.GIG_TYPE = exports.MESSAGE_TYPES = exports.JOB_LOCATIONS = exports.JOB_SECTIONS = exports.WAGE_TYPES = exports.JOB_AVAILABILITY_TYPES = exports.EMPLOYMENT_TYPE = exports.WORK_MODE = exports.JOB_TYPE = exports.POST_TYPES = exports.ACTIVITY_PARENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_STATUSES = exports.GEOGRAPHIC_FOCUS = exports.INVESTMENT_SIZES = exports.INVESTOR_TYPES = exports.ONBOARDING_PAGES = exports.PAYMENT_METHOD_STATUS = exports.SELLER_STATUS = exports.EXPERIENCE_LEVELS = exports.CLIENT_TYPES = exports.USER_STATUSES = exports.ROLES = void 0;
4
4
  exports.ROLES = {
5
5
  CREATIVE: "CREATIVE",
6
6
  BRAND: "BRAND",
@@ -485,3 +485,506 @@ exports.ANALYTICS_EVENTS = {
485
485
  EMPTY_STATE_VIEW: "comment_empty_state_view",
486
486
  },
487
487
  };
488
+ exports.MARKETPLACE_CATEGORIES = [
489
+ {
490
+ name: "Templates",
491
+ imgUrl: "https://images.unsplash.com/photo-1581291518857-4e27b48ff24e?auto=format&fit=crop&w=800&q=80",
492
+ },
493
+ {
494
+ name: "Fonts",
495
+ imgUrl: "https://images.unsplash.com/photo-1516054575922-f0b8eeadec1a?auto=format&fit=crop&w=800&q=80",
496
+ },
497
+ {
498
+ name: "Graphics",
499
+ imgUrl: "https://images.unsplash.com/photo-1626785774573-4b799315345d?auto=format&fit=crop&w=800&q=80",
500
+ },
501
+ {
502
+ name: "Photos & Video",
503
+ imgUrl: "https://images.unsplash.com/photo-1516035069371-29a1b244cc32?auto=format&fit=crop&w=800&q=80",
504
+ },
505
+ {
506
+ name: "Audio",
507
+ imgUrl: "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?auto=format&fit=crop&w=800&q=80",
508
+ },
509
+ {
510
+ name: "3D & Motion",
511
+ imgUrl: "https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?auto=format&fit=crop&w=800&q=80",
512
+ },
513
+ {
514
+ name: "Presets & Tools",
515
+ imgUrl: "https://images.unsplash.com/photo-1551269901-5c5e14c25df7?auto=format&fit=crop&w=800&q=80",
516
+ },
517
+ {
518
+ name: "Content & Copy",
519
+ imgUrl: "https://images.unsplash.com/photo-1455390582262-044cdead27d8?auto=format&fit=crop&w=800&q=80",
520
+ },
521
+ {
522
+ name: "Print & Merch",
523
+ imgUrl: "https://images.unsplash.com/photo-1562157873-818bc0726f68?auto=format&fit=crop&w=800&q=80",
524
+ },
525
+ {
526
+ name: "Bundles",
527
+ imgUrl: "https://images.unsplash.com/photo-1607344645866-eea33a4ca4eb?auto=format&fit=crop&w=800&q=80",
528
+ },
529
+ {
530
+ name: "Other",
531
+ imgUrl: "https://images.unsplash.com/photo-1493612276216-ee3925520721?auto=format&fit=crop&w=800&q=80",
532
+ },
533
+ ];
534
+ exports.CATEGORIES_MAP = {
535
+ Templates: [
536
+ "Website Templates",
537
+ "Landing Page Templates",
538
+ "UI Kits",
539
+ "Design Systems",
540
+ "Wireframe Kits",
541
+ "App Templates",
542
+ "SaaS Templates",
543
+ "Portfolio Templates",
544
+ "Blog Templates",
545
+ "E-commerce Templates",
546
+ "Pitch Deck Templates",
547
+ "Presentation Templates",
548
+ "Google Slides Templates",
549
+ "Keynote Templates",
550
+ "PowerPoint Templates",
551
+ "Canva Templates",
552
+ "Email Templates",
553
+ "Newsletter Templates",
554
+ "Mailchimp Templates",
555
+ "Instagram Templates",
556
+ "TikTok Templates",
557
+ "LinkedIn Templates",
558
+ "YouTube Templates",
559
+ "Pinterest Templates",
560
+ "Story Templates",
561
+ "Carousel Templates",
562
+ "Notion Templates",
563
+ "Airtable Templates",
564
+ "Google Sheets Templates",
565
+ "Excel Templates",
566
+ "Project Management Templates",
567
+ "Content Planner Templates",
568
+ "CRM Templates",
569
+ "Device Mockups",
570
+ "Apparel Mockups",
571
+ "Packaging Mockups",
572
+ "Stationery Mockups",
573
+ "Scene Creator Mockups",
574
+ "Flat Lay Mockups",
575
+ "Branding Mockups",
576
+ "Print Mockups",
577
+ ],
578
+ Fonts: [
579
+ "Serif Fonts",
580
+ "Sans-Serif Fonts",
581
+ "Script Fonts",
582
+ "Handwritten Fonts",
583
+ "Display Fonts",
584
+ "Decorative Fonts",
585
+ "Monospace Fonts",
586
+ "Variable Fonts",
587
+ "Multilingual Fonts",
588
+ "Retro & Vintage Fonts",
589
+ "Modern Fonts",
590
+ "Grunge Fonts",
591
+ "Luxury Fonts",
592
+ "Playful Fonts",
593
+ "Bold Fonts",
594
+ "Minimal Fonts",
595
+ "Font Pairs",
596
+ "Font Bundles",
597
+ ],
598
+ Graphics: [
599
+ "Flat Illustrations",
600
+ "Isometric Illustrations",
601
+ "Hand-Drawn Illustrations",
602
+ "Character Illustrations",
603
+ "Line Art",
604
+ "Abstract Illustrations",
605
+ "Botanical Illustrations",
606
+ "Conceptual Illustrations",
607
+ "Editorial Illustrations",
608
+ "Scene Illustrations",
609
+ "Doodle Illustrations",
610
+ "Icon Sets",
611
+ "App Icons",
612
+ "Outline Icons",
613
+ "Filled Icons",
614
+ "3D Icons",
615
+ "Animated Icons",
616
+ "Social Media Icons",
617
+ "Logo Templates",
618
+ "Brand Identity Kits",
619
+ "Monogram Logos",
620
+ "Wordmark Logos",
621
+ "Mascot Logos",
622
+ "Badge Logos",
623
+ "Emblem Logos",
624
+ "Seamless Patterns",
625
+ "Geometric Patterns",
626
+ "Floral Patterns",
627
+ "Abstract Backgrounds",
628
+ "Gradient Backgrounds",
629
+ "Watercolor Backgrounds",
630
+ "Noise & Grain Textures",
631
+ "Grid & Dot Backgrounds",
632
+ "Vector Graphics",
633
+ "SVG Assets",
634
+ "Clip Art",
635
+ "Nature & Botanical Vectors",
636
+ "Business & Finance Vectors",
637
+ "People & Character Vectors",
638
+ "Data Visualization",
639
+ "Timeline Infographics",
640
+ "Process Infographics",
641
+ "Comparison Infographics",
642
+ "Statistical Infographics",
643
+ "Map Infographics",
644
+ ],
645
+ "Photos & Video": [
646
+ "Lifestyle Photos",
647
+ "Business & Corporate Photos",
648
+ "Nature & Landscape Photos",
649
+ "Architecture Photos",
650
+ "Food & Drink Photos",
651
+ "People & Portrait Photos",
652
+ "Travel Photos",
653
+ "Abstract Photos",
654
+ "Tech & Gadget Photos",
655
+ "Fashion Photos",
656
+ "Editorial Photos",
657
+ "Stock Video Footage",
658
+ "Aerial & Drone Footage",
659
+ "Cinematic Footage",
660
+ "Time-Lapse Footage",
661
+ "Slow Motion Footage",
662
+ "Looping Video",
663
+ "Nature Footage",
664
+ "Urban Footage",
665
+ "4K Footage",
666
+ "Vertical Video",
667
+ "Light Leak Overlays",
668
+ "Film Grain Overlays",
669
+ "Bokeh Overlays",
670
+ "Glitch Effects",
671
+ "Smoke & Dust Overlays",
672
+ "Lens Flare Overlays",
673
+ "Cinematic Overlays",
674
+ "GIF Stickers",
675
+ "Animated Backgrounds",
676
+ "Looping GIFs",
677
+ "Emoji Packs",
678
+ "AI-Generated Art",
679
+ "Midjourney Art",
680
+ "AI Portrait Art",
681
+ "AI Landscape Art",
682
+ "Surreal AI Art",
683
+ ],
684
+ Audio: [
685
+ "Royalty-Free Music",
686
+ "Ambient Music",
687
+ "Hip-Hop Tracks",
688
+ "Electronic Music",
689
+ "Lo-Fi Music",
690
+ "Cinematic Music",
691
+ "Acoustic Music",
692
+ "Jazz Tracks",
693
+ "Classical Music",
694
+ "Pop Tracks",
695
+ "R&B Tracks",
696
+ "Gospel Music",
697
+ "Afrobeats",
698
+ "Reggae & Dancehall",
699
+ "Trap Beats",
700
+ "Drill Beats",
701
+ "Boom Bap Beats",
702
+ "Afrobeats Instrumentals",
703
+ "Pop Beats",
704
+ "Exclusive Beats",
705
+ "Leased Beats",
706
+ "Drum Loops",
707
+ "Bass Loops",
708
+ "Melody Loops",
709
+ "Guitar Loops",
710
+ "Vocal Chops",
711
+ "Acapellas",
712
+ "Stem Packs",
713
+ "UI & UX Sounds",
714
+ "Cinematic Sound Effects",
715
+ "Nature Sound Effects",
716
+ "Foley Sound Effects",
717
+ "Game Sound Effects",
718
+ "Cartoon Sound Effects",
719
+ "Notification Sounds",
720
+ "Horror Sound Effects",
721
+ "Voiceovers",
722
+ "Narration",
723
+ "Commercial Voiceovers",
724
+ "Character Voices",
725
+ "Podcast Intros",
726
+ "YouTube Intros",
727
+ "Logo Stings",
728
+ "Ad Jingles",
729
+ "ASMR",
730
+ "White Noise",
731
+ "Rain & Nature Sounds",
732
+ "Study & Focus Sounds",
733
+ "Sleep Sounds",
734
+ "Meditation Audio",
735
+ "Binaural Beats",
736
+ "DAW Templates",
737
+ "Ableton Templates",
738
+ "FL Studio Templates",
739
+ "Logic Pro Templates",
740
+ "VST Presets",
741
+ "Mastering Presets",
742
+ ],
743
+ "3D & Motion": [
744
+ "3D Character Models",
745
+ "3D Product Models",
746
+ "3D Architecture Models",
747
+ "3D Vehicle Models",
748
+ "3D Nature Models",
749
+ "Low Poly Models",
750
+ "High Poly Models",
751
+ "Blender Assets",
752
+ "Cinema 4D Assets",
753
+ "FBX & OBJ Files",
754
+ "GLB & GLTF Files",
755
+ "3D Interior Scenes",
756
+ "3D Exterior Scenes",
757
+ "Fantasy World Environments",
758
+ "Sci-Fi Environments",
759
+ "Game Environments",
760
+ "HDRI Maps",
761
+ "Sky Maps",
762
+ "Studio Setups",
763
+ "Rigged Characters",
764
+ "Animated Characters",
765
+ "Human Characters",
766
+ "Fantasy Characters",
767
+ "Cartoon Characters",
768
+ "Game-Ready Characters",
769
+ "Walk Cycles",
770
+ "After Effects Templates",
771
+ "Premiere Pro Templates",
772
+ "Title Animations",
773
+ "Transitions",
774
+ "Lower Thirds",
775
+ "Particle Effects",
776
+ "Kinetic Typography",
777
+ "Explainer Animations",
778
+ "Sprite Sheets",
779
+ "Tilemaps",
780
+ "UI Packs",
781
+ "Pixel Art",
782
+ "Unity Assets",
783
+ "Unreal Engine Assets",
784
+ "Godot Assets",
785
+ "AR Filters",
786
+ "Instagram Filters",
787
+ "Spark AR Assets",
788
+ "VR Environments",
789
+ "WebXR Assets",
790
+ "3D Font Effects",
791
+ "Neon Text Effects",
792
+ "Metallic Text Effects",
793
+ "Retro 3D Text",
794
+ "Animated 3D Text",
795
+ ],
796
+ "Presets & Tools": [
797
+ "Lightroom Presets",
798
+ "Portrait Presets",
799
+ "Landscape Presets",
800
+ "Cinematic Presets",
801
+ "Moody Presets",
802
+ "Vintage Presets",
803
+ "Film Presets",
804
+ "Bright & Airy Presets",
805
+ "Dark & Gritty Presets",
806
+ "Mobile Lightroom Presets",
807
+ "Photoshop Actions",
808
+ "Photoshop Brushes",
809
+ "Photo Retouching Actions",
810
+ "Photo Effect Actions",
811
+ "Texture Actions",
812
+ "Double Exposure Actions",
813
+ "Colour Grading Actions",
814
+ "LUTs",
815
+ "Cinematic LUTs",
816
+ "Film Emulation LUTs",
817
+ "Drone LUTs",
818
+ "DaVinci Resolve Presets",
819
+ "Premiere Pro Presets",
820
+ "Procreate Brushes",
821
+ "Procreate Lettering Brushes",
822
+ "Procreate Watercolour Brushes",
823
+ "Procreate Inking Brushes",
824
+ "Procreate Texture Brushes",
825
+ "Procreate Stamp Sets",
826
+ "Figma UI Kits",
827
+ "Figma Component Libraries",
828
+ "Figma Plugins",
829
+ "Figma Wireframe Kits",
830
+ "Figma Flow Kits",
831
+ "Figma Variable Sets",
832
+ "Midjourney Prompt Packs",
833
+ "ChatGPT Prompt Packs",
834
+ "Stable Diffusion Prompts",
835
+ "DALL-E Prompt Packs",
836
+ "AI Marketing Prompts",
837
+ "AI Business Prompts",
838
+ "AI Writing Prompts",
839
+ "AI Image Generation Prompts",
840
+ ],
841
+ "Content & Copy": [
842
+ "Homepage Copy",
843
+ "Landing Page Copy",
844
+ "About Page Copy",
845
+ "Product Page Copy",
846
+ "SaaS Website Copy",
847
+ "Agency Website Copy",
848
+ "FAQ Copy",
849
+ "SEO Copy",
850
+ "Facebook Ad Copy",
851
+ "Google Ad Copy",
852
+ "Sales Page Copy",
853
+ "Product Descriptions",
854
+ "Taglines & Slogans",
855
+ "CTA Copy",
856
+ "Email Subject Lines",
857
+ "Welcome Email Sequences",
858
+ "Nurture Sequences",
859
+ "Sales Funnel Sequences",
860
+ "Abandoned Cart Sequences",
861
+ "Re-engagement Sequences",
862
+ "Onboarding Sequences",
863
+ "Cold Outreach Templates",
864
+ "Instagram Captions",
865
+ "LinkedIn Captions",
866
+ "Twitter/X Captions",
867
+ "TikTok Captions",
868
+ "Hashtag Packs",
869
+ "Content Calendar Templates",
870
+ "YouTube Scripts",
871
+ "TikTok Scripts",
872
+ "Podcast Scripts",
873
+ "VSL Scripts",
874
+ "Webinar Scripts",
875
+ "Ad Scripts",
876
+ "Explainer Scripts",
877
+ "Blog Post Templates",
878
+ "SEO Article Templates",
879
+ "Case Study Templates",
880
+ "Thought Leadership Templates",
881
+ "eBooks",
882
+ "Lead Magnets",
883
+ "Workbooks",
884
+ "White Papers",
885
+ "Industry Reports",
886
+ "Business Proposals",
887
+ "Contract Templates",
888
+ "Press Releases",
889
+ "Business Plans",
890
+ "Pitch Deck Copy",
891
+ "Cover Letters",
892
+ "Resumes & CVs",
893
+ "Bios & About Me",
894
+ "Fiction Templates",
895
+ "Screenplay Templates",
896
+ "Song Lyric Templates",
897
+ "Poetry Templates",
898
+ ],
899
+ "Print & Merch": [
900
+ "Abstract Wall Art",
901
+ "Botanical Wall Art",
902
+ "Portrait Wall Art",
903
+ "Typography Wall Art",
904
+ "Landscape Wall Art",
905
+ "Minimalist Wall Art",
906
+ "Boho Wall Art",
907
+ "Gallery Wall Sets",
908
+ "Black & White Prints",
909
+ "Event Posters",
910
+ "Concert Posters",
911
+ "Party Flyers",
912
+ "Retro Posters",
913
+ "Vintage Posters",
914
+ "Movie-Style Posters",
915
+ "A4 Templates",
916
+ "A3 Templates",
917
+ "US Letter Templates",
918
+ "Portrait Art",
919
+ "Fantasy Art",
920
+ "Realism Art",
921
+ "Surrealism Art",
922
+ "Watercolour Art",
923
+ "Oil Style Art",
924
+ "Concept Art",
925
+ "Business Cards",
926
+ "Letterheads",
927
+ "Greeting Cards",
928
+ "Wedding Invitations",
929
+ "Event Invitations",
930
+ "Thank You Cards",
931
+ "Notebook Covers",
932
+ "T-Shirt Designs",
933
+ "Hoodie Designs",
934
+ "Hat Designs",
935
+ "Tote Bag Designs",
936
+ "Mug Designs",
937
+ "Phone Case Designs",
938
+ "Sticker Designs",
939
+ "Print-On-Demand Designs",
940
+ "Embroidery Designs",
941
+ "Box Designs",
942
+ "Label Designs",
943
+ "Bag Designs",
944
+ "Bottle Designs",
945
+ "Pouch Designs",
946
+ "Food & Beverage Packaging",
947
+ "Cosmetics Packaging",
948
+ "Dieline Templates",
949
+ "Daily Planner Inserts",
950
+ "Weekly Planner Inserts",
951
+ "Monthly Planner Inserts",
952
+ "Habit Trackers",
953
+ "Gratitude Journals",
954
+ "Goal Setting Sheets",
955
+ "Budget Planners",
956
+ "Fabric Print Designs",
957
+ "Wallpaper Designs",
958
+ "Wrapping Paper Designs",
959
+ "Repeat Pattern Designs",
960
+ "CMYK Print-Ready Files",
961
+ ],
962
+ Bundles: [
963
+ "Design Bundles",
964
+ "Font Bundles",
965
+ "Illustration Bundles",
966
+ "Icon Bundles",
967
+ "Template Bundles",
968
+ "Mockup Bundles",
969
+ "Photo Bundles",
970
+ "Video Bundles",
971
+ "Audio Bundles",
972
+ "Preset Bundles",
973
+ "Procreate Bundles",
974
+ "Notion Bundles",
975
+ "Social Media Bundles",
976
+ "Branding Bundles",
977
+ "Print Bundles",
978
+ "Creator Packs",
979
+ "Starter Kits",
980
+ "Seasonal & Limited Edition",
981
+ ],
982
+ Other: [
983
+ "Miscellaneous",
984
+ "Consulting & Services",
985
+ "Custom Commissions",
986
+ "Memberships & Subscriptions",
987
+ "Gift Cards",
988
+ "Uncategorized",
989
+ ],
990
+ };
@@ -295,7 +295,7 @@ export declare const ProductSearchDocumentSchema: z.ZodObject<{
295
295
  category: z.ZodString;
296
296
  subcategory: z.ZodNullable<z.ZodString>;
297
297
  tags: z.ZodArray<z.ZodString>;
298
- thumbnailImgUrl: z.ZodNullable<z.ZodString>;
298
+ thumbnailImgUrl: z.ZodNullable<z.ZodURL>;
299
299
  currency: z.ZodEnum<{
300
300
  readonly USD: "USD (United States Dollar)";
301
301
  readonly EUR: "EUR (Euro)";
@@ -314,8 +314,122 @@ export declare const ProductSearchDocumentSchema: z.ZodObject<{
314
314
  updatedAt: z.ZodCoercedDate<unknown>;
315
315
  deletedAt: z.ZodNullable<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
316
316
  }, z.core.$strip>;
317
+ export declare const SearchProductInputSchema: z.ZodObject<{
318
+ queryString: z.ZodOptional<z.ZodString>;
319
+ cursor: z.ZodOptional<z.ZodString>;
320
+ limit: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
321
+ filters: z.ZodOptional<z.ZodArray<z.ZodString>>;
322
+ category: z.ZodOptional<z.ZodString>;
323
+ subcategory: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$strip>;
325
+ export declare const SearchProductOutputSchema: z.ZodObject<{
326
+ products: z.ZodArray<z.ZodObject<{
327
+ id: z.ZodCUID2;
328
+ sellerId: z.ZodCUID2;
329
+ sellerUsername: z.ZodString;
330
+ sellerName: z.ZodString;
331
+ sellerImageUrl: z.ZodNullable<z.ZodString>;
332
+ title: z.ZodString;
333
+ category: z.ZodString;
334
+ subcategory: z.ZodNullable<z.ZodString>;
335
+ tags: z.ZodArray<z.ZodString>;
336
+ thumbnailImgUrl: z.ZodNullable<z.ZodURL>;
337
+ currency: z.ZodEnum<{
338
+ readonly USD: "USD (United States Dollar)";
339
+ readonly EUR: "EUR (Euro)";
340
+ readonly GBP: "GBP (British Pound Sterling)";
341
+ readonly NGN: "NGN (Nigerian Naira)";
342
+ readonly CAD: "CAD (Canadian Dollar)";
343
+ readonly AUD: "AUD (Australian Dollar)";
344
+ readonly JPY: "JPY (Japanese Yen)";
345
+ readonly CHF: "CHF (Swiss Franc)";
346
+ readonly INR: "INR (Indian Rupee)";
347
+ readonly ZAR: "ZAR (South African Rand)";
348
+ }>;
349
+ price: z.ZodNullable<z.ZodNumber>;
350
+ suggestedPrice: z.ZodNullable<z.ZodNumber>;
351
+ createdAt: z.ZodCoercedDate<unknown>;
352
+ updatedAt: z.ZodCoercedDate<unknown>;
353
+ deletedAt: z.ZodNullable<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
354
+ }, z.core.$strip>>;
355
+ nextCursor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
356
+ }, z.core.$strip>;
357
+ export declare const MarketplaceCategorySchema: z.ZodObject<{
358
+ name: z.ZodString;
359
+ imgUrl: z.ZodString;
360
+ subcategories: z.ZodArray<z.ZodString>;
361
+ }, z.core.$strip>;
362
+ export declare const GetMarketplaceInfoOutputSchema: z.ZodObject<{
363
+ categories: z.ZodArray<z.ZodObject<{
364
+ name: z.ZodString;
365
+ imgUrl: z.ZodString;
366
+ subcategories: z.ZodArray<z.ZodString>;
367
+ }, z.core.$strip>>;
368
+ whatsHot: z.ZodArray<z.ZodObject<{
369
+ id: z.ZodCUID2;
370
+ sellerId: z.ZodCUID2;
371
+ sellerUsername: z.ZodString;
372
+ sellerName: z.ZodString;
373
+ sellerImageUrl: z.ZodNullable<z.ZodString>;
374
+ title: z.ZodString;
375
+ category: z.ZodString;
376
+ subcategory: z.ZodNullable<z.ZodString>;
377
+ tags: z.ZodArray<z.ZodString>;
378
+ thumbnailImgUrl: z.ZodNullable<z.ZodURL>;
379
+ currency: z.ZodEnum<{
380
+ readonly USD: "USD (United States Dollar)";
381
+ readonly EUR: "EUR (Euro)";
382
+ readonly GBP: "GBP (British Pound Sterling)";
383
+ readonly NGN: "NGN (Nigerian Naira)";
384
+ readonly CAD: "CAD (Canadian Dollar)";
385
+ readonly AUD: "AUD (Australian Dollar)";
386
+ readonly JPY: "JPY (Japanese Yen)";
387
+ readonly CHF: "CHF (Swiss Franc)";
388
+ readonly INR: "INR (Indian Rupee)";
389
+ readonly ZAR: "ZAR (South African Rand)";
390
+ }>;
391
+ price: z.ZodNullable<z.ZodNumber>;
392
+ suggestedPrice: z.ZodNullable<z.ZodNumber>;
393
+ createdAt: z.ZodCoercedDate<unknown>;
394
+ updatedAt: z.ZodCoercedDate<unknown>;
395
+ deletedAt: z.ZodNullable<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
396
+ }, z.core.$strip>>;
397
+ communityFavourites: z.ZodArray<z.ZodObject<{
398
+ id: z.ZodCUID2;
399
+ sellerId: z.ZodCUID2;
400
+ sellerUsername: z.ZodString;
401
+ sellerName: z.ZodString;
402
+ sellerImageUrl: z.ZodNullable<z.ZodString>;
403
+ title: z.ZodString;
404
+ category: z.ZodString;
405
+ subcategory: z.ZodNullable<z.ZodString>;
406
+ tags: z.ZodArray<z.ZodString>;
407
+ thumbnailImgUrl: z.ZodNullable<z.ZodURL>;
408
+ currency: z.ZodEnum<{
409
+ readonly USD: "USD (United States Dollar)";
410
+ readonly EUR: "EUR (Euro)";
411
+ readonly GBP: "GBP (British Pound Sterling)";
412
+ readonly NGN: "NGN (Nigerian Naira)";
413
+ readonly CAD: "CAD (Canadian Dollar)";
414
+ readonly AUD: "AUD (Australian Dollar)";
415
+ readonly JPY: "JPY (Japanese Yen)";
416
+ readonly CHF: "CHF (Swiss Franc)";
417
+ readonly INR: "INR (Indian Rupee)";
418
+ readonly ZAR: "ZAR (South African Rand)";
419
+ }>;
420
+ price: z.ZodNullable<z.ZodNumber>;
421
+ suggestedPrice: z.ZodNullable<z.ZodNumber>;
422
+ createdAt: z.ZodCoercedDate<unknown>;
423
+ updatedAt: z.ZodCoercedDate<unknown>;
424
+ deletedAt: z.ZodNullable<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
425
+ }, z.core.$strip>>;
426
+ }, z.core.$strip>;
427
+ export type SearchProductInput = z.infer<typeof SearchProductInputSchema>;
428
+ export type SearchProductOutput = z.infer<typeof SearchProductOutputSchema>;
317
429
  export type CoverImageInput = z.infer<typeof CoverImageInputSchema>;
318
430
  export type DeliveryFileInput = z.infer<typeof DeliveryFileInputSchema>;
431
+ export type MarketplaceCategoryOutput = z.infer<typeof MarketplaceCategorySchema>;
432
+ export type GetMarketplaceInfoOutput = z.infer<typeof GetMarketplaceInfoOutputSchema>;
319
433
  export type ProductCoverImageEntity = z.infer<typeof ProductCoverImageEntitySchema>;
320
434
  export type ProductDeliveryFileEntity = z.infer<typeof ProductDeliveryFileEntitySchema>;
321
435
  export type ProductDiscountEntity = z.infer<typeof ProductDiscountEntitySchema>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProductSearchDocumentSchema = exports.ProductEntitySchema = exports.UpdateProductInputSchema = exports.ProductServiceAndComplianceInputSchema = exports.CreateProductInputSchema = exports.BaseProductSchema = exports.ProductLinkSchema = exports.ProductDiscountEntitySchema = exports.ProductDeliveryFileEntitySchema = exports.ProductCoverImageEntitySchema = exports.DeliveryFileInputSchema = exports.CoverImageInputSchema = void 0;
3
+ exports.GetMarketplaceInfoOutputSchema = exports.MarketplaceCategorySchema = exports.SearchProductOutputSchema = exports.SearchProductInputSchema = exports.ProductSearchDocumentSchema = exports.ProductEntitySchema = exports.UpdateProductInputSchema = exports.ProductServiceAndComplianceInputSchema = exports.CreateProductInputSchema = exports.BaseProductSchema = exports.ProductLinkSchema = exports.ProductDiscountEntitySchema = exports.ProductDeliveryFileEntitySchema = exports.ProductCoverImageEntitySchema = exports.DeliveryFileInputSchema = exports.CoverImageInputSchema = void 0;
4
4
  const zod_openapi_1 = require("@hono/zod-openapi");
5
5
  const constants_1 = require("../constants");
6
6
  exports.CoverImageInputSchema = zod_openapi_1.z.object({
@@ -187,7 +187,9 @@ exports.ProductEntitySchema = zod_openapi_1.z
187
187
  coverImages: zod_openapi_1.z
188
188
  .array(exports.ProductCoverImageEntitySchema.extend({ url: zod_openapi_1.z.url() }))
189
189
  .default([]),
190
- productFiles: zod_openapi_1.z.array(exports.ProductDeliveryFileEntitySchema.extend({ url: zod_openapi_1.z.url() })).default([]),
190
+ productFiles: zod_openapi_1.z
191
+ .array(exports.ProductDeliveryFileEntitySchema.extend({ url: zod_openapi_1.z.url() }))
192
+ .default([]),
191
193
  productLinks: zod_openapi_1.z.array(zod_openapi_1.z.url()).default([]),
192
194
  pricingModel: zod_openapi_1.z.enum(constants_1.PRICING_MODELS),
193
195
  currency: zod_openapi_1.z.enum(constants_1.WAGES_CURRENCY),
@@ -211,7 +213,7 @@ exports.ProductSearchDocumentSchema = zod_openapi_1.z.object({
211
213
  category: zod_openapi_1.z.string(),
212
214
  subcategory: zod_openapi_1.z.string().nullable(),
213
215
  tags: zod_openapi_1.z.array(zod_openapi_1.z.string()),
214
- thumbnailImgUrl: zod_openapi_1.z.string().url().nullable(),
216
+ thumbnailImgUrl: zod_openapi_1.z.url().nullable(),
215
217
  currency: zod_openapi_1.z.enum(constants_1.WAGES_CURRENCY),
216
218
  price: zod_openapi_1.z.number().nullable(),
217
219
  suggestedPrice: zod_openapi_1.z.number().nullable(),
@@ -219,3 +221,29 @@ exports.ProductSearchDocumentSchema = zod_openapi_1.z.object({
219
221
  updatedAt: zod_openapi_1.z.coerce.date(),
220
222
  deletedAt: zod_openapi_1.z.coerce.date().optional().nullable(),
221
223
  });
224
+ exports.SearchProductInputSchema = zod_openapi_1.z.object({
225
+ queryString: zod_openapi_1.z
226
+ .string()
227
+ .max(200, { message: "Search string cannot exceed 200 characters" })
228
+ .optional()
229
+ .openapi({ example: "typescript utility types" }),
230
+ cursor: zod_openapi_1.z.string().optional().openapi({ example: "ckj1a2b3c0000cur" }),
231
+ limit: zod_openapi_1.z.coerce.number().int().min(1).max(100).optional().default(30),
232
+ filters: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
233
+ category: zod_openapi_1.z.string().optional(),
234
+ subcategory: zod_openapi_1.z.string().optional(),
235
+ });
236
+ exports.SearchProductOutputSchema = zod_openapi_1.z.object({
237
+ products: zod_openapi_1.z.array(exports.ProductSearchDocumentSchema),
238
+ nextCursor: zod_openapi_1.z.string().optional().nullable(),
239
+ });
240
+ exports.MarketplaceCategorySchema = zod_openapi_1.z.object({
241
+ name: zod_openapi_1.z.string(),
242
+ imgUrl: zod_openapi_1.z.string().url(),
243
+ subcategories: zod_openapi_1.z.array(zod_openapi_1.z.string()),
244
+ });
245
+ exports.GetMarketplaceInfoOutputSchema = zod_openapi_1.z.object({
246
+ categories: zod_openapi_1.z.array(exports.MarketplaceCategorySchema),
247
+ whatsHot: zod_openapi_1.z.array(exports.ProductSearchDocumentSchema),
248
+ communityFavourites: zod_openapi_1.z.array(exports.ProductSearchDocumentSchema),
249
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zyacreatives/shared",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/constants.ts CHANGED
@@ -589,3 +589,524 @@ export const ANALYTICS_EVENTS = {
589
589
  EMPTY_STATE_VIEW: "comment_empty_state_view",
590
590
  },
591
591
  } as const;
592
+
593
+ export type MarketplaceCategory = {
594
+ name: string;
595
+ imgUrl: string;
596
+ };
597
+
598
+ export const MARKETPLACE_CATEGORIES: MarketplaceCategory[] = [
599
+ {
600
+ name: "Templates",
601
+ imgUrl:
602
+ "https://images.unsplash.com/photo-1581291518857-4e27b48ff24e?auto=format&fit=crop&w=800&q=80",
603
+ },
604
+ {
605
+ name: "Fonts",
606
+ imgUrl:
607
+ "https://images.unsplash.com/photo-1516054575922-f0b8eeadec1a?auto=format&fit=crop&w=800&q=80",
608
+ },
609
+ {
610
+ name: "Graphics",
611
+ imgUrl:
612
+ "https://images.unsplash.com/photo-1626785774573-4b799315345d?auto=format&fit=crop&w=800&q=80",
613
+ },
614
+ {
615
+ name: "Photos & Video",
616
+ imgUrl:
617
+ "https://images.unsplash.com/photo-1516035069371-29a1b244cc32?auto=format&fit=crop&w=800&q=80",
618
+ },
619
+ {
620
+ name: "Audio",
621
+ imgUrl:
622
+ "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?auto=format&fit=crop&w=800&q=80",
623
+ },
624
+ {
625
+ name: "3D & Motion",
626
+ imgUrl:
627
+ "https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?auto=format&fit=crop&w=800&q=80",
628
+ },
629
+ {
630
+ name: "Presets & Tools",
631
+ imgUrl:
632
+ "https://images.unsplash.com/photo-1551269901-5c5e14c25df7?auto=format&fit=crop&w=800&q=80",
633
+ },
634
+ {
635
+ name: "Content & Copy",
636
+ imgUrl:
637
+ "https://images.unsplash.com/photo-1455390582262-044cdead27d8?auto=format&fit=crop&w=800&q=80",
638
+ },
639
+ {
640
+ name: "Print & Merch",
641
+ imgUrl:
642
+ "https://images.unsplash.com/photo-1562157873-818bc0726f68?auto=format&fit=crop&w=800&q=80",
643
+ },
644
+ {
645
+ name: "Bundles",
646
+ imgUrl:
647
+ "https://images.unsplash.com/photo-1607344645866-eea33a4ca4eb?auto=format&fit=crop&w=800&q=80",
648
+ },
649
+ {
650
+ name: "Other",
651
+ imgUrl:
652
+ "https://images.unsplash.com/photo-1493612276216-ee3925520721?auto=format&fit=crop&w=800&q=80",
653
+ },
654
+ ];
655
+
656
+ export const CATEGORIES_MAP: Record<string, string[]> = {
657
+ Templates: [
658
+ "Website Templates",
659
+ "Landing Page Templates",
660
+ "UI Kits",
661
+ "Design Systems",
662
+ "Wireframe Kits",
663
+ "App Templates",
664
+ "SaaS Templates",
665
+ "Portfolio Templates",
666
+ "Blog Templates",
667
+ "E-commerce Templates",
668
+ "Pitch Deck Templates",
669
+ "Presentation Templates",
670
+ "Google Slides Templates",
671
+ "Keynote Templates",
672
+ "PowerPoint Templates",
673
+ "Canva Templates",
674
+ "Email Templates",
675
+ "Newsletter Templates",
676
+ "Mailchimp Templates",
677
+ "Instagram Templates",
678
+ "TikTok Templates",
679
+ "LinkedIn Templates",
680
+ "YouTube Templates",
681
+ "Pinterest Templates",
682
+ "Story Templates",
683
+ "Carousel Templates",
684
+ "Notion Templates",
685
+ "Airtable Templates",
686
+ "Google Sheets Templates",
687
+ "Excel Templates",
688
+ "Project Management Templates",
689
+ "Content Planner Templates",
690
+ "CRM Templates",
691
+ "Device Mockups",
692
+ "Apparel Mockups",
693
+ "Packaging Mockups",
694
+ "Stationery Mockups",
695
+ "Scene Creator Mockups",
696
+ "Flat Lay Mockups",
697
+ "Branding Mockups",
698
+ "Print Mockups",
699
+ ],
700
+ Fonts: [
701
+ "Serif Fonts",
702
+ "Sans-Serif Fonts",
703
+ "Script Fonts",
704
+ "Handwritten Fonts",
705
+ "Display Fonts",
706
+ "Decorative Fonts",
707
+ "Monospace Fonts",
708
+ "Variable Fonts",
709
+ "Multilingual Fonts",
710
+ "Retro & Vintage Fonts",
711
+ "Modern Fonts",
712
+ "Grunge Fonts",
713
+ "Luxury Fonts",
714
+ "Playful Fonts",
715
+ "Bold Fonts",
716
+ "Minimal Fonts",
717
+ "Font Pairs",
718
+ "Font Bundles",
719
+ ],
720
+ Graphics: [
721
+ "Flat Illustrations",
722
+ "Isometric Illustrations",
723
+ "Hand-Drawn Illustrations",
724
+ "Character Illustrations",
725
+ "Line Art",
726
+ "Abstract Illustrations",
727
+ "Botanical Illustrations",
728
+ "Conceptual Illustrations",
729
+ "Editorial Illustrations",
730
+ "Scene Illustrations",
731
+ "Doodle Illustrations",
732
+ "Icon Sets",
733
+ "App Icons",
734
+ "Outline Icons",
735
+ "Filled Icons",
736
+ "3D Icons",
737
+ "Animated Icons",
738
+ "Social Media Icons",
739
+ "Logo Templates",
740
+ "Brand Identity Kits",
741
+ "Monogram Logos",
742
+ "Wordmark Logos",
743
+ "Mascot Logos",
744
+ "Badge Logos",
745
+ "Emblem Logos",
746
+ "Seamless Patterns",
747
+ "Geometric Patterns",
748
+ "Floral Patterns",
749
+ "Abstract Backgrounds",
750
+ "Gradient Backgrounds",
751
+ "Watercolor Backgrounds",
752
+ "Noise & Grain Textures",
753
+ "Grid & Dot Backgrounds",
754
+ "Vector Graphics",
755
+ "SVG Assets",
756
+ "Clip Art",
757
+ "Nature & Botanical Vectors",
758
+ "Business & Finance Vectors",
759
+ "People & Character Vectors",
760
+ "Data Visualization",
761
+ "Timeline Infographics",
762
+ "Process Infographics",
763
+ "Comparison Infographics",
764
+ "Statistical Infographics",
765
+ "Map Infographics",
766
+ ],
767
+ "Photos & Video": [
768
+ "Lifestyle Photos",
769
+ "Business & Corporate Photos",
770
+ "Nature & Landscape Photos",
771
+ "Architecture Photos",
772
+ "Food & Drink Photos",
773
+ "People & Portrait Photos",
774
+ "Travel Photos",
775
+ "Abstract Photos",
776
+ "Tech & Gadget Photos",
777
+ "Fashion Photos",
778
+ "Editorial Photos",
779
+ "Stock Video Footage",
780
+ "Aerial & Drone Footage",
781
+ "Cinematic Footage",
782
+ "Time-Lapse Footage",
783
+ "Slow Motion Footage",
784
+ "Looping Video",
785
+ "Nature Footage",
786
+ "Urban Footage",
787
+ "4K Footage",
788
+ "Vertical Video",
789
+ "Light Leak Overlays",
790
+ "Film Grain Overlays",
791
+ "Bokeh Overlays",
792
+ "Glitch Effects",
793
+ "Smoke & Dust Overlays",
794
+ "Lens Flare Overlays",
795
+ "Cinematic Overlays",
796
+ "GIF Stickers",
797
+ "Animated Backgrounds",
798
+ "Looping GIFs",
799
+ "Emoji Packs",
800
+ "AI-Generated Art",
801
+ "Midjourney Art",
802
+ "AI Portrait Art",
803
+ "AI Landscape Art",
804
+ "Surreal AI Art",
805
+ ],
806
+ Audio: [
807
+ "Royalty-Free Music",
808
+ "Ambient Music",
809
+ "Hip-Hop Tracks",
810
+ "Electronic Music",
811
+ "Lo-Fi Music",
812
+ "Cinematic Music",
813
+ "Acoustic Music",
814
+ "Jazz Tracks",
815
+ "Classical Music",
816
+ "Pop Tracks",
817
+ "R&B Tracks",
818
+ "Gospel Music",
819
+ "Afrobeats",
820
+ "Reggae & Dancehall",
821
+ "Trap Beats",
822
+ "Drill Beats",
823
+ "Boom Bap Beats",
824
+ "Afrobeats Instrumentals",
825
+ "Pop Beats",
826
+ "Exclusive Beats",
827
+ "Leased Beats",
828
+ "Drum Loops",
829
+ "Bass Loops",
830
+ "Melody Loops",
831
+ "Guitar Loops",
832
+ "Vocal Chops",
833
+ "Acapellas",
834
+ "Stem Packs",
835
+ "UI & UX Sounds",
836
+ "Cinematic Sound Effects",
837
+ "Nature Sound Effects",
838
+ "Foley Sound Effects",
839
+ "Game Sound Effects",
840
+ "Cartoon Sound Effects",
841
+ "Notification Sounds",
842
+ "Horror Sound Effects",
843
+ "Voiceovers",
844
+ "Narration",
845
+ "Commercial Voiceovers",
846
+ "Character Voices",
847
+ "Podcast Intros",
848
+ "YouTube Intros",
849
+ "Logo Stings",
850
+ "Ad Jingles",
851
+ "ASMR",
852
+ "White Noise",
853
+ "Rain & Nature Sounds",
854
+ "Study & Focus Sounds",
855
+ "Sleep Sounds",
856
+ "Meditation Audio",
857
+ "Binaural Beats",
858
+ "DAW Templates",
859
+ "Ableton Templates",
860
+ "FL Studio Templates",
861
+ "Logic Pro Templates",
862
+ "VST Presets",
863
+ "Mastering Presets",
864
+ ],
865
+ "3D & Motion": [
866
+ "3D Character Models",
867
+ "3D Product Models",
868
+ "3D Architecture Models",
869
+ "3D Vehicle Models",
870
+ "3D Nature Models",
871
+ "Low Poly Models",
872
+ "High Poly Models",
873
+ "Blender Assets",
874
+ "Cinema 4D Assets",
875
+ "FBX & OBJ Files",
876
+ "GLB & GLTF Files",
877
+ "3D Interior Scenes",
878
+ "3D Exterior Scenes",
879
+ "Fantasy World Environments",
880
+ "Sci-Fi Environments",
881
+ "Game Environments",
882
+ "HDRI Maps",
883
+ "Sky Maps",
884
+ "Studio Setups",
885
+ "Rigged Characters",
886
+ "Animated Characters",
887
+ "Human Characters",
888
+ "Fantasy Characters",
889
+ "Cartoon Characters",
890
+ "Game-Ready Characters",
891
+ "Walk Cycles",
892
+ "After Effects Templates",
893
+ "Premiere Pro Templates",
894
+ "Title Animations",
895
+ "Transitions",
896
+ "Lower Thirds",
897
+ "Particle Effects",
898
+ "Kinetic Typography",
899
+ "Explainer Animations",
900
+ "Sprite Sheets",
901
+ "Tilemaps",
902
+ "UI Packs",
903
+ "Pixel Art",
904
+ "Unity Assets",
905
+ "Unreal Engine Assets",
906
+ "Godot Assets",
907
+ "AR Filters",
908
+ "Instagram Filters",
909
+ "Spark AR Assets",
910
+ "VR Environments",
911
+ "WebXR Assets",
912
+ "3D Font Effects",
913
+ "Neon Text Effects",
914
+ "Metallic Text Effects",
915
+ "Retro 3D Text",
916
+ "Animated 3D Text",
917
+ ],
918
+ "Presets & Tools": [
919
+ "Lightroom Presets",
920
+ "Portrait Presets",
921
+ "Landscape Presets",
922
+ "Cinematic Presets",
923
+ "Moody Presets",
924
+ "Vintage Presets",
925
+ "Film Presets",
926
+ "Bright & Airy Presets",
927
+ "Dark & Gritty Presets",
928
+ "Mobile Lightroom Presets",
929
+ "Photoshop Actions",
930
+ "Photoshop Brushes",
931
+ "Photo Retouching Actions",
932
+ "Photo Effect Actions",
933
+ "Texture Actions",
934
+ "Double Exposure Actions",
935
+ "Colour Grading Actions",
936
+ "LUTs",
937
+ "Cinematic LUTs",
938
+ "Film Emulation LUTs",
939
+ "Drone LUTs",
940
+ "DaVinci Resolve Presets",
941
+ "Premiere Pro Presets",
942
+ "Procreate Brushes",
943
+ "Procreate Lettering Brushes",
944
+ "Procreate Watercolour Brushes",
945
+ "Procreate Inking Brushes",
946
+ "Procreate Texture Brushes",
947
+ "Procreate Stamp Sets",
948
+ "Figma UI Kits",
949
+ "Figma Component Libraries",
950
+ "Figma Plugins",
951
+ "Figma Wireframe Kits",
952
+ "Figma Flow Kits",
953
+ "Figma Variable Sets",
954
+ "Midjourney Prompt Packs",
955
+ "ChatGPT Prompt Packs",
956
+ "Stable Diffusion Prompts",
957
+ "DALL-E Prompt Packs",
958
+ "AI Marketing Prompts",
959
+ "AI Business Prompts",
960
+ "AI Writing Prompts",
961
+ "AI Image Generation Prompts",
962
+ ],
963
+ "Content & Copy": [
964
+ "Homepage Copy",
965
+ "Landing Page Copy",
966
+ "About Page Copy",
967
+ "Product Page Copy",
968
+ "SaaS Website Copy",
969
+ "Agency Website Copy",
970
+ "FAQ Copy",
971
+ "SEO Copy",
972
+ "Facebook Ad Copy",
973
+ "Google Ad Copy",
974
+ "Sales Page Copy",
975
+ "Product Descriptions",
976
+ "Taglines & Slogans",
977
+ "CTA Copy",
978
+ "Email Subject Lines",
979
+ "Welcome Email Sequences",
980
+ "Nurture Sequences",
981
+ "Sales Funnel Sequences",
982
+ "Abandoned Cart Sequences",
983
+ "Re-engagement Sequences",
984
+ "Onboarding Sequences",
985
+ "Cold Outreach Templates",
986
+ "Instagram Captions",
987
+ "LinkedIn Captions",
988
+ "Twitter/X Captions",
989
+ "TikTok Captions",
990
+ "Hashtag Packs",
991
+ "Content Calendar Templates",
992
+ "YouTube Scripts",
993
+ "TikTok Scripts",
994
+ "Podcast Scripts",
995
+ "VSL Scripts",
996
+ "Webinar Scripts",
997
+ "Ad Scripts",
998
+ "Explainer Scripts",
999
+ "Blog Post Templates",
1000
+ "SEO Article Templates",
1001
+ "Case Study Templates",
1002
+ "Thought Leadership Templates",
1003
+ "eBooks",
1004
+ "Lead Magnets",
1005
+ "Workbooks",
1006
+ "White Papers",
1007
+ "Industry Reports",
1008
+ "Business Proposals",
1009
+ "Contract Templates",
1010
+ "Press Releases",
1011
+ "Business Plans",
1012
+ "Pitch Deck Copy",
1013
+ "Cover Letters",
1014
+ "Resumes & CVs",
1015
+ "Bios & About Me",
1016
+ "Fiction Templates",
1017
+ "Screenplay Templates",
1018
+ "Song Lyric Templates",
1019
+ "Poetry Templates",
1020
+ ],
1021
+ "Print & Merch": [
1022
+ "Abstract Wall Art",
1023
+ "Botanical Wall Art",
1024
+ "Portrait Wall Art",
1025
+ "Typography Wall Art",
1026
+ "Landscape Wall Art",
1027
+ "Minimalist Wall Art",
1028
+ "Boho Wall Art",
1029
+ "Gallery Wall Sets",
1030
+ "Black & White Prints",
1031
+ "Event Posters",
1032
+ "Concert Posters",
1033
+ "Party Flyers",
1034
+ "Retro Posters",
1035
+ "Vintage Posters",
1036
+ "Movie-Style Posters",
1037
+ "A4 Templates",
1038
+ "A3 Templates",
1039
+ "US Letter Templates",
1040
+ "Portrait Art",
1041
+ "Fantasy Art",
1042
+ "Realism Art",
1043
+ "Surrealism Art",
1044
+ "Watercolour Art",
1045
+ "Oil Style Art",
1046
+ "Concept Art",
1047
+ "Business Cards",
1048
+ "Letterheads",
1049
+ "Greeting Cards",
1050
+ "Wedding Invitations",
1051
+ "Event Invitations",
1052
+ "Thank You Cards",
1053
+ "Notebook Covers",
1054
+ "T-Shirt Designs",
1055
+ "Hoodie Designs",
1056
+ "Hat Designs",
1057
+ "Tote Bag Designs",
1058
+ "Mug Designs",
1059
+ "Phone Case Designs",
1060
+ "Sticker Designs",
1061
+ "Print-On-Demand Designs",
1062
+ "Embroidery Designs",
1063
+ "Box Designs",
1064
+ "Label Designs",
1065
+ "Bag Designs",
1066
+ "Bottle Designs",
1067
+ "Pouch Designs",
1068
+ "Food & Beverage Packaging",
1069
+ "Cosmetics Packaging",
1070
+ "Dieline Templates",
1071
+ "Daily Planner Inserts",
1072
+ "Weekly Planner Inserts",
1073
+ "Monthly Planner Inserts",
1074
+ "Habit Trackers",
1075
+ "Gratitude Journals",
1076
+ "Goal Setting Sheets",
1077
+ "Budget Planners",
1078
+ "Fabric Print Designs",
1079
+ "Wallpaper Designs",
1080
+ "Wrapping Paper Designs",
1081
+ "Repeat Pattern Designs",
1082
+ "CMYK Print-Ready Files",
1083
+ ],
1084
+ Bundles: [
1085
+ "Design Bundles",
1086
+ "Font Bundles",
1087
+ "Illustration Bundles",
1088
+ "Icon Bundles",
1089
+ "Template Bundles",
1090
+ "Mockup Bundles",
1091
+ "Photo Bundles",
1092
+ "Video Bundles",
1093
+ "Audio Bundles",
1094
+ "Preset Bundles",
1095
+ "Procreate Bundles",
1096
+ "Notion Bundles",
1097
+ "Social Media Bundles",
1098
+ "Branding Bundles",
1099
+ "Print Bundles",
1100
+ "Creator Packs",
1101
+ "Starter Kits",
1102
+ "Seasonal & Limited Edition",
1103
+ ],
1104
+ Other: [
1105
+ "Miscellaneous",
1106
+ "Consulting & Services",
1107
+ "Custom Commissions",
1108
+ "Memberships & Subscriptions",
1109
+ "Gift Cards",
1110
+ "Uncategorized",
1111
+ ],
1112
+ };
@@ -242,7 +242,9 @@ export const ProductEntitySchema = z
242
242
  coverImages: z
243
243
  .array(ProductCoverImageEntitySchema.extend({ url: z.url() }))
244
244
  .default([]),
245
- productFiles: z.array(ProductDeliveryFileEntitySchema.extend({url: z.url()})).default([]),
245
+ productFiles: z
246
+ .array(ProductDeliveryFileEntitySchema.extend({ url: z.url() }))
247
+ .default([]),
246
248
  productLinks: z.array(z.url()).default([]),
247
249
 
248
250
  pricingModel: z.enum(PRICING_MODELS),
@@ -270,7 +272,7 @@ export const ProductSearchDocumentSchema = z.object({
270
272
  category: z.string(),
271
273
  subcategory: z.string().nullable(),
272
274
  tags: z.array(z.string()),
273
- thumbnailImgUrl: z.string().url().nullable(),
275
+ thumbnailImgUrl: z.url().nullable(),
274
276
  currency: z.enum(WAGES_CURRENCY),
275
277
  price: z.number().nullable(),
276
278
  suggestedPrice: z.number().nullable(),
@@ -279,12 +281,52 @@ export const ProductSearchDocumentSchema = z.object({
279
281
  deletedAt: z.coerce.date().optional().nullable(),
280
282
  });
281
283
 
284
+ export const SearchProductInputSchema = z.object({
285
+ queryString: z
286
+ .string()
287
+ .max(200, { message: "Search string cannot exceed 200 characters" })
288
+ .optional()
289
+ .openapi({ example: "typescript utility types" }),
290
+ cursor: z.string().optional().openapi({ example: "ckj1a2b3c0000cur" }),
291
+ limit: z.coerce.number().int().min(1).max(100).optional().default(30),
292
+ filters: z.array(z.string()).optional(),
293
+ category: z.string().optional(),
294
+ subcategory: z.string().optional(),
295
+ });
296
+
297
+ export const SearchProductOutputSchema = z.object({
298
+ products: z.array(ProductSearchDocumentSchema),
299
+ nextCursor: z.string().optional().nullable(),
300
+ });
301
+
302
+ export const MarketplaceCategorySchema = z.object({
303
+ name: z.string(),
304
+ imgUrl: z.string().url(),
305
+ subcategories: z.array(z.string()),
306
+ });
307
+
308
+ export const GetMarketplaceInfoOutputSchema = z.object({
309
+ categories: z.array(MarketplaceCategorySchema),
310
+ whatsHot: z.array(ProductSearchDocumentSchema),
311
+ communityFavourites: z.array(ProductSearchDocumentSchema),
312
+ });
313
+
314
+ export type SearchProductInput = z.infer<typeof SearchProductInputSchema>;
315
+ export type SearchProductOutput = z.infer<typeof SearchProductOutputSchema>;
282
316
  export type CoverImageInput = z.infer<typeof CoverImageInputSchema>;
283
317
  export type DeliveryFileInput = z.infer<typeof DeliveryFileInputSchema>;
284
318
 
319
+ export type MarketplaceCategoryOutput = z.infer<
320
+ typeof MarketplaceCategorySchema
321
+ >;
322
+ export type GetMarketplaceInfoOutput = z.infer<
323
+ typeof GetMarketplaceInfoOutputSchema
324
+ >;
325
+
285
326
  export type ProductCoverImageEntity = z.infer<
286
327
  typeof ProductCoverImageEntitySchema
287
328
  >;
329
+
288
330
  export type ProductDeliveryFileEntity = z.infer<
289
331
  typeof ProductDeliveryFileEntitySchema
290
332
  >;
@@ -298,4 +340,4 @@ export type UpdateProductInputEntity = z.infer<typeof UpdateProductInputSchema>;
298
340
  export type ProductEntity = z.infer<typeof ProductEntitySchema>;
299
341
 
300
342
  export type BaseProductEntity = z.infer<typeof BaseProductSchema>;
301
- export type ProductSearchDocument = z.infer<typeof ProductSearchDocumentSchema>;
343
+ export type ProductSearchDocument = z.infer<typeof ProductSearchDocumentSchema>;