@blezgo/api-sdk 0.1.3 → 0.1.4

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.
Files changed (138) hide show
  1. package/dist/account/generated.d.ts +180 -180
  2. package/dist/account/generated.d.ts.map +1 -1
  3. package/dist/activity/generated.d.ts +60 -60
  4. package/dist/activity/generated.d.ts.map +1 -1
  5. package/dist/addon/generated.d.ts +83 -83
  6. package/dist/addon/generated.d.ts.map +1 -1
  7. package/dist/admin/generated.d.ts +126 -126
  8. package/dist/admin/generated.d.ts.map +1 -1
  9. package/dist/affiliate/generated.d.ts +83 -83
  10. package/dist/affiliate/generated.d.ts.map +1 -1
  11. package/dist/analytics/generated.d.ts +30 -30
  12. package/dist/analytics/generated.d.ts.map +1 -1
  13. package/dist/announcements/generated.d.ts +64 -64
  14. package/dist/announcements/generated.d.ts.map +1 -1
  15. package/dist/apikeys/generated.d.ts +79 -79
  16. package/dist/apikeys/generated.d.ts.map +1 -1
  17. package/dist/assistance/generated.d.ts +30 -30
  18. package/dist/assistance/generated.d.ts.map +1 -1
  19. package/dist/authentication/generated.d.ts +83 -83
  20. package/dist/authentication/generated.d.ts.map +1 -1
  21. package/dist/blog/generated.d.ts +204 -204
  22. package/dist/blog/generated.d.ts.map +1 -1
  23. package/dist/bundle/generated.d.ts +147 -147
  24. package/dist/bundle/generated.d.ts.map +1 -1
  25. package/dist/cache/generated.d.ts +33 -33
  26. package/dist/cache/generated.d.ts.map +1 -1
  27. package/dist/calendar/generated.d.ts +80 -80
  28. package/dist/calendar/generated.d.ts.map +1 -1
  29. package/dist/campaigns/generated.d.ts +198 -198
  30. package/dist/campaigns/generated.d.ts.map +1 -1
  31. package/dist/cart/generated.d.ts +40 -40
  32. package/dist/cart/generated.d.ts.map +1 -1
  33. package/dist/changelog/generated.d.ts +95 -95
  34. package/dist/changelog/generated.d.ts.map +1 -1
  35. package/dist/channel/generated.d.ts +251 -251
  36. package/dist/channel/generated.d.ts.map +1 -1
  37. package/dist/company/generated.d.ts +69 -69
  38. package/dist/company/generated.d.ts.map +1 -1
  39. package/dist/conference/generated.d.ts +166 -166
  40. package/dist/conference/generated.d.ts.map +1 -1
  41. package/dist/config/generated.d.ts +54 -54
  42. package/dist/config/generated.d.ts.map +1 -1
  43. package/dist/content/generated.d.ts +477 -477
  44. package/dist/content/generated.d.ts.map +1 -1
  45. package/dist/cookies/generated.d.ts +77 -77
  46. package/dist/cookies/generated.d.ts.map +1 -1
  47. package/dist/courses/generated.d.ts +397 -397
  48. package/dist/courses/generated.d.ts.map +1 -1
  49. package/dist/custom/generated.d.ts +99 -99
  50. package/dist/custom/generated.d.ts.map +1 -1
  51. package/dist/dashboard/generated.d.ts +177 -177
  52. package/dist/dashboard/generated.d.ts.map +1 -1
  53. package/dist/elasticsearch/generated.d.ts +30 -30
  54. package/dist/elasticsearch/generated.d.ts.map +1 -1
  55. package/dist/enrollments/generated.d.ts +30 -30
  56. package/dist/enrollments/generated.d.ts.map +1 -1
  57. package/dist/errors/generated.d.ts +30 -30
  58. package/dist/errors/generated.d.ts.map +1 -1
  59. package/dist/eventconfig/generated.d.ts +94 -94
  60. package/dist/eventconfig/generated.d.ts.map +1 -1
  61. package/dist/funnels/generated.d.ts +146 -146
  62. package/dist/funnels/generated.d.ts.map +1 -1
  63. package/dist/gamification/generated.d.ts +154 -154
  64. package/dist/gamification/generated.d.ts.map +1 -1
  65. package/dist/impersonation/generated.d.ts +71 -71
  66. package/dist/impersonation/generated.d.ts.map +1 -1
  67. package/dist/inbox/generated.d.ts +140 -140
  68. package/dist/inbox/generated.d.ts.map +1 -1
  69. package/dist/internal/generated.d.ts +30 -30
  70. package/dist/internal/generated.d.ts.map +1 -1
  71. package/dist/internationalization/generated.d.ts +30 -30
  72. package/dist/internationalization/generated.d.ts.map +1 -1
  73. package/dist/invitations/generated.d.ts +123 -123
  74. package/dist/invitations/generated.d.ts.map +1 -1
  75. package/dist/meetings/generated.d.ts +337 -337
  76. package/dist/meetings/generated.d.ts.map +1 -1
  77. package/dist/metas/generated.d.ts +170 -170
  78. package/dist/metas/generated.d.ts.map +1 -1
  79. package/dist/notification/generated.d.ts +382 -382
  80. package/dist/notification/generated.d.ts.map +1 -1
  81. package/dist/notifications/generated.d.ts +30 -30
  82. package/dist/notifications/generated.d.ts.map +1 -1
  83. package/dist/onboarding/generated.d.ts +106 -106
  84. package/dist/onboarding/generated.d.ts.map +1 -1
  85. package/dist/packages/generated.d.ts +83 -83
  86. package/dist/packages/generated.d.ts.map +1 -1
  87. package/dist/payments/generated.d.ts +502 -502
  88. package/dist/payments/generated.d.ts.map +1 -1
  89. package/dist/payouts/generated.d.ts +30 -30
  90. package/dist/payouts/generated.d.ts.map +1 -1
  91. package/dist/plans/generated.d.ts +470 -470
  92. package/dist/plans/generated.d.ts.map +1 -1
  93. package/dist/pricing/generated.d.ts +87 -87
  94. package/dist/pricing/generated.d.ts.map +1 -1
  95. package/dist/products/generated.d.ts +552 -552
  96. package/dist/products/generated.d.ts.map +1 -1
  97. package/dist/profile/generated.d.ts +272 -272
  98. package/dist/profile/generated.d.ts.map +1 -1
  99. package/dist/reasons/generated.d.ts +78 -78
  100. package/dist/reasons/generated.d.ts.map +1 -1
  101. package/dist/registration/generated.d.ts +145 -145
  102. package/dist/registration/generated.d.ts.map +1 -1
  103. package/dist/reviews/generated.d.ts +47 -47
  104. package/dist/reviews/generated.d.ts.map +1 -1
  105. package/dist/role/generated.d.ts +217 -217
  106. package/dist/role/generated.d.ts.map +1 -1
  107. package/dist/scheduling/generated.d.ts +139 -139
  108. package/dist/scheduling/generated.d.ts.map +1 -1
  109. package/dist/services/generated.d.ts +989 -989
  110. package/dist/services/generated.d.ts.map +1 -1
  111. package/dist/sessions/generated.d.ts +334 -334
  112. package/dist/sessions/generated.d.ts.map +1 -1
  113. package/dist/spaces/generated.d.ts +390 -390
  114. package/dist/spaces/generated.d.ts.map +1 -1
  115. package/dist/storefront/generated.d.ts +30 -30
  116. package/dist/storefront/generated.d.ts.map +1 -1
  117. package/dist/support/generated.d.ts +1465 -1465
  118. package/dist/support/generated.d.ts.map +1 -1
  119. package/dist/sync/generated.d.ts +157 -157
  120. package/dist/sync/generated.d.ts.map +1 -1
  121. package/dist/tenant/generated.d.ts +562 -562
  122. package/dist/tenant/generated.d.ts.map +1 -1
  123. package/dist/testimonials/generated.d.ts +67 -67
  124. package/dist/testimonials/generated.d.ts.map +1 -1
  125. package/dist/tests/generated.d.ts +619 -619
  126. package/dist/tests/generated.d.ts.map +1 -1
  127. package/dist/tokens/generated.d.ts +59 -59
  128. package/dist/tokens/generated.d.ts.map +1 -1
  129. package/dist/uploads/generated.d.ts +65 -65
  130. package/dist/uploads/generated.d.ts.map +1 -1
  131. package/dist/upsell/generated.d.ts +130 -130
  132. package/dist/upsell/generated.d.ts.map +1 -1
  133. package/dist/user/generated.d.ts +123 -117
  134. package/dist/user/generated.d.ts.map +1 -1
  135. package/dist/webinars/generated.d.ts +298 -298
  136. package/dist/webinars/generated.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/test-commit.txt +1 -0
@@ -871,704 +871,752 @@ export type webhooks = Record<string, never>;
871
871
  export interface components {
872
872
  schemas: {
873
873
  /**
874
- * ProductSection
875
- * @description Base product fields (maps to product_tbl)
874
+ * VariantItem
875
+ * @description Product variant (maps to product_variants_tbl)
876
876
  */
877
- ProductSection: {
877
+ VariantItem: {
878
878
  /**
879
- * Visibility
880
- * @description public, private, hidden, unlisted
881
- * @default public
879
+ * Name
880
+ * @description Variant display name
882
881
  */
883
- visibility: string;
882
+ name: string;
884
883
  /**
885
- * Is Digital
886
- * @description Digital product flag
887
- * @default true
884
+ * Sku
885
+ * @description Stock Keeping Unit
888
886
  */
889
- is_digital: boolean;
887
+ sku?: string | null;
890
888
  /**
891
- * Company Id
892
- * @description Multi-company support
889
+ * Attributes
890
+ * @description Custom attributes
893
891
  */
894
- company_id?: number | null;
892
+ attributes?: {
893
+ [key: string]: unknown;
894
+ } | null;
895
895
  /**
896
- * Status
897
- * @description draft, published, archived, review_required, deleted
898
- * @default draft
896
+ * Is Default
897
+ * @description Set as default variant
898
+ * @default false
899
899
  */
900
- status: string;
900
+ is_default: boolean;
901
901
  /**
902
- * Is Org Level
903
- * @description Org-level vs user-created product
904
- * @default true
902
+ * Track Inventory
903
+ * @description Track stock for this variant
904
+ * @default false
905
905
  */
906
- is_org_level: boolean;
906
+ track_inventory: boolean;
907
907
  /**
908
- * Staff Id
909
- * @description Staff/instructor delivering product
908
+ * Stock Quantity
909
+ * @description Initial stock
910
910
  */
911
- staff_id?: number | null;
911
+ stock_quantity?: number | null;
912
912
  /**
913
- * Owner Id
914
- * @description Owner of the product
913
+ * Allow Backorder
914
+ * @description Allow orders when out of stock
915
+ * @default false
915
916
  */
916
- owner_id?: number | null;
917
+ allow_backorder: boolean;
917
918
  /**
918
- * Featured
919
- * @description Featured product flag
920
- * @default false
919
+ * Weight
920
+ * @description Weight in kg
921
921
  */
922
- featured: boolean;
922
+ weight?: number | null;
923
+ /**
924
+ * Length
925
+ * @description Length in cm
926
+ */
927
+ length?: number | null;
928
+ /**
929
+ * Width
930
+ * @description Width in cm
931
+ */
932
+ width?: number | null;
933
+ /**
934
+ * Height
935
+ * @description Height in cm
936
+ */
937
+ height?: number | null;
938
+ /**
939
+ * Display Order
940
+ * @description Display order
941
+ * @default 100
942
+ */
943
+ display_order: number;
944
+ /**
945
+ * Metadata
946
+ * @description Flexible metadata
947
+ */
948
+ metadata?: {
949
+ [key: string]: unknown;
950
+ } | null;
923
951
  };
924
952
  /**
925
953
  * TestCreateRequest
926
- * @description Test creation request - inherits common fields, adds test-specific section
927
- * @example {
928
- * "identity": {
929
- * "locale": "en-US",
930
- * "title": "Python Programming Assessment"
931
- * },
932
- * "pricing": {
933
- * "product_price": {
934
- * "amount": 500,
935
- * "currency": "INR",
936
- * "price_type": "one_time"
937
- * }
938
- * },
939
- * "product": {
940
- * "is_digital": true,
941
- * "status": "draft",
942
- * "visibility": "public"
943
- * },
944
- * "test": {
945
- * "duration_minutes": 90,
946
- * "has_time_limit": true,
947
- * "max_attempts": 3,
948
- * "passing_marks": 60,
949
- * "total_marks": 100
950
- * }
951
- * }
954
+ * @description Request model for creating a test
952
955
  */
953
- TestCreateRequest: {
954
- /** @description Base product configuration */
955
- product: components["schemas"]["ProductSection"];
956
- /** @description Localized content (title, description) */
957
- identity: components["schemas"]["IdentitySection"];
958
- /** @description Pre-uploaded image IDs */
959
- media?: components["schemas"]["MediaSection"] | null;
956
+ app__models__tests__test_models__TestCreateRequest: {
960
957
  /**
961
- * Tags
962
- * @description Tag IDs to associate with product
958
+ * Product Id
959
+ * @description External product ID (prod_xxx)
963
960
  */
964
- tags?: number[] | null;
961
+ product_id: string;
965
962
  /**
966
- * Variants
967
- * @description Product variants (optional)
963
+ * Title
964
+ * @description Test title
968
965
  */
969
- variants?: components["schemas"]["VariantItem"][] | null;
970
- /** @description Pricing for product and variants */
971
- pricing?: components["schemas"]["PricingSection"] | null;
972
- /** @description Test-specific configuration */
973
- test: components["schemas"]["TestSection"];
966
+ title: string;
967
+ /**
968
+ * Description
969
+ * @description Test description
970
+ */
971
+ description?: string | null;
972
+ /**
973
+ * Total Marks
974
+ * @description Total marks for test
975
+ * @default 0
976
+ */
977
+ total_marks: number;
978
+ /**
979
+ * Passing Marks
980
+ * @description Minimum passing marks
981
+ */
982
+ passing_marks?: number | null;
983
+ /**
984
+ * Has Time Limit
985
+ * @description Whether test has time limit
986
+ * @default true
987
+ */
988
+ has_time_limit: boolean;
989
+ /**
990
+ * Duration Minutes
991
+ * @description Test duration in minutes
992
+ */
993
+ duration_minutes?: number | null;
994
+ /**
995
+ * Max Attempts
996
+ * @description Maximum attempts allowed
997
+ */
998
+ max_attempts?: number | null;
999
+ /**
1000
+ * Randomize Questions
1001
+ * @description Randomize question order
1002
+ * @default false
1003
+ */
1004
+ randomize_questions: boolean;
1005
+ /**
1006
+ * Randomize Options
1007
+ * @description Randomize option order (MCQs)
1008
+ * @default false
1009
+ */
1010
+ randomize_options: boolean;
1011
+ /**
1012
+ * Enable Proctoring
1013
+ * @description Enable proctoring features
1014
+ * @default false
1015
+ */
1016
+ enable_proctoring: boolean;
1017
+ /**
1018
+ * Enable Browser Lockdown
1019
+ * @description Enable browser lockdown
1020
+ * @default false
1021
+ */
1022
+ enable_browser_lockdown: boolean;
1023
+ /**
1024
+ * Company Id
1025
+ * @description Company ID
1026
+ */
1027
+ company_id?: number | null;
974
1028
  };
975
- /**
976
- * @example {
977
- * "status": "success",
978
- * "message": "Operation successful",
979
- * "message_code": "api_suc_20001",
980
- * "data": {},
981
- * "metadata": {
982
- * "timestamp": "2026-03-26T10:00:00.000Z",
983
- * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
984
- * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
985
- * "version": "v1",
986
- * "executionTime": 42,
987
- * "language": "en-US"
988
- * }
989
- * }
990
- */
991
- StandardResponse: {
992
- /** @example success */
993
- status?: string;
994
- data?: Record<string, never> | null;
995
- /** @example Operation successful */
996
- message?: string | null;
997
- /** @example api_suc_20001 */
998
- message_code?: string | null;
999
- metadata?: Record<string, never> | null;
1000
- error?: components["schemas"]["ErrorResponse"];
1029
+ InvalidParam: {
1030
+ /** @example items[0].quantity */
1031
+ field?: string;
1032
+ /** @example Input should be greater than or equal to 1 */
1033
+ error?: string;
1001
1034
  };
1002
1035
  /**
1003
- * ProductPrice
1004
- * @description Base product pricing (maps to product_pricings_tbl with variant_id=NULL)
1036
+ * TestSection
1037
+ * @description Test-specific fields (maps to tests_tbl)
1005
1038
  */
1006
- ProductPrice: {
1039
+ TestSection: {
1007
1040
  /**
1008
- * Price Type
1009
- * @description free, one_time, subscription, monthly_plan
1041
+ * Total Marks
1042
+ * @description Total marks for the test
1010
1043
  */
1011
- price_type: string;
1044
+ total_marks: number;
1012
1045
  /**
1013
- * Currency
1014
- * @description Currency code: INR, USD, EUR, etc.
1046
+ * Passing Marks
1047
+ * @description Minimum marks to pass
1015
1048
  */
1016
- currency: string;
1049
+ passing_marks?: number | null;
1017
1050
  /**
1018
- * Amount
1019
- * @description Price amount
1051
+ * Has Time Limit
1052
+ * @description Whether test has time limit
1053
+ * @default true
1020
1054
  */
1021
- amount: number;
1055
+ has_time_limit: boolean;
1022
1056
  /**
1023
- * Compare At Amount
1024
- * @description Original/strike-through price
1057
+ * Duration Minutes
1058
+ * @description Test duration in minutes (NULL = no time limit)
1025
1059
  */
1026
- compare_at_amount?: number | null;
1060
+ duration_minutes?: number | null;
1027
1061
  /**
1028
- * Interval
1029
- * @description day, week, month, year (for subscription)
1062
+ * Max Attempts
1063
+ * @description Maximum attempts allowed (NULL = unlimited)
1030
1064
  */
1031
- interval?: string | null;
1065
+ max_attempts?: number | null;
1032
1066
  /**
1033
- * Interval Count
1034
- * @description Number of intervals
1067
+ * Has Validity Period
1068
+ * @description Whether test has validity period
1069
+ * @default false
1035
1070
  */
1036
- interval_count?: number | null;
1071
+ has_validity_period: boolean;
1037
1072
  /**
1038
- * Trial Period Days
1039
- * @description Free trial days
1073
+ * Starts At
1074
+ * @description Test available from this date
1040
1075
  */
1041
- trial_period_days?: number | null;
1076
+ starts_at?: string | null;
1042
1077
  /**
1043
- * Initial Amount
1044
- * @description First payment amount
1078
+ * Ends At
1079
+ * @description Test available until this date
1045
1080
  */
1046
- initial_amount?: number | null;
1081
+ ends_at?: string | null;
1047
1082
  /**
1048
- * Gateway
1049
- * @description stripe, razorpay, paypal, etc.
1083
+ * Randomize Questions
1084
+ * @description Randomize question order
1085
+ * @default false
1050
1086
  */
1051
- gateway?: string | null;
1087
+ randomize_questions: boolean;
1052
1088
  /**
1053
- * Requires Payment Method Upfront
1054
- * @description Require payment method before trial
1089
+ * Randomize Options
1090
+ * @description Randomize answer options
1091
+ * @default false
1092
+ */
1093
+ randomize_options: boolean;
1094
+ /**
1095
+ * Enable Question Pool
1096
+ * @description Enable question pool (random selection)
1097
+ * @default false
1098
+ */
1099
+ enable_question_pool: boolean;
1100
+ /**
1101
+ * Pool Size
1102
+ * @description Total questions in pool
1103
+ */
1104
+ pool_size?: number | null;
1105
+ /**
1106
+ * Questions To Show
1107
+ * @description Questions to show from pool
1108
+ */
1109
+ questions_to_show?: number | null;
1110
+ /**
1111
+ * Show Score Immediately
1112
+ * @description Show score after submission
1055
1113
  * @default true
1056
1114
  */
1057
- requires_payment_method_upfront: boolean;
1058
- };
1059
- /**
1060
- * MediaSection
1061
- * @description Product media files - direct media data
1062
- */
1063
- MediaSection: {
1115
+ show_score_immediately: boolean;
1064
1116
  /**
1065
- * Media Items
1066
- * @description List of media files to attach to product
1117
+ * Show Correct Answers
1118
+ * @description Show correct answers after submission
1119
+ * @default false
1067
1120
  */
1068
- media_items?: components["schemas"]["MediaItem"][] | null;
1069
- };
1070
- /**
1071
- * QuestionCreateRequest
1072
- * @description Request model for creating a question
1073
- */
1074
- QuestionCreateRequest: {
1121
+ show_correct_answers: boolean;
1075
1122
  /**
1076
- * Question Text
1077
- * @description Question text
1123
+ * Show Answer Explanations
1124
+ * @description Show answer explanations
1125
+ * @default false
1078
1126
  */
1079
- question_text: string;
1127
+ show_answer_explanations: boolean;
1080
1128
  /**
1081
- * Question Type
1082
- * @description Question type: mcq_single, mcq_multiple, true_false, fill_blank, essay, code, matching, ordering
1129
+ * Show Result Breakdown
1130
+ * @description Show section-wise breakdown
1131
+ * @default false
1083
1132
  */
1084
- question_type: string;
1133
+ show_result_breakdown: boolean;
1085
1134
  /**
1086
- * Default Marks
1087
- * @description Marks for correct answer
1088
- * @default 1
1135
+ * Allow Question Navigation
1136
+ * @description Allow jumping to any question
1137
+ * @default true
1089
1138
  */
1090
- default_marks: number;
1139
+ allow_question_navigation: boolean;
1091
1140
  /**
1092
- * Negative Marks
1093
- * @description Marks deducted for wrong answer
1094
- * @default 0
1141
+ * Allow Previous Button
1142
+ * @description Allow going back to previous questions
1143
+ * @default true
1095
1144
  */
1096
- negative_marks: number;
1145
+ allow_previous_button: boolean;
1097
1146
  /**
1098
- * Difficulty Level
1099
- * @description Difficulty: easy, medium, hard
1147
+ * Allow Mark For Review
1148
+ * @description Allow marking questions for review
1149
+ * @default true
1100
1150
  */
1101
- difficulty_level?: string | null;
1151
+ allow_mark_for_review: boolean;
1102
1152
  /**
1103
- * Category Id
1104
- * @description Question category ID
1153
+ * Enable Proctoring
1154
+ * @description Enable anti-cheating proctoring
1155
+ * @default false
1105
1156
  */
1106
- category_id?: number | null;
1157
+ enable_proctoring: boolean;
1107
1158
  /**
1108
- * Tags
1109
- * @description List of tags
1159
+ * Enable Browser Lockdown
1160
+ * @description Lock browser (disable new tabs, etc.)
1161
+ * @default false
1110
1162
  */
1111
- tags?: string[] | null;
1163
+ enable_browser_lockdown: boolean;
1112
1164
  /**
1113
- * Company Id
1114
- * @description Company ID
1165
+ * Enable Copy Paste Prevention
1166
+ * @description Prevent copy-paste
1167
+ * @default false
1115
1168
  */
1116
- company_id?: number | null;
1169
+ enable_copy_paste_prevention: boolean;
1117
1170
  /**
1118
- * Options
1119
- * @description Options for MCQ questions
1171
+ * Webcam Required
1172
+ * @description Require webcam for proctoring
1173
+ * @default false
1120
1174
  */
1121
- options?: components["schemas"]["QuestionOptionCreate"][] | null;
1175
+ webcam_required: boolean;
1122
1176
  /**
1123
- * Code Language
1124
- * @description Programming language (python, javascript, java, etc.)
1177
+ * Enable Plagiarism Check
1178
+ * @description Enable plagiarism detection
1179
+ * @default false
1125
1180
  */
1126
- code_language?: string | null;
1181
+ enable_plagiarism_check: boolean;
1127
1182
  /**
1128
- * Code Test Cases
1129
- * @description Test cases for code evaluation
1183
+ * Allow Pause
1184
+ * @description Allow pausing the test
1185
+ * @default false
1186
+ */
1187
+ allow_pause: boolean;
1188
+ /**
1189
+ * Max Pause Count
1190
+ * @description Maximum pause count (NULL = unlimited)
1191
+ */
1192
+ max_pause_count?: number | null;
1193
+ /**
1194
+ * Is Published
1195
+ * @description Published status
1196
+ * @default false
1197
+ */
1198
+ is_published: boolean;
1199
+ };
1200
+ /**
1201
+ * @example {
1202
+ * "status": "success",
1203
+ * "message": "Operation successful",
1204
+ * "message_code": "api_suc_20001",
1205
+ * "data": {},
1206
+ * "metadata": {
1207
+ * "timestamp": "2026-03-26T10:00:00.000Z",
1208
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1209
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1210
+ * "version": "v1",
1211
+ * "executionTime": 42,
1212
+ * "language": "en-US"
1213
+ * }
1214
+ * }
1215
+ */
1216
+ StandardResponse: {
1217
+ /** @example success */
1218
+ status?: string;
1219
+ data?: Record<string, never> | null;
1220
+ /** @example Operation successful */
1221
+ message?: string | null;
1222
+ /** @example api_suc_20001 */
1223
+ message_code?: string | null;
1224
+ metadata?: Record<string, never> | null;
1225
+ error?: components["schemas"]["ErrorResponse"];
1226
+ };
1227
+ /**
1228
+ * AnswerSubmitRequest
1229
+ * @description Request model for submitting an answer
1230
+ */
1231
+ AnswerSubmitRequest: {
1232
+ /**
1233
+ * Question Id
1234
+ * @description External question ID (que_xxx)
1130
1235
  */
1131
- code_test_cases?: {
1132
- [key: string]: unknown;
1133
- } | null;
1236
+ question_id: string;
1134
1237
  /**
1135
- * Code Time Limit Ms
1136
- * @description Time limit in milliseconds
1238
+ * Selected Option Ids
1239
+ * @description Selected option IDs for MCQ
1137
1240
  */
1138
- code_time_limit_ms?: number | null;
1241
+ selected_option_ids?: string[] | null;
1139
1242
  /**
1140
- * Code Memory Limit Kb
1141
- * @description Memory limit in KB
1243
+ * Answer Text
1244
+ * @description Text answer for essay/fill-blank
1142
1245
  */
1143
- code_memory_limit_kb?: number | null;
1246
+ answer_text?: string | null;
1144
1247
  /**
1145
- * Code Starter Code
1146
- * @description Starter code template
1248
+ * Answer Code
1249
+ * @description Code answer for code questions
1147
1250
  */
1148
- code_starter_code?: string | null;
1251
+ answer_code?: string | null;
1252
+ };
1253
+ /**
1254
+ * ManualGradingSubmitRequest
1255
+ * @description Request model for submitting manual grading
1256
+ */
1257
+ ManualGradingSubmitRequest: {
1149
1258
  /**
1150
- * Matching Pairs
1151
- * @description Matching pairs data
1259
+ * Marks Awarded
1260
+ * @description Marks awarded
1152
1261
  */
1153
- matching_pairs?: {
1154
- [key: string]: unknown;
1155
- }[] | null;
1262
+ marks_awarded: number;
1156
1263
  /**
1157
- * Ordering Items
1158
- * @description Ordering items data
1264
+ * Grader Feedback
1265
+ * @description Grader feedback
1159
1266
  */
1160
- ordering_items?: {
1161
- [key: string]: unknown;
1162
- }[] | null;
1267
+ grader_feedback?: string | null;
1163
1268
  };
1164
1269
  /**
1165
- * TestCreateRequest
1166
- * @description Request model for creating a test
1270
+ * MediaItem
1271
+ * @description Single media file item
1167
1272
  */
1168
- app__models__tests__test_models__TestCreateRequest: {
1273
+ MediaItem: {
1169
1274
  /**
1170
- * Product Id
1171
- * @description External product ID (prod_xxx)
1275
+ * Media Type
1276
+ * @description logo, banner, promo_video, gallery_image, gallery_video, swatch
1172
1277
  */
1173
- product_id: string;
1278
+ media_type: string;
1174
1279
  /**
1175
- * Title
1176
- * @description Test title
1280
+ * File Path
1281
+ * @description Path to media file on storage (S3, CDN, local)
1177
1282
  */
1178
- title: string;
1283
+ file_path: string;
1179
1284
  /**
1180
- * Description
1181
- * @description Test description
1285
+ * File Name
1286
+ * @description Original filename
1182
1287
  */
1183
- description?: string | null;
1288
+ file_name: string;
1184
1289
  /**
1185
- * Total Marks
1186
- * @description Total marks for test
1187
- * @default 0
1290
+ * File Size
1291
+ * @description File size in bytes
1188
1292
  */
1189
- total_marks: number;
1293
+ file_size?: number | null;
1190
1294
  /**
1191
- * Passing Marks
1192
- * @description Minimum passing marks
1295
+ * Mime Type
1296
+ * @description MIME type (image/png, video/mp4, etc.)
1193
1297
  */
1194
- passing_marks?: number | null;
1298
+ mime_type?: string | null;
1195
1299
  /**
1196
- * Has Time Limit
1197
- * @description Whether test has time limit
1198
- * @default true
1300
+ * Width
1301
+ * @description Width in pixels (for images/videos)
1199
1302
  */
1200
- has_time_limit: boolean;
1303
+ width?: number | null;
1201
1304
  /**
1202
- * Duration Minutes
1203
- * @description Test duration in minutes
1305
+ * Height
1306
+ * @description Height in pixels (for images/videos)
1204
1307
  */
1205
- duration_minutes?: number | null;
1308
+ height?: number | null;
1206
1309
  /**
1207
- * Max Attempts
1208
- * @description Maximum attempts allowed
1310
+ * Responsive Versions
1311
+ * @description JSON with thumbnail, small, medium, large, xlarge, original paths
1209
1312
  */
1210
- max_attempts?: number | null;
1313
+ responsive_versions?: {
1314
+ [key: string]: string;
1315
+ } | null;
1211
1316
  /**
1212
- * Randomize Questions
1213
- * @description Randomize question order
1214
- * @default false
1317
+ * Alt Text
1318
+ * @description Alt text for SEO/accessibility
1215
1319
  */
1216
- randomize_questions: boolean;
1320
+ alt_text?: string | null;
1217
1321
  /**
1218
- * Randomize Options
1219
- * @description Randomize option order (MCQs)
1220
- * @default false
1322
+ * Locale
1323
+ * @description Media locale (en-US, es-PR, etc.)
1324
+ * @default en-US
1221
1325
  */
1222
- randomize_options: boolean;
1326
+ locale: string;
1223
1327
  /**
1224
- * Enable Proctoring
1225
- * @description Enable proctoring features
1226
- * @default false
1328
+ * Display Order
1329
+ * @description Display order
1330
+ * @default 0
1227
1331
  */
1228
- enable_proctoring: boolean;
1332
+ display_order: number;
1229
1333
  /**
1230
- * Enable Browser Lockdown
1231
- * @description Enable browser lockdown
1334
+ * Is Primary
1335
+ * @description Mark as primary media
1232
1336
  * @default false
1233
1337
  */
1234
- enable_browser_lockdown: boolean;
1235
- /**
1236
- * Company Id
1237
- * @description Company ID
1238
- */
1239
- company_id?: number | null;
1240
- };
1241
- InvalidParam: {
1242
- /** @example items[0].quantity */
1243
- field?: string;
1244
- /** @example Input should be greater than or equal to 1 */
1245
- error?: string;
1338
+ is_primary: boolean;
1246
1339
  };
1247
1340
  /**
1248
- * TestSection
1249
- * @description Test-specific fields (maps to tests_tbl)
1341
+ * QuestionOptionCreate
1342
+ * @description Option for MCQ questions
1250
1343
  */
1251
- TestSection: {
1252
- /**
1253
- * Total Marks
1254
- * @description Total marks for the test
1255
- */
1256
- total_marks: number;
1257
- /**
1258
- * Passing Marks
1259
- * @description Minimum marks to pass
1260
- */
1261
- passing_marks?: number | null;
1262
- /**
1263
- * Has Time Limit
1264
- * @description Whether test has time limit
1265
- * @default true
1266
- */
1267
- has_time_limit: boolean;
1268
- /**
1269
- * Duration Minutes
1270
- * @description Test duration in minutes (NULL = no time limit)
1271
- */
1272
- duration_minutes?: number | null;
1344
+ QuestionOptionCreate: {
1273
1345
  /**
1274
- * Max Attempts
1275
- * @description Maximum attempts allowed (NULL = unlimited)
1346
+ * Option Text
1347
+ * @description Option text
1276
1348
  */
1277
- max_attempts?: number | null;
1349
+ option_text: string;
1278
1350
  /**
1279
- * Has Validity Period
1280
- * @description Whether test has validity period
1351
+ * Is Correct
1352
+ * @description Whether this is correct answer
1281
1353
  * @default false
1282
1354
  */
1283
- has_validity_period: boolean;
1355
+ is_correct: boolean;
1284
1356
  /**
1285
- * Starts At
1286
- * @description Test available from this date
1357
+ * Display Order
1358
+ * @description Display order
1287
1359
  */
1288
- starts_at?: string | null;
1360
+ display_order?: number | null;
1289
1361
  /**
1290
- * Ends At
1291
- * @description Test available until this date
1362
+ * Explanation
1363
+ * @description Explanation for this option
1292
1364
  */
1293
- ends_at?: string | null;
1365
+ explanation?: string | null;
1366
+ };
1367
+ /**
1368
+ * MediaSection
1369
+ * @description Product media files - direct media data
1370
+ */
1371
+ MediaSection: {
1294
1372
  /**
1295
- * Randomize Questions
1296
- * @description Randomize question order
1297
- * @default false
1373
+ * Media Items
1374
+ * @description List of media files to attach to product
1298
1375
  */
1299
- randomize_questions: boolean;
1376
+ media_items?: components["schemas"]["MediaItem"][] | null;
1377
+ };
1378
+ Extensions: {
1379
+ /** @example GENERIC_ERROR */
1380
+ message_code?: string;
1381
+ /** @example [] */
1382
+ invalid_params?: components["schemas"]["InvalidParam"][];
1383
+ extra_data?: Record<string, never> | null;
1384
+ /** @example Detailed debug information */
1385
+ debug?: string | null;
1386
+ };
1387
+ /**
1388
+ * TestCreateRequest
1389
+ * @description Test creation request - inherits common fields, adds test-specific section
1390
+ * @example {
1391
+ * "identity": {
1392
+ * "locale": "en-US",
1393
+ * "title": "Python Programming Assessment"
1394
+ * },
1395
+ * "pricing": {
1396
+ * "product_price": {
1397
+ * "amount": 500,
1398
+ * "currency": "INR",
1399
+ * "price_type": "one_time"
1400
+ * }
1401
+ * },
1402
+ * "product": {
1403
+ * "is_digital": true,
1404
+ * "status": "draft",
1405
+ * "visibility": "public"
1406
+ * },
1407
+ * "test": {
1408
+ * "duration_minutes": 90,
1409
+ * "has_time_limit": true,
1410
+ * "max_attempts": 3,
1411
+ * "passing_marks": 60,
1412
+ * "total_marks": 100
1413
+ * }
1414
+ * }
1415
+ */
1416
+ TestCreateRequest: {
1417
+ /** @description Base product configuration */
1418
+ product: components["schemas"]["ProductSection"];
1419
+ /** @description Localized content (title, description) */
1420
+ identity: components["schemas"]["IdentitySection"];
1421
+ /** @description Pre-uploaded image IDs */
1422
+ media?: components["schemas"]["MediaSection"] | null;
1300
1423
  /**
1301
- * Randomize Options
1302
- * @description Randomize answer options
1303
- * @default false
1424
+ * Tags
1425
+ * @description Tag IDs to associate with product
1304
1426
  */
1305
- randomize_options: boolean;
1427
+ tags?: number[] | null;
1306
1428
  /**
1307
- * Enable Question Pool
1308
- * @description Enable question pool (random selection)
1309
- * @default false
1429
+ * Variants
1430
+ * @description Product variants (optional)
1310
1431
  */
1311
- enable_question_pool: boolean;
1432
+ variants?: components["schemas"]["VariantItem"][] | null;
1433
+ /** @description Pricing for product and variants */
1434
+ pricing?: components["schemas"]["PricingSection"] | null;
1435
+ /** @description Test-specific configuration */
1436
+ test: components["schemas"]["TestSection"];
1437
+ };
1438
+ /**
1439
+ * IdentitySection
1440
+ * @description Localized product content (maps to product_identity_tbl)
1441
+ */
1442
+ IdentitySection: {
1312
1443
  /**
1313
- * Pool Size
1314
- * @description Total questions in pool
1444
+ * Locale
1445
+ * @description Locale: en-US, es-PR, fr-FR, pt-BR, etc.
1446
+ * @default en-US
1315
1447
  */
1316
- pool_size?: number | null;
1448
+ locale: string;
1317
1449
  /**
1318
- * Questions To Show
1319
- * @description Questions to show from pool
1450
+ * Title
1451
+ * @description Product title
1320
1452
  */
1321
- questions_to_show?: number | null;
1453
+ title: string;
1322
1454
  /**
1323
- * Show Score Immediately
1324
- * @description Show score after submission
1325
- * @default true
1455
+ * Subtitle
1456
+ * @description Product subtitle
1326
1457
  */
1327
- show_score_immediately: boolean;
1458
+ subtitle?: string | null;
1328
1459
  /**
1329
- * Show Correct Answers
1330
- * @description Show correct answers after submission
1331
- * @default false
1460
+ * Description
1461
+ * @description Full product description
1332
1462
  */
1333
- show_correct_answers: boolean;
1463
+ description?: string | null;
1334
1464
  /**
1335
- * Show Answer Explanations
1336
- * @description Show answer explanations
1337
- * @default false
1465
+ * Short Description
1466
+ * @description Short description for listings/previews
1338
1467
  */
1339
- show_answer_explanations: boolean;
1468
+ short_description?: string | null;
1469
+ };
1470
+ /**
1471
+ * QuestionCreateRequest
1472
+ * @description Request model for creating a question
1473
+ */
1474
+ QuestionCreateRequest: {
1340
1475
  /**
1341
- * Show Result Breakdown
1342
- * @description Show section-wise breakdown
1343
- * @default false
1476
+ * Question Text
1477
+ * @description Question text
1344
1478
  */
1345
- show_result_breakdown: boolean;
1479
+ question_text: string;
1346
1480
  /**
1347
- * Allow Question Navigation
1348
- * @description Allow jumping to any question
1349
- * @default true
1481
+ * Question Type
1482
+ * @description Question type: mcq_single, mcq_multiple, true_false, fill_blank, essay, code, matching, ordering
1350
1483
  */
1351
- allow_question_navigation: boolean;
1484
+ question_type: string;
1352
1485
  /**
1353
- * Allow Previous Button
1354
- * @description Allow going back to previous questions
1355
- * @default true
1486
+ * Default Marks
1487
+ * @description Marks for correct answer
1488
+ * @default 1
1356
1489
  */
1357
- allow_previous_button: boolean;
1490
+ default_marks: number;
1358
1491
  /**
1359
- * Allow Mark For Review
1360
- * @description Allow marking questions for review
1361
- * @default true
1492
+ * Negative Marks
1493
+ * @description Marks deducted for wrong answer
1494
+ * @default 0
1362
1495
  */
1363
- allow_mark_for_review: boolean;
1496
+ negative_marks: number;
1364
1497
  /**
1365
- * Enable Proctoring
1366
- * @description Enable anti-cheating proctoring
1367
- * @default false
1498
+ * Difficulty Level
1499
+ * @description Difficulty: easy, medium, hard
1368
1500
  */
1369
- enable_proctoring: boolean;
1501
+ difficulty_level?: string | null;
1370
1502
  /**
1371
- * Enable Browser Lockdown
1372
- * @description Lock browser (disable new tabs, etc.)
1373
- * @default false
1503
+ * Category Id
1504
+ * @description Question category ID
1374
1505
  */
1375
- enable_browser_lockdown: boolean;
1506
+ category_id?: number | null;
1376
1507
  /**
1377
- * Enable Copy Paste Prevention
1378
- * @description Prevent copy-paste
1379
- * @default false
1508
+ * Tags
1509
+ * @description List of tags
1380
1510
  */
1381
- enable_copy_paste_prevention: boolean;
1511
+ tags?: string[] | null;
1382
1512
  /**
1383
- * Webcam Required
1384
- * @description Require webcam for proctoring
1385
- * @default false
1513
+ * Company Id
1514
+ * @description Company ID
1386
1515
  */
1387
- webcam_required: boolean;
1516
+ company_id?: number | null;
1388
1517
  /**
1389
- * Enable Plagiarism Check
1390
- * @description Enable plagiarism detection
1391
- * @default false
1518
+ * Options
1519
+ * @description Options for MCQ questions
1392
1520
  */
1393
- enable_plagiarism_check: boolean;
1521
+ options?: components["schemas"]["QuestionOptionCreate"][] | null;
1394
1522
  /**
1395
- * Allow Pause
1396
- * @description Allow pausing the test
1397
- * @default false
1523
+ * Code Language
1524
+ * @description Programming language (python, javascript, java, etc.)
1398
1525
  */
1399
- allow_pause: boolean;
1526
+ code_language?: string | null;
1400
1527
  /**
1401
- * Max Pause Count
1402
- * @description Maximum pause count (NULL = unlimited)
1528
+ * Code Test Cases
1529
+ * @description Test cases for code evaluation
1403
1530
  */
1404
- max_pause_count?: number | null;
1531
+ code_test_cases?: {
1532
+ [key: string]: unknown;
1533
+ } | null;
1405
1534
  /**
1406
- * Is Published
1407
- * @description Published status
1408
- * @default false
1535
+ * Code Time Limit Ms
1536
+ * @description Time limit in milliseconds
1409
1537
  */
1410
- is_published: boolean;
1411
- };
1412
- /**
1413
- * TestUpdateRequest
1414
- * @description Request model for updating a test
1415
- */
1416
- TestUpdateRequest: {
1417
- /** Title */
1418
- title?: string | null;
1419
- /** Description */
1420
- description?: string | null;
1421
- /** Total Marks */
1422
- total_marks?: number | null;
1423
- /** Passing Marks */
1424
- passing_marks?: number | null;
1425
- /** Has Time Limit */
1426
- has_time_limit?: boolean | null;
1427
- /** Duration Minutes */
1428
- duration_minutes?: number | null;
1429
- /** Max Attempts */
1430
- max_attempts?: number | null;
1431
- /** Randomize Questions */
1432
- randomize_questions?: boolean | null;
1433
- /** Randomize Options */
1434
- randomize_options?: boolean | null;
1435
- /** Enable Proctoring */
1436
- enable_proctoring?: boolean | null;
1437
- /** Enable Browser Lockdown */
1438
- enable_browser_lockdown?: boolean | null;
1439
- };
1440
- /**
1441
- * QuestionOptionCreate
1442
- * @description Option for MCQ questions
1443
- */
1444
- QuestionOptionCreate: {
1538
+ code_time_limit_ms?: number | null;
1445
1539
  /**
1446
- * Option Text
1447
- * @description Option text
1540
+ * Code Memory Limit Kb
1541
+ * @description Memory limit in KB
1448
1542
  */
1449
- option_text: string;
1543
+ code_memory_limit_kb?: number | null;
1450
1544
  /**
1451
- * Is Correct
1452
- * @description Whether this is correct answer
1453
- * @default false
1545
+ * Code Starter Code
1546
+ * @description Starter code template
1454
1547
  */
1455
- is_correct: boolean;
1548
+ code_starter_code?: string | null;
1456
1549
  /**
1457
- * Display Order
1458
- * @description Display order
1550
+ * Matching Pairs
1551
+ * @description Matching pairs data
1459
1552
  */
1460
- display_order?: number | null;
1553
+ matching_pairs?: {
1554
+ [key: string]: unknown;
1555
+ }[] | null;
1461
1556
  /**
1462
- * Explanation
1463
- * @description Explanation for this option
1557
+ * Ordering Items
1558
+ * @description Ordering items data
1464
1559
  */
1465
- explanation?: string | null;
1560
+ ordering_items?: {
1561
+ [key: string]: unknown;
1562
+ }[] | null;
1466
1563
  };
1467
1564
  /**
1468
- * MediaItem
1469
- * @description Single media file item
1565
+ * ProductPrice
1566
+ * @description Base product pricing (maps to product_pricings_tbl with variant_id=NULL)
1470
1567
  */
1471
- MediaItem: {
1472
- /**
1473
- * Media Type
1474
- * @description logo, banner, promo_video, gallery_image, gallery_video, swatch
1475
- */
1476
- media_type: string;
1477
- /**
1478
- * File Path
1479
- * @description Path to media file on storage (S3, CDN, local)
1480
- */
1481
- file_path: string;
1482
- /**
1483
- * File Name
1484
- * @description Original filename
1485
- */
1486
- file_name: string;
1487
- /**
1488
- * File Size
1489
- * @description File size in bytes
1490
- */
1491
- file_size?: number | null;
1492
- /**
1493
- * Mime Type
1494
- * @description MIME type (image/png, video/mp4, etc.)
1495
- */
1496
- mime_type?: string | null;
1497
- /**
1498
- * Width
1499
- * @description Width in pixels (for images/videos)
1500
- */
1501
- width?: number | null;
1568
+ ProductPrice: {
1502
1569
  /**
1503
- * Height
1504
- * @description Height in pixels (for images/videos)
1570
+ * Price Type
1571
+ * @description free, one_time, subscription, monthly_plan
1505
1572
  */
1506
- height?: number | null;
1573
+ price_type: string;
1507
1574
  /**
1508
- * Responsive Versions
1509
- * @description JSON with thumbnail, small, medium, large, xlarge, original paths
1575
+ * Currency
1576
+ * @description Currency code: INR, USD, EUR, etc.
1510
1577
  */
1511
- responsive_versions?: {
1512
- [key: string]: string;
1513
- } | null;
1578
+ currency: string;
1514
1579
  /**
1515
- * Alt Text
1516
- * @description Alt text for SEO/accessibility
1580
+ * Amount
1581
+ * @description Price amount
1517
1582
  */
1518
- alt_text?: string | null;
1583
+ amount: number;
1519
1584
  /**
1520
- * Locale
1521
- * @description Media locale (en-US, es-PR, etc.)
1522
- * @default en-US
1585
+ * Compare At Amount
1586
+ * @description Original/strike-through price
1523
1587
  */
1524
- locale: string;
1588
+ compare_at_amount?: number | null;
1525
1589
  /**
1526
- * Display Order
1527
- * @description Display order
1528
- * @default 0
1590
+ * Interval
1591
+ * @description day, week, month, year (for subscription)
1529
1592
  */
1530
- display_order: number;
1593
+ interval?: string | null;
1531
1594
  /**
1532
- * Is Primary
1533
- * @description Mark as primary media
1534
- * @default false
1595
+ * Interval Count
1596
+ * @description Number of intervals
1535
1597
  */
1536
- is_primary: boolean;
1537
- };
1538
- /**
1539
- * AnswerSubmitRequest
1540
- * @description Request model for submitting an answer
1541
- */
1542
- AnswerSubmitRequest: {
1598
+ interval_count?: number | null;
1543
1599
  /**
1544
- * Question Id
1545
- * @description External question ID (que_xxx)
1600
+ * Trial Period Days
1601
+ * @description Free trial days
1546
1602
  */
1547
- question_id: string;
1603
+ trial_period_days?: number | null;
1548
1604
  /**
1549
- * Selected Option Ids
1550
- * @description Selected option IDs for MCQ
1605
+ * Initial Amount
1606
+ * @description First payment amount
1551
1607
  */
1552
- selected_option_ids?: string[] | null;
1608
+ initial_amount?: number | null;
1553
1609
  /**
1554
- * Answer Text
1555
- * @description Text answer for essay/fill-blank
1610
+ * Gateway
1611
+ * @description stripe, razorpay, paypal, etc.
1556
1612
  */
1557
- answer_text?: string | null;
1613
+ gateway?: string | null;
1558
1614
  /**
1559
- * Answer Code
1560
- * @description Code answer for code questions
1615
+ * Requires Payment Method Upfront
1616
+ * @description Require payment method before trial
1617
+ * @default true
1561
1618
  */
1562
- answer_code?: string | null;
1563
- };
1564
- Extensions: {
1565
- /** @example GENERIC_ERROR */
1566
- message_code?: string;
1567
- /** @example [] */
1568
- invalid_params?: components["schemas"]["InvalidParam"][];
1569
- extra_data?: Record<string, never> | null;
1570
- /** @example Detailed debug information */
1571
- debug?: string | null;
1619
+ requires_payment_method_upfront: boolean;
1572
1620
  };
1573
1621
  /**
1574
1622
  * VariantPrice
@@ -1648,144 +1696,96 @@ export interface components {
1648
1696
  extensions?: components["schemas"]["Extensions"];
1649
1697
  };
1650
1698
  /**
1651
- * ManualGradingSubmitRequest
1652
- * @description Request model for submitting manual grading
1699
+ * ProductSection
1700
+ * @description Base product fields (maps to product_tbl)
1653
1701
  */
1654
- ManualGradingSubmitRequest: {
1702
+ ProductSection: {
1655
1703
  /**
1656
- * Marks Awarded
1657
- * @description Marks awarded
1704
+ * Visibility
1705
+ * @description public, private, hidden, unlisted
1706
+ * @default public
1658
1707
  */
1659
- marks_awarded: number;
1708
+ visibility: string;
1660
1709
  /**
1661
- * Grader Feedback
1662
- * @description Grader feedback
1710
+ * Is Digital
1711
+ * @description Digital product flag
1712
+ * @default true
1663
1713
  */
1664
- grader_feedback?: string | null;
1665
- };
1666
- /**
1667
- * PricingSection
1668
- * @description Pricing configuration (optional - can have product price, variant prices, or both)
1669
- */
1670
- PricingSection: {
1671
- /** @description Base product price (no variant) */
1672
- product_price?: components["schemas"]["ProductPrice"] | null;
1714
+ is_digital: boolean;
1673
1715
  /**
1674
- * Variant Prices
1675
- * @description Variant-specific prices
1716
+ * Company Id
1717
+ * @description Multi-company support
1676
1718
  */
1677
- variant_prices?: components["schemas"]["VariantPrice"][] | null;
1678
- };
1679
- /**
1680
- * IdentitySection
1681
- * @description Localized product content (maps to product_identity_tbl)
1682
- */
1683
- IdentitySection: {
1719
+ company_id?: number | null;
1684
1720
  /**
1685
- * Locale
1686
- * @description Locale: en-US, es-PR, fr-FR, pt-BR, etc.
1687
- * @default en-US
1721
+ * Status
1722
+ * @description draft, published, archived, review_required, deleted
1723
+ * @default draft
1688
1724
  */
1689
- locale: string;
1725
+ status: string;
1690
1726
  /**
1691
- * Title
1692
- * @description Product title
1727
+ * Is Org Level
1728
+ * @description Org-level vs user-created product
1729
+ * @default true
1693
1730
  */
1694
- title: string;
1731
+ is_org_level: boolean;
1695
1732
  /**
1696
- * Subtitle
1697
- * @description Product subtitle
1733
+ * Staff Id
1734
+ * @description Staff/instructor delivering product
1698
1735
  */
1699
- subtitle?: string | null;
1736
+ staff_id?: number | null;
1700
1737
  /**
1701
- * Description
1702
- * @description Full product description
1738
+ * Owner Id
1739
+ * @description Owner of the product
1703
1740
  */
1704
- description?: string | null;
1741
+ owner_id?: number | null;
1705
1742
  /**
1706
- * Short Description
1707
- * @description Short description for listings/previews
1743
+ * Featured
1744
+ * @description Featured product flag
1745
+ * @default false
1708
1746
  */
1709
- short_description?: string | null;
1747
+ featured: boolean;
1710
1748
  };
1711
1749
  /**
1712
- * VariantItem
1713
- * @description Product variant (maps to product_variants_tbl)
1750
+ * PricingSection
1751
+ * @description Pricing configuration (optional - can have product price, variant prices, or both)
1714
1752
  */
1715
- VariantItem: {
1716
- /**
1717
- * Name
1718
- * @description Variant display name
1719
- */
1720
- name: string;
1721
- /**
1722
- * Sku
1723
- * @description Stock Keeping Unit
1724
- */
1725
- sku?: string | null;
1726
- /**
1727
- * Attributes
1728
- * @description Custom attributes
1729
- */
1730
- attributes?: {
1731
- [key: string]: unknown;
1732
- } | null;
1733
- /**
1734
- * Is Default
1735
- * @description Set as default variant
1736
- * @default false
1737
- */
1738
- is_default: boolean;
1739
- /**
1740
- * Track Inventory
1741
- * @description Track stock for this variant
1742
- * @default false
1743
- */
1744
- track_inventory: boolean;
1745
- /**
1746
- * Stock Quantity
1747
- * @description Initial stock
1748
- */
1749
- stock_quantity?: number | null;
1750
- /**
1751
- * Allow Backorder
1752
- * @description Allow orders when out of stock
1753
- * @default false
1754
- */
1755
- allow_backorder: boolean;
1756
- /**
1757
- * Weight
1758
- * @description Weight in kg
1759
- */
1760
- weight?: number | null;
1761
- /**
1762
- * Length
1763
- * @description Length in cm
1764
- */
1765
- length?: number | null;
1766
- /**
1767
- * Width
1768
- * @description Width in cm
1769
- */
1770
- width?: number | null;
1771
- /**
1772
- * Height
1773
- * @description Height in cm
1774
- */
1775
- height?: number | null;
1776
- /**
1777
- * Display Order
1778
- * @description Display order
1779
- * @default 100
1780
- */
1781
- display_order: number;
1753
+ PricingSection: {
1754
+ /** @description Base product price (no variant) */
1755
+ product_price?: components["schemas"]["ProductPrice"] | null;
1782
1756
  /**
1783
- * Metadata
1784
- * @description Flexible metadata
1757
+ * Variant Prices
1758
+ * @description Variant-specific prices
1785
1759
  */
1786
- metadata?: {
1787
- [key: string]: unknown;
1788
- } | null;
1760
+ variant_prices?: components["schemas"]["VariantPrice"][] | null;
1761
+ };
1762
+ /**
1763
+ * TestUpdateRequest
1764
+ * @description Request model for updating a test
1765
+ */
1766
+ TestUpdateRequest: {
1767
+ /** Title */
1768
+ title?: string | null;
1769
+ /** Description */
1770
+ description?: string | null;
1771
+ /** Total Marks */
1772
+ total_marks?: number | null;
1773
+ /** Passing Marks */
1774
+ passing_marks?: number | null;
1775
+ /** Has Time Limit */
1776
+ has_time_limit?: boolean | null;
1777
+ /** Duration Minutes */
1778
+ duration_minutes?: number | null;
1779
+ /** Max Attempts */
1780
+ max_attempts?: number | null;
1781
+ /** Randomize Questions */
1782
+ randomize_questions?: boolean | null;
1783
+ /** Randomize Options */
1784
+ randomize_options?: boolean | null;
1785
+ /** Enable Proctoring */
1786
+ enable_proctoring?: boolean | null;
1787
+ /** Enable Browser Lockdown */
1788
+ enable_browser_lockdown?: boolean | null;
1789
1789
  };
1790
1790
  };
1791
1791
  responses: never;