academe-kit 0.3.8 → 0.4.0

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.
@@ -2778,6 +2778,726 @@ export interface paths {
2778
2778
  patch?: never;
2779
2779
  trace?: never;
2780
2780
  };
2781
+ "/institutions/curriculum-grids": {
2782
+ parameters: {
2783
+ query?: never;
2784
+ header?: never;
2785
+ path?: never;
2786
+ cookie?: never;
2787
+ };
2788
+ /**
2789
+ * List all curriculum grids
2790
+ * @description Retrieve a list of all curriculum grids with optional filters
2791
+ */
2792
+ get: {
2793
+ parameters: {
2794
+ query?: {
2795
+ /** @description Filter by institution ID */
2796
+ institutionId?: string;
2797
+ /** @description Filter by serie ID */
2798
+ serie?: string;
2799
+ /** @description Filter by active status */
2800
+ isActive?: boolean;
2801
+ /** @description Page number */
2802
+ page?: number;
2803
+ /** @description Items per page */
2804
+ limit?: number;
2805
+ };
2806
+ header?: never;
2807
+ path?: never;
2808
+ cookie?: never;
2809
+ };
2810
+ requestBody?: never;
2811
+ responses: {
2812
+ /** @description List of curriculum grids */
2813
+ 200: {
2814
+ headers: {
2815
+ [name: string]: unknown;
2816
+ };
2817
+ content: {
2818
+ "application/json": {
2819
+ /** @example success */
2820
+ status?: string;
2821
+ data?: components["schemas"]["CurriculumGrid"][];
2822
+ meta?: {
2823
+ total?: number;
2824
+ page?: number;
2825
+ limit?: number;
2826
+ totalPages?: number;
2827
+ };
2828
+ };
2829
+ };
2830
+ };
2831
+ 401: components["responses"]["Unauthorized"];
2832
+ 500: components["responses"]["ServerError"];
2833
+ };
2834
+ };
2835
+ put?: never;
2836
+ /**
2837
+ * Create a new curriculum grid
2838
+ * @description Create a new curriculum grid for an institution and serie
2839
+ */
2840
+ post: {
2841
+ parameters: {
2842
+ query?: never;
2843
+ header?: never;
2844
+ path?: never;
2845
+ cookie?: never;
2846
+ };
2847
+ requestBody: {
2848
+ content: {
2849
+ "application/json": components["schemas"]["CreateCurriculumGridDto"];
2850
+ };
2851
+ };
2852
+ responses: {
2853
+ /** @description Curriculum grid created successfully */
2854
+ 201: {
2855
+ headers: {
2856
+ [name: string]: unknown;
2857
+ };
2858
+ content: {
2859
+ "application/json": {
2860
+ /** @example success */
2861
+ status?: string;
2862
+ data?: components["schemas"]["CurriculumGrid"];
2863
+ };
2864
+ };
2865
+ };
2866
+ 400: components["responses"]["BadRequest"];
2867
+ 401: components["responses"]["Unauthorized"];
2868
+ 409: components["responses"]["Conflict"];
2869
+ 500: components["responses"]["ServerError"];
2870
+ };
2871
+ };
2872
+ delete?: never;
2873
+ options?: never;
2874
+ head?: never;
2875
+ patch?: never;
2876
+ trace?: never;
2877
+ };
2878
+ "/institutions/{institutionId}/curriculum-grids": {
2879
+ parameters: {
2880
+ query?: never;
2881
+ header?: never;
2882
+ path?: never;
2883
+ cookie?: never;
2884
+ };
2885
+ /**
2886
+ * List curriculum grids by institution
2887
+ * @description Retrieve all curriculum grids for a specific institution
2888
+ */
2889
+ get: {
2890
+ parameters: {
2891
+ query?: {
2892
+ /** @description Filter by serie ID */
2893
+ serie?: string;
2894
+ /** @description Filter by active status */
2895
+ isActive?: boolean;
2896
+ /** @description Page number */
2897
+ page?: number;
2898
+ /** @description Items per page */
2899
+ limit?: number;
2900
+ };
2901
+ header?: never;
2902
+ path: {
2903
+ /** @description Institution ID */
2904
+ institutionId: string;
2905
+ };
2906
+ cookie?: never;
2907
+ };
2908
+ requestBody?: never;
2909
+ responses: {
2910
+ /** @description List of curriculum grids */
2911
+ 200: {
2912
+ headers: {
2913
+ [name: string]: unknown;
2914
+ };
2915
+ content: {
2916
+ "application/json": {
2917
+ /** @example success */
2918
+ status?: string;
2919
+ data?: components["schemas"]["CurriculumGrid"][];
2920
+ meta?: {
2921
+ total?: number;
2922
+ page?: number;
2923
+ limit?: number;
2924
+ totalPages?: number;
2925
+ };
2926
+ };
2927
+ };
2928
+ };
2929
+ 401: components["responses"]["Unauthorized"];
2930
+ 404: components["responses"]["NotFound"];
2931
+ 500: components["responses"]["ServerError"];
2932
+ };
2933
+ };
2934
+ put?: never;
2935
+ post?: never;
2936
+ delete?: never;
2937
+ options?: never;
2938
+ head?: never;
2939
+ patch?: never;
2940
+ trace?: never;
2941
+ };
2942
+ "/institutions/curriculum-grids/{id}": {
2943
+ parameters: {
2944
+ query?: never;
2945
+ header?: never;
2946
+ path?: never;
2947
+ cookie?: never;
2948
+ };
2949
+ /**
2950
+ * Get curriculum grid by ID
2951
+ * @description Retrieve detailed information about a specific curriculum grid
2952
+ */
2953
+ get: {
2954
+ parameters: {
2955
+ query?: never;
2956
+ header?: never;
2957
+ path: {
2958
+ /** @description Resource ID */
2959
+ id: components["parameters"]["id"];
2960
+ };
2961
+ cookie?: never;
2962
+ };
2963
+ requestBody?: never;
2964
+ responses: {
2965
+ /** @description Curriculum grid information */
2966
+ 200: {
2967
+ headers: {
2968
+ [name: string]: unknown;
2969
+ };
2970
+ content: {
2971
+ "application/json": {
2972
+ /** @example success */
2973
+ status?: string;
2974
+ data?: components["schemas"]["CurriculumGrid"];
2975
+ };
2976
+ };
2977
+ };
2978
+ 400: components["responses"]["BadRequest"];
2979
+ 401: components["responses"]["Unauthorized"];
2980
+ 404: components["responses"]["NotFound"];
2981
+ 500: components["responses"]["ServerError"];
2982
+ };
2983
+ };
2984
+ put?: never;
2985
+ post?: never;
2986
+ /**
2987
+ * Delete curriculum grid
2988
+ * @description Remove a curriculum grid from the system
2989
+ */
2990
+ delete: {
2991
+ parameters: {
2992
+ query?: never;
2993
+ header?: never;
2994
+ path: {
2995
+ /** @description Resource ID */
2996
+ id: components["parameters"]["id"];
2997
+ };
2998
+ cookie?: never;
2999
+ };
3000
+ requestBody?: never;
3001
+ responses: {
3002
+ /** @description Curriculum grid deleted successfully */
3003
+ 204: {
3004
+ headers: {
3005
+ [name: string]: unknown;
3006
+ };
3007
+ content?: never;
3008
+ };
3009
+ 400: components["responses"]["BadRequest"];
3010
+ 401: components["responses"]["Unauthorized"];
3011
+ 404: components["responses"]["NotFound"];
3012
+ 500: components["responses"]["ServerError"];
3013
+ };
3014
+ };
3015
+ options?: never;
3016
+ head?: never;
3017
+ /**
3018
+ * Update curriculum grid
3019
+ * @description Update curriculum grid information
3020
+ */
3021
+ patch: {
3022
+ parameters: {
3023
+ query?: never;
3024
+ header?: never;
3025
+ path: {
3026
+ /** @description Resource ID */
3027
+ id: components["parameters"]["id"];
3028
+ };
3029
+ cookie?: never;
3030
+ };
3031
+ requestBody: {
3032
+ content: {
3033
+ "application/json": components["schemas"]["UpdateCurriculumGridDto"];
3034
+ };
3035
+ };
3036
+ responses: {
3037
+ /** @description Curriculum grid updated successfully */
3038
+ 200: {
3039
+ headers: {
3040
+ [name: string]: unknown;
3041
+ };
3042
+ content: {
3043
+ "application/json": {
3044
+ /** @example success */
3045
+ status?: string;
3046
+ data?: components["schemas"]["CurriculumGrid"];
3047
+ };
3048
+ };
3049
+ };
3050
+ 400: components["responses"]["BadRequest"];
3051
+ 401: components["responses"]["Unauthorized"];
3052
+ 404: components["responses"]["NotFound"];
3053
+ 409: components["responses"]["Conflict"];
3054
+ 500: components["responses"]["ServerError"];
3055
+ };
3056
+ };
3057
+ trace?: never;
3058
+ };
3059
+ "/institutions/educational-model-periods": {
3060
+ parameters: {
3061
+ query?: never;
3062
+ header?: never;
3063
+ path?: never;
3064
+ cookie?: never;
3065
+ };
3066
+ /**
3067
+ * List all educational model periods
3068
+ * @description Retrieve a list of all educational model periods, optionally filtered by educationModelId
3069
+ */
3070
+ get: {
3071
+ parameters: {
3072
+ query?: {
3073
+ /** @description Filter by educational model ID (institution ID) */
3074
+ educationModelId?: string;
3075
+ };
3076
+ header?: never;
3077
+ path?: never;
3078
+ cookie?: never;
3079
+ };
3080
+ requestBody?: never;
3081
+ responses: {
3082
+ /** @description List of educational model periods */
3083
+ 200: {
3084
+ headers: {
3085
+ [name: string]: unknown;
3086
+ };
3087
+ content: {
3088
+ "application/json": {
3089
+ /** @example success */
3090
+ status?: string;
3091
+ data?: components["schemas"]["EducationalModelPeriod"][];
3092
+ };
3093
+ };
3094
+ };
3095
+ 401: components["responses"]["Unauthorized"];
3096
+ 500: components["responses"]["ServerError"];
3097
+ };
3098
+ };
3099
+ put?: never;
3100
+ /**
3101
+ * Create a new educational model period
3102
+ * @description Create a new educational model period
3103
+ */
3104
+ post: {
3105
+ parameters: {
3106
+ query?: never;
3107
+ header?: never;
3108
+ path?: never;
3109
+ cookie?: never;
3110
+ };
3111
+ requestBody: {
3112
+ content: {
3113
+ "application/json": components["schemas"]["CreateEducationalModelPeriodDto"];
3114
+ };
3115
+ };
3116
+ responses: {
3117
+ /** @description Educational model period created successfully */
3118
+ 201: {
3119
+ headers: {
3120
+ [name: string]: unknown;
3121
+ };
3122
+ content: {
3123
+ "application/json": {
3124
+ /** @example success */
3125
+ status?: string;
3126
+ data?: components["schemas"]["EducationalModelPeriod"];
3127
+ };
3128
+ };
3129
+ };
3130
+ 400: components["responses"]["BadRequest"];
3131
+ 401: components["responses"]["Unauthorized"];
3132
+ 404: components["responses"]["NotFound"];
3133
+ 500: components["responses"]["ServerError"];
3134
+ };
3135
+ };
3136
+ delete?: never;
3137
+ options?: never;
3138
+ head?: never;
3139
+ patch?: never;
3140
+ trace?: never;
3141
+ };
3142
+ "/institutions/{institutionId}/educational-model/periods": {
3143
+ parameters: {
3144
+ query?: never;
3145
+ header?: never;
3146
+ path?: never;
3147
+ cookie?: never;
3148
+ };
3149
+ /**
3150
+ * Get educational model periods by institution
3151
+ * @description Retrieve all periods for a specific institution's educational model
3152
+ */
3153
+ get: {
3154
+ parameters: {
3155
+ query?: never;
3156
+ header?: never;
3157
+ path: {
3158
+ /** @description Institution ID (used as educational model ID) */
3159
+ institutionId: string;
3160
+ };
3161
+ cookie?: never;
3162
+ };
3163
+ requestBody?: never;
3164
+ responses: {
3165
+ /** @description List of educational model periods */
3166
+ 200: {
3167
+ headers: {
3168
+ [name: string]: unknown;
3169
+ };
3170
+ content: {
3171
+ "application/json": {
3172
+ /** @example success */
3173
+ status?: string;
3174
+ data?: components["schemas"]["EducationalModelPeriod"][];
3175
+ };
3176
+ };
3177
+ };
3178
+ 401: components["responses"]["Unauthorized"];
3179
+ 500: components["responses"]["ServerError"];
3180
+ };
3181
+ };
3182
+ put?: never;
3183
+ post?: never;
3184
+ delete?: never;
3185
+ options?: never;
3186
+ head?: never;
3187
+ patch?: never;
3188
+ trace?: never;
3189
+ };
3190
+ "/institutions/educational-model-periods/{id}": {
3191
+ parameters: {
3192
+ query?: never;
3193
+ header?: never;
3194
+ path?: never;
3195
+ cookie?: never;
3196
+ };
3197
+ /**
3198
+ * Get educational model period by ID
3199
+ * @description Retrieve a specific educational model period
3200
+ */
3201
+ get: {
3202
+ parameters: {
3203
+ query?: never;
3204
+ header?: never;
3205
+ path: {
3206
+ /** @description Educational model period ID */
3207
+ id: string;
3208
+ };
3209
+ cookie?: never;
3210
+ };
3211
+ requestBody?: never;
3212
+ responses: {
3213
+ /** @description Educational model period information */
3214
+ 200: {
3215
+ headers: {
3216
+ [name: string]: unknown;
3217
+ };
3218
+ content: {
3219
+ "application/json": {
3220
+ /** @example success */
3221
+ status?: string;
3222
+ data?: components["schemas"]["EducationalModelPeriod"];
3223
+ };
3224
+ };
3225
+ };
3226
+ 401: components["responses"]["Unauthorized"];
3227
+ 404: components["responses"]["NotFound"];
3228
+ 500: components["responses"]["ServerError"];
3229
+ };
3230
+ };
3231
+ put?: never;
3232
+ post?: never;
3233
+ /**
3234
+ * Delete educational model period
3235
+ * @description Remove an educational model period from the system
3236
+ */
3237
+ delete: {
3238
+ parameters: {
3239
+ query?: never;
3240
+ header?: never;
3241
+ path: {
3242
+ /** @description Educational model period ID */
3243
+ id: string;
3244
+ };
3245
+ cookie?: never;
3246
+ };
3247
+ requestBody?: never;
3248
+ responses: {
3249
+ /** @description Educational model period deleted successfully */
3250
+ 204: {
3251
+ headers: {
3252
+ [name: string]: unknown;
3253
+ };
3254
+ content?: never;
3255
+ };
3256
+ 400: components["responses"]["BadRequest"];
3257
+ 401: components["responses"]["Unauthorized"];
3258
+ 404: components["responses"]["NotFound"];
3259
+ 500: components["responses"]["ServerError"];
3260
+ };
3261
+ };
3262
+ options?: never;
3263
+ head?: never;
3264
+ /**
3265
+ * Update educational model period
3266
+ * @description Update educational model period information
3267
+ */
3268
+ patch: {
3269
+ parameters: {
3270
+ query?: never;
3271
+ header?: never;
3272
+ path: {
3273
+ /** @description Educational model period ID */
3274
+ id: string;
3275
+ };
3276
+ cookie?: never;
3277
+ };
3278
+ requestBody: {
3279
+ content: {
3280
+ "application/json": components["schemas"]["UpdateEducationalModelPeriodDto"];
3281
+ };
3282
+ };
3283
+ responses: {
3284
+ /** @description Educational model period updated successfully */
3285
+ 200: {
3286
+ headers: {
3287
+ [name: string]: unknown;
3288
+ };
3289
+ content: {
3290
+ "application/json": {
3291
+ /** @example success */
3292
+ status?: string;
3293
+ data?: components["schemas"]["EducationalModelPeriod"];
3294
+ };
3295
+ };
3296
+ };
3297
+ 400: components["responses"]["BadRequest"];
3298
+ 401: components["responses"]["Unauthorized"];
3299
+ 404: components["responses"]["NotFound"];
3300
+ 500: components["responses"]["ServerError"];
3301
+ };
3302
+ };
3303
+ trace?: never;
3304
+ };
3305
+ "/institutions/educational-models": {
3306
+ parameters: {
3307
+ query?: never;
3308
+ header?: never;
3309
+ path?: never;
3310
+ cookie?: never;
3311
+ };
3312
+ /**
3313
+ * List all educational models
3314
+ * @description Retrieve a list of all educational models
3315
+ */
3316
+ get: {
3317
+ parameters: {
3318
+ query?: never;
3319
+ header?: never;
3320
+ path?: never;
3321
+ cookie?: never;
3322
+ };
3323
+ requestBody?: never;
3324
+ responses: {
3325
+ /** @description List of educational models */
3326
+ 200: {
3327
+ headers: {
3328
+ [name: string]: unknown;
3329
+ };
3330
+ content: {
3331
+ "application/json": {
3332
+ /** @example success */
3333
+ status?: string;
3334
+ data?: components["schemas"]["EducationalModel"][];
3335
+ };
3336
+ };
3337
+ };
3338
+ 401: components["responses"]["Unauthorized"];
3339
+ 500: components["responses"]["ServerError"];
3340
+ };
3341
+ };
3342
+ put?: never;
3343
+ /**
3344
+ * Create a new educational model
3345
+ * @description Create a new educational model for an institution
3346
+ */
3347
+ post: {
3348
+ parameters: {
3349
+ query?: never;
3350
+ header?: never;
3351
+ path?: never;
3352
+ cookie?: never;
3353
+ };
3354
+ requestBody: {
3355
+ content: {
3356
+ "application/json": components["schemas"]["CreateEducationalModelDto"];
3357
+ };
3358
+ };
3359
+ responses: {
3360
+ /** @description Educational model created successfully */
3361
+ 201: {
3362
+ headers: {
3363
+ [name: string]: unknown;
3364
+ };
3365
+ content: {
3366
+ "application/json": {
3367
+ /** @example success */
3368
+ status?: string;
3369
+ data?: components["schemas"]["EducationalModel"];
3370
+ };
3371
+ };
3372
+ };
3373
+ 400: components["responses"]["BadRequest"];
3374
+ 401: components["responses"]["Unauthorized"];
3375
+ 404: components["responses"]["NotFound"];
3376
+ 409: components["responses"]["Conflict"];
3377
+ 500: components["responses"]["ServerError"];
3378
+ };
3379
+ };
3380
+ delete?: never;
3381
+ options?: never;
3382
+ head?: never;
3383
+ patch?: never;
3384
+ trace?: never;
3385
+ };
3386
+ "/institutions/{institutionId}/educational-model": {
3387
+ parameters: {
3388
+ query?: never;
3389
+ header?: never;
3390
+ path?: never;
3391
+ cookie?: never;
3392
+ };
3393
+ /**
3394
+ * Get educational model by institution
3395
+ * @description Retrieve educational model for a specific institution
3396
+ */
3397
+ get: {
3398
+ parameters: {
3399
+ query?: never;
3400
+ header?: never;
3401
+ path: {
3402
+ /** @description Institution ID */
3403
+ institutionId: string;
3404
+ };
3405
+ cookie?: never;
3406
+ };
3407
+ requestBody?: never;
3408
+ responses: {
3409
+ /** @description Educational model information (returns null if no model exists for the institution) */
3410
+ 200: {
3411
+ headers: {
3412
+ [name: string]: unknown;
3413
+ };
3414
+ content: {
3415
+ "application/json": {
3416
+ /** @example success */
3417
+ status?: string;
3418
+ /** @example null */
3419
+ data?: (components["schemas"]["EducationalModel"] | null) | null;
3420
+ };
3421
+ };
3422
+ };
3423
+ 401: components["responses"]["Unauthorized"];
3424
+ 500: components["responses"]["ServerError"];
3425
+ };
3426
+ };
3427
+ put?: never;
3428
+ post?: never;
3429
+ /**
3430
+ * Delete educational model
3431
+ * @description Remove an educational model from the system
3432
+ */
3433
+ delete: {
3434
+ parameters: {
3435
+ query?: never;
3436
+ header?: never;
3437
+ path: {
3438
+ /** @description Institution ID */
3439
+ institutionId: string;
3440
+ };
3441
+ cookie?: never;
3442
+ };
3443
+ requestBody?: never;
3444
+ responses: {
3445
+ /** @description Educational model deleted successfully */
3446
+ 204: {
3447
+ headers: {
3448
+ [name: string]: unknown;
3449
+ };
3450
+ content?: never;
3451
+ };
3452
+ 400: components["responses"]["BadRequest"];
3453
+ 401: components["responses"]["Unauthorized"];
3454
+ 404: components["responses"]["NotFound"];
3455
+ 500: components["responses"]["ServerError"];
3456
+ };
3457
+ };
3458
+ options?: never;
3459
+ head?: never;
3460
+ /**
3461
+ * Update educational model
3462
+ * @description Update educational model information
3463
+ */
3464
+ patch: {
3465
+ parameters: {
3466
+ query?: never;
3467
+ header?: never;
3468
+ path: {
3469
+ /** @description Institution ID */
3470
+ institutionId: string;
3471
+ };
3472
+ cookie?: never;
3473
+ };
3474
+ requestBody: {
3475
+ content: {
3476
+ "application/json": components["schemas"]["UpdateEducationalModelDto"];
3477
+ };
3478
+ };
3479
+ responses: {
3480
+ /** @description Educational model updated successfully */
3481
+ 200: {
3482
+ headers: {
3483
+ [name: string]: unknown;
3484
+ };
3485
+ content: {
3486
+ "application/json": {
3487
+ /** @example success */
3488
+ status?: string;
3489
+ data?: components["schemas"]["EducationalModel"];
3490
+ };
3491
+ };
3492
+ };
3493
+ 400: components["responses"]["BadRequest"];
3494
+ 401: components["responses"]["Unauthorized"];
3495
+ 404: components["responses"]["NotFound"];
3496
+ 500: components["responses"]["ServerError"];
3497
+ };
3498
+ };
3499
+ trace?: never;
3500
+ };
2781
3501
  "/institutions/seat-code/{seatCodeId}/classrooms": {
2782
3502
  parameters: {
2783
3503
  query?: never;
@@ -4760,7 +5480,7 @@ export interface paths {
4760
5480
  };
4761
5481
  trace?: never;
4762
5482
  };
4763
- "/plans": {
5483
+ "/products": {
4764
5484
  parameters: {
4765
5485
  query?: never;
4766
5486
  header?: never;
@@ -4768,14 +5488,20 @@ export interface paths {
4768
5488
  cookie?: never;
4769
5489
  };
4770
5490
  /**
4771
- * Get all plans
4772
- * @description Retrieve a list of all subscription plans
5491
+ * List all products
5492
+ * @description Retrieve a paginated list of all products
4773
5493
  */
4774
5494
  get: {
4775
5495
  parameters: {
4776
5496
  query?: {
4777
- /** @description Search plans by name or code */
5497
+ /** @description Filter by product name (partial match) */
5498
+ name?: string;
5499
+ /** @description Search products by name */
4778
5500
  search?: string;
5501
+ /** @description Page number */
5502
+ page?: number;
5503
+ /** @description Number of items per page */
5504
+ limit?: number;
4779
5505
  };
4780
5506
  header?: never;
4781
5507
  path?: never;
@@ -4783,21 +5509,33 @@ export interface paths {
4783
5509
  };
4784
5510
  requestBody?: never;
4785
5511
  responses: {
4786
- /** @description List of plans */
5512
+ /** @description List of products */
4787
5513
  200: {
4788
5514
  headers: {
4789
5515
  [name: string]: unknown;
4790
5516
  };
4791
5517
  content: {
4792
- "application/json": components["schemas"]["Plan"][];
5518
+ "application/json": {
5519
+ /** @example success */
5520
+ status?: string;
5521
+ data?: components["schemas"]["Product"][];
5522
+ meta?: {
5523
+ total?: number;
5524
+ page?: number;
5525
+ limit?: number;
5526
+ totalPages?: number;
5527
+ };
5528
+ };
4793
5529
  };
4794
5530
  };
5531
+ 401: components["responses"]["Unauthorized"];
5532
+ 500: components["responses"]["ServerError"];
4795
5533
  };
4796
5534
  };
4797
5535
  put?: never;
4798
5536
  /**
4799
- * Create a new plan
4800
- * @description Create a new subscription plan
5537
+ * Create a new product
5538
+ * @description Create a new product in the system
4801
5539
  */
4802
5540
  post: {
4803
5541
  parameters: {
@@ -4808,26 +5546,40 @@ export interface paths {
4808
5546
  };
4809
5547
  requestBody: {
4810
5548
  content: {
4811
- "application/json": components["schemas"]["CreatePlanDto"];
5549
+ "application/json": components["schemas"]["CreateProductDto"];
4812
5550
  };
4813
5551
  };
4814
5552
  responses: {
4815
- /** @description Plan created successfully */
5553
+ /** @description Product created successfully */
4816
5554
  201: {
4817
5555
  headers: {
4818
5556
  [name: string]: unknown;
4819
5557
  };
4820
5558
  content: {
4821
- "application/json": components["schemas"]["Plan"];
5559
+ "application/json": {
5560
+ /** @example success */
5561
+ status?: string;
5562
+ data?: components["schemas"]["Product"];
5563
+ };
4822
5564
  };
4823
5565
  };
4824
- /** @description Plan with this code already exists */
5566
+ 400: components["responses"]["BadRequest"];
5567
+ 401: components["responses"]["Unauthorized"];
5568
+ /** @description Product with this name already exists */
4825
5569
  409: {
4826
5570
  headers: {
4827
5571
  [name: string]: unknown;
4828
5572
  };
4829
- content?: never;
5573
+ content: {
5574
+ "application/json": {
5575
+ /** @example error */
5576
+ status?: string;
5577
+ /** @example Product with this name already exists */
5578
+ message?: string;
5579
+ };
5580
+ };
4830
5581
  };
5582
+ 500: components["responses"]["ServerError"];
4831
5583
  };
4832
5584
  };
4833
5585
  delete?: never;
@@ -4836,7 +5588,7 @@ export interface paths {
4836
5588
  patch?: never;
4837
5589
  trace?: never;
4838
5590
  };
4839
- "/plans/{id}": {
5591
+ "/products/{id}": {
4840
5592
  parameters: {
4841
5593
  query?: never;
4842
5594
  header?: never;
@@ -4844,111 +5596,117 @@ export interface paths {
4844
5596
  cookie?: never;
4845
5597
  };
4846
5598
  /**
4847
- * Get a plan by ID
4848
- * @description Retrieve details of a specific plan
5599
+ * Get product by ID
5600
+ * @description Retrieve detailed information about a specific product including associated seats
4849
5601
  */
4850
5602
  get: {
4851
5603
  parameters: {
4852
5604
  query?: never;
4853
5605
  header?: never;
4854
5606
  path: {
4855
- /** @description Plan ID */
5607
+ /** @description Product ID */
4856
5608
  id: string;
4857
5609
  };
4858
5610
  cookie?: never;
4859
5611
  };
4860
5612
  requestBody?: never;
4861
5613
  responses: {
4862
- /** @description Plan found */
5614
+ /** @description Product information */
4863
5615
  200: {
4864
5616
  headers: {
4865
5617
  [name: string]: unknown;
4866
5618
  };
4867
5619
  content: {
4868
- "application/json": components["schemas"]["Plan"];
4869
- };
4870
- };
4871
- /** @description Plan not found */
4872
- 404: {
4873
- headers: {
4874
- [name: string]: unknown;
5620
+ "application/json": {
5621
+ /** @example success */
5622
+ status?: string;
5623
+ data?: components["schemas"]["Product"];
5624
+ };
4875
5625
  };
4876
- content?: never;
4877
5626
  };
5627
+ 400: components["responses"]["BadRequest"];
5628
+ 401: components["responses"]["Unauthorized"];
5629
+ 404: components["responses"]["NotFound"];
5630
+ 500: components["responses"]["ServerError"];
4878
5631
  };
4879
5632
  };
4880
5633
  put?: never;
4881
5634
  post?: never;
4882
5635
  /**
4883
- * Delete a plan
4884
- * @description Delete an existing plan
5636
+ * Delete product
5637
+ * @description Remove a product from the system
4885
5638
  */
4886
5639
  delete: {
4887
5640
  parameters: {
4888
5641
  query?: never;
4889
5642
  header?: never;
4890
5643
  path: {
4891
- /** @description Plan ID */
5644
+ /** @description Product ID */
4892
5645
  id: string;
4893
5646
  };
4894
5647
  cookie?: never;
4895
5648
  };
4896
5649
  requestBody?: never;
4897
5650
  responses: {
4898
- /** @description Plan deleted successfully */
5651
+ /** @description Product deleted successfully */
4899
5652
  204: {
4900
5653
  headers: {
4901
5654
  [name: string]: unknown;
4902
5655
  };
4903
5656
  content?: never;
4904
5657
  };
4905
- /** @description Plan not found */
4906
- 404: {
4907
- headers: {
4908
- [name: string]: unknown;
4909
- };
4910
- content?: never;
4911
- };
5658
+ 400: components["responses"]["BadRequest"];
5659
+ 401: components["responses"]["Unauthorized"];
5660
+ 404: components["responses"]["NotFound"];
5661
+ 500: components["responses"]["ServerError"];
4912
5662
  };
4913
5663
  };
4914
5664
  options?: never;
4915
5665
  head?: never;
4916
5666
  /**
4917
- * Update a plan
4918
- * @description Update an existing plan
5667
+ * Update product
5668
+ * @description Update product information
4919
5669
  */
4920
5670
  patch: {
4921
5671
  parameters: {
4922
5672
  query?: never;
4923
5673
  header?: never;
4924
5674
  path: {
4925
- /** @description Plan ID */
5675
+ /** @description Product ID */
4926
5676
  id: string;
4927
5677
  };
4928
5678
  cookie?: never;
4929
5679
  };
4930
5680
  requestBody: {
4931
5681
  content: {
4932
- "application/json": components["schemas"]["UpdatePlanDto"];
5682
+ "application/json": components["schemas"]["UpdateProductDto"];
4933
5683
  };
4934
5684
  };
4935
5685
  responses: {
4936
- /** @description Plan updated successfully */
5686
+ /** @description Product updated successfully */
4937
5687
  200: {
4938
5688
  headers: {
4939
5689
  [name: string]: unknown;
4940
5690
  };
4941
5691
  content: {
4942
- "application/json": components["schemas"]["Plan"];
5692
+ "application/json": {
5693
+ /** @example success */
5694
+ status?: string;
5695
+ data?: components["schemas"]["Product"];
5696
+ };
4943
5697
  };
4944
5698
  };
4945
- /** @description Plan not found */
4946
- 404: {
5699
+ 400: components["responses"]["BadRequest"];
5700
+ 401: components["responses"]["Unauthorized"];
5701
+ 404: components["responses"]["NotFound"];
5702
+ /** @description Product with this name already exists */
5703
+ 409: {
4947
5704
  headers: {
4948
5705
  [name: string]: unknown;
4949
5706
  };
4950
5707
  content?: never;
4951
5708
  };
5709
+ 500: components["responses"]["ServerError"];
4952
5710
  };
4953
5711
  };
4954
5712
  trace?: never;
@@ -7285,259 +8043,62 @@ export interface paths {
7285
8043
  headers: {
7286
8044
  [name: string]: unknown;
7287
8045
  };
7288
- content: {
7289
- "application/json": {
7290
- /** @example success */
7291
- status?: string;
7292
- /** @example Shift deleted successfully */
7293
- message?: string;
7294
- };
7295
- };
7296
- };
7297
- 400: components["responses"]["BadRequest"];
7298
- 401: components["responses"]["Unauthorized"];
7299
- 404: components["responses"]["NotFound"];
7300
- 500: components["responses"]["ServerError"];
7301
- };
7302
- };
7303
- options?: never;
7304
- head?: never;
7305
- /**
7306
- * Update shift
7307
- * @description Update shift information
7308
- */
7309
- patch: {
7310
- parameters: {
7311
- query?: never;
7312
- header?: never;
7313
- path: {
7314
- /** @description Resource ID */
7315
- id: components["parameters"]["id"];
7316
- };
7317
- cookie?: never;
7318
- };
7319
- requestBody: {
7320
- content: {
7321
- "application/json": components["schemas"]["UpdateShiftDto"];
7322
- };
7323
- };
7324
- responses: {
7325
- /** @description Shift updated successfully */
7326
- 200: {
7327
- headers: {
7328
- [name: string]: unknown;
7329
- };
7330
- content: {
7331
- "application/json": {
7332
- /** @example success */
7333
- status?: string;
7334
- data?: components["schemas"]["Shift"];
7335
- /** @example Shift updated successfully */
7336
- message?: string;
7337
- };
7338
- };
7339
- };
7340
- 400: components["responses"]["BadRequest"];
7341
- 401: components["responses"]["Unauthorized"];
7342
- 404: components["responses"]["NotFound"];
7343
- 500: components["responses"]["ServerError"];
7344
- };
7345
- };
7346
- trace?: never;
7347
- };
7348
- "/subscriptions": {
7349
- parameters: {
7350
- query?: never;
7351
- header?: never;
7352
- path?: never;
7353
- cookie?: never;
7354
- };
7355
- /**
7356
- * Get all subscriptions
7357
- * @description Retrieve a list of all subscriptions with optional filters
7358
- */
7359
- get: {
7360
- parameters: {
7361
- query?: {
7362
- /** @description Filter by plan ID */
7363
- planId?: string;
7364
- /** @description Filter by institution ID */
7365
- institutionId?: string;
7366
- /** @description Filter by group ID */
7367
- groupId?: string;
7368
- };
7369
- header?: never;
7370
- path?: never;
7371
- cookie?: never;
7372
- };
7373
- requestBody?: never;
7374
- responses: {
7375
- /** @description List of subscriptions */
7376
- 200: {
7377
- headers: {
7378
- [name: string]: unknown;
7379
- };
7380
- content: {
7381
- "application/json": components["schemas"]["Subscription"][];
7382
- };
7383
- };
7384
- };
7385
- };
7386
- put?: never;
7387
- /**
7388
- * Create a new subscription
7389
- * @description Create a subscription linking a plan to an institution or group
7390
- */
7391
- post: {
7392
- parameters: {
7393
- query?: never;
7394
- header?: never;
7395
- path?: never;
7396
- cookie?: never;
7397
- };
7398
- requestBody: {
7399
- content: {
7400
- "application/json": components["schemas"]["CreateSubscriptionDto"];
7401
- };
7402
- };
7403
- responses: {
7404
- /** @description Subscription created successfully */
7405
- 201: {
7406
- headers: {
7407
- [name: string]: unknown;
7408
- };
7409
- content: {
7410
- "application/json": components["schemas"]["Subscription"];
7411
- };
7412
- };
7413
- /** @description Invalid request (missing required fields) */
7414
- 400: {
7415
- headers: {
7416
- [name: string]: unknown;
7417
- };
7418
- content?: never;
7419
- };
7420
- };
7421
- };
7422
- delete?: never;
7423
- options?: never;
7424
- head?: never;
7425
- patch?: never;
7426
- trace?: never;
7427
- };
7428
- "/subscriptions/{id}": {
7429
- parameters: {
7430
- query?: never;
7431
- header?: never;
7432
- path?: never;
7433
- cookie?: never;
7434
- };
7435
- /**
7436
- * Get a subscription by ID
7437
- * @description Retrieve details of a specific subscription
7438
- */
7439
- get: {
7440
- parameters: {
7441
- query?: never;
7442
- header?: never;
7443
- path: {
7444
- /** @description Subscription ID */
7445
- id: string;
7446
- };
7447
- cookie?: never;
7448
- };
7449
- requestBody?: never;
7450
- responses: {
7451
- /** @description Subscription found */
7452
- 200: {
7453
- headers: {
7454
- [name: string]: unknown;
7455
- };
7456
- content: {
7457
- "application/json": components["schemas"]["Subscription"];
7458
- };
7459
- };
7460
- /** @description Subscription not found */
7461
- 404: {
7462
- headers: {
7463
- [name: string]: unknown;
7464
- };
7465
- content?: never;
7466
- };
7467
- };
7468
- };
7469
- put?: never;
7470
- post?: never;
7471
- /**
7472
- * Delete a subscription
7473
- * @description Delete an existing subscription
7474
- */
7475
- delete: {
7476
- parameters: {
7477
- query?: never;
7478
- header?: never;
7479
- path: {
7480
- /** @description Subscription ID */
7481
- id: string;
7482
- };
7483
- cookie?: never;
7484
- };
7485
- requestBody?: never;
7486
- responses: {
7487
- /** @description Subscription deleted successfully */
7488
- 204: {
7489
- headers: {
7490
- [name: string]: unknown;
7491
- };
7492
- content?: never;
7493
- };
7494
- /** @description Subscription not found */
7495
- 404: {
7496
- headers: {
7497
- [name: string]: unknown;
8046
+ content: {
8047
+ "application/json": {
8048
+ /** @example success */
8049
+ status?: string;
8050
+ /** @example Shift deleted successfully */
8051
+ message?: string;
8052
+ };
7498
8053
  };
7499
- content?: never;
7500
8054
  };
8055
+ 400: components["responses"]["BadRequest"];
8056
+ 401: components["responses"]["Unauthorized"];
8057
+ 404: components["responses"]["NotFound"];
8058
+ 500: components["responses"]["ServerError"];
7501
8059
  };
7502
8060
  };
7503
8061
  options?: never;
7504
8062
  head?: never;
7505
8063
  /**
7506
- * Update a subscription
7507
- * @description Update an existing subscription
8064
+ * Update shift
8065
+ * @description Update shift information
7508
8066
  */
7509
8067
  patch: {
7510
8068
  parameters: {
7511
8069
  query?: never;
7512
8070
  header?: never;
7513
8071
  path: {
7514
- /** @description Subscription ID */
7515
- id: string;
8072
+ /** @description Resource ID */
8073
+ id: components["parameters"]["id"];
7516
8074
  };
7517
8075
  cookie?: never;
7518
8076
  };
7519
8077
  requestBody: {
7520
8078
  content: {
7521
- "application/json": components["schemas"]["UpdateSubscriptionDto"];
8079
+ "application/json": components["schemas"]["UpdateShiftDto"];
7522
8080
  };
7523
8081
  };
7524
8082
  responses: {
7525
- /** @description Subscription updated successfully */
8083
+ /** @description Shift updated successfully */
7526
8084
  200: {
7527
8085
  headers: {
7528
8086
  [name: string]: unknown;
7529
8087
  };
7530
8088
  content: {
7531
- "application/json": components["schemas"]["Subscription"];
7532
- };
7533
- };
7534
- /** @description Subscription not found */
7535
- 404: {
7536
- headers: {
7537
- [name: string]: unknown;
8089
+ "application/json": {
8090
+ /** @example success */
8091
+ status?: string;
8092
+ data?: components["schemas"]["Shift"];
8093
+ /** @example Shift updated successfully */
8094
+ message?: string;
8095
+ };
7538
8096
  };
7539
- content?: never;
7540
8097
  };
8098
+ 400: components["responses"]["BadRequest"];
8099
+ 401: components["responses"]["Unauthorized"];
8100
+ 404: components["responses"]["NotFound"];
8101
+ 500: components["responses"]["ServerError"];
7541
8102
  };
7542
8103
  };
7543
8104
  trace?: never;
@@ -9004,6 +9565,207 @@ export interface components {
9004
9565
  /** Format: date-time */
9005
9566
  updatedAt?: string;
9006
9567
  };
9568
+ CurriculumGrid: {
9569
+ /**
9570
+ * Format: uuid
9571
+ * @description Curriculum grid ID
9572
+ */
9573
+ id?: string;
9574
+ /**
9575
+ * Format: uuid
9576
+ * @description Institution ID
9577
+ */
9578
+ institutionId?: string;
9579
+ /**
9580
+ * Format: uuid
9581
+ * @description Serie ID
9582
+ */
9583
+ serie?: string;
9584
+ /**
9585
+ * @description Whether the curriculum grid is active
9586
+ * @default true
9587
+ */
9588
+ isActive: boolean;
9589
+ /** Format: date-time */
9590
+ createdAt?: string;
9591
+ /** Format: date-time */
9592
+ updatedAt?: string;
9593
+ };
9594
+ CreateCurriculumGridDto: {
9595
+ /**
9596
+ * Format: uuid
9597
+ * @description Institution ID
9598
+ */
9599
+ institutionId: string;
9600
+ /**
9601
+ * Format: uuid
9602
+ * @description Serie ID
9603
+ */
9604
+ serie: string;
9605
+ /**
9606
+ * @description Whether the curriculum grid is active
9607
+ * @default true
9608
+ */
9609
+ isActive: boolean;
9610
+ };
9611
+ UpdateCurriculumGridDto: {
9612
+ /**
9613
+ * Format: uuid
9614
+ * @description Institution ID
9615
+ */
9616
+ institutionId?: string;
9617
+ /**
9618
+ * Format: uuid
9619
+ * @description Serie ID
9620
+ */
9621
+ serie?: string;
9622
+ /** @description Whether the curriculum grid is active */
9623
+ isActive?: boolean;
9624
+ };
9625
+ EducationalModel: {
9626
+ /**
9627
+ * Format: uuid
9628
+ * @description Institution ID (primary key)
9629
+ */
9630
+ institutionId?: string;
9631
+ /**
9632
+ * @description Type of academic period (bimestre, semestre, trimestre)
9633
+ * @example bimestre
9634
+ */
9635
+ periodType?: string;
9636
+ /**
9637
+ * @description Pedagogical model type
9638
+ * @example grade_indicada
9639
+ */
9640
+ pedagogicalModel?: string;
9641
+ /**
9642
+ * @description Number of courses required to complete
9643
+ * @example 10
9644
+ */
9645
+ coursesToComplete?: number | null;
9646
+ /**
9647
+ * @description Type of deadline for course completion
9648
+ * @example semester
9649
+ */
9650
+ deadlineType?: string | null;
9651
+ /** Format: date-time */
9652
+ createdAt?: string;
9653
+ /** Format: date-time */
9654
+ updatedAt?: string;
9655
+ };
9656
+ CreateEducationalModelDto: {
9657
+ /**
9658
+ * Format: uuid
9659
+ * @description Institution ID
9660
+ */
9661
+ institutionId: string;
9662
+ /**
9663
+ * @description Type of academic period (bimestre, semestre, trimestre)
9664
+ * @example bimestre
9665
+ */
9666
+ periodType: string;
9667
+ /**
9668
+ * @description Pedagogical model type
9669
+ * @example grade_indicada
9670
+ */
9671
+ pedagogicalModel: string;
9672
+ /**
9673
+ * @description Number of courses required to complete
9674
+ * @example 10
9675
+ */
9676
+ coursesToComplete?: number | null;
9677
+ /**
9678
+ * @description Type of deadline for course completion
9679
+ * @example semester
9680
+ */
9681
+ deadlineType?: string | null;
9682
+ };
9683
+ UpdateEducationalModelDto: {
9684
+ /**
9685
+ * @description Type of academic period (bimestre, semestre, trimestre)
9686
+ * @example bimestre
9687
+ */
9688
+ periodType?: string;
9689
+ /**
9690
+ * @description Pedagogical model type
9691
+ * @example grade_indicada
9692
+ */
9693
+ pedagogicalModel?: string;
9694
+ /**
9695
+ * @description Number of courses required to complete
9696
+ * @example 10
9697
+ */
9698
+ coursesToComplete?: number | null;
9699
+ /**
9700
+ * @description Type of deadline for course completion
9701
+ * @example semester
9702
+ */
9703
+ deadlineType?: string | null;
9704
+ };
9705
+ EducationalModelPeriod: {
9706
+ /**
9707
+ * Format: uuid
9708
+ * @description Educational model period ID
9709
+ */
9710
+ id?: string;
9711
+ /**
9712
+ * Format: uuid
9713
+ * @description Educational model ID (institution ID)
9714
+ */
9715
+ educationModelId?: string;
9716
+ /**
9717
+ * Format: date-time
9718
+ * @description Period start date
9719
+ */
9720
+ start?: string;
9721
+ /**
9722
+ * Format: date-time
9723
+ * @description Period end date
9724
+ */
9725
+ end?: string;
9726
+ /** Format: date-time */
9727
+ createdAt?: string;
9728
+ /** Format: date-time */
9729
+ updatedAt?: string;
9730
+ };
9731
+ CreateEducationalModelPeriodDto: {
9732
+ /**
9733
+ * Format: uuid
9734
+ * @description Educational model ID (institution ID)
9735
+ */
9736
+ educationModelId: string;
9737
+ /**
9738
+ * Format: date-time
9739
+ * @description Period start date
9740
+ * @example 2024-02-03T00:00:00Z
9741
+ */
9742
+ start: string;
9743
+ /**
9744
+ * Format: date-time
9745
+ * @description Period end date
9746
+ * @example 2024-04-11T23:59:59Z
9747
+ */
9748
+ end: string;
9749
+ };
9750
+ UpdateEducationalModelPeriodDto: {
9751
+ /**
9752
+ * Format: uuid
9753
+ * @description Educational model ID (institution ID)
9754
+ */
9755
+ educationModelId?: string;
9756
+ /**
9757
+ * Format: date-time
9758
+ * @description Period start date
9759
+ * @example 2024-02-03T00:00:00Z
9760
+ */
9761
+ start?: string;
9762
+ /**
9763
+ * Format: date-time
9764
+ * @description Period end date
9765
+ * @example 2024-04-11T23:59:59Z
9766
+ */
9767
+ end?: string;
9768
+ };
9007
9769
  Application: {
9008
9770
  /**
9009
9771
  * Format: uuid
@@ -9263,6 +10025,11 @@ export interface components {
9263
10025
  * @description Group ID
9264
10026
  */
9265
10027
  groupId?: string;
10028
+ /**
10029
+ * Format: uuid
10030
+ * @description Product ID associated with this seat
10031
+ */
10032
+ productId?: string;
9266
10033
  /** @description Available quantity for this group in the institution */
9267
10034
  availableQuantity?: number;
9268
10035
  /** @description Number of users currently assigned to this group in the institution */
@@ -9272,6 +10039,7 @@ export interface components {
9272
10039
  /** Format: date-time */
9273
10040
  updatedAt?: string;
9274
10041
  group?: components["schemas"]["Group"];
10042
+ product?: components["schemas"]["Product"];
9275
10043
  };
9276
10044
  CreateSeatsDto: {
9277
10045
  /**
@@ -9279,6 +10047,11 @@ export interface components {
9279
10047
  * @description Group ID to associate with the institution
9280
10048
  */
9281
10049
  groupId: string;
10050
+ /**
10051
+ * Format: uuid
10052
+ * @description Product ID to associate with the seat
10053
+ */
10054
+ productId: string;
9282
10055
  /**
9283
10056
  * @description Available quantity for this group
9284
10057
  * @default 0
@@ -9288,76 +10061,71 @@ export interface components {
9288
10061
  UpdateSeatsDto: {
9289
10062
  /** @description New available quantity for this group */
9290
10063
  availableQuantity: number;
9291
- };
9292
- Plan: {
9293
10064
  /**
9294
10065
  * Format: uuid
9295
- * @description Unique identifier for the plan
9296
- */
9297
- id: string;
9298
- /**
9299
- * @description Unique code for the plan (e.g., gold_plan, free_tier)
9300
- * @example gold_plan
9301
- */
9302
- code: string;
9303
- /**
9304
- * @description Display name of the plan
9305
- * @example Plano Gold
9306
- */
9307
- name: string;
9308
- /**
9309
- * @description JSON object with plan settings and configurations
9310
- * @example {
9311
- * "maxUsers": 100,
9312
- * "features": [
9313
- * "analytics",
9314
- * "support"
9315
- * ]
9316
- * }
10066
+ * @description Product ID to associate with the seat (optional, to update the product)
9317
10067
  */
9318
- settings: Record<string, never>;
10068
+ productId?: string;
10069
+ };
10070
+ /**
10071
+ * @example {
10072
+ * "id": "550e8400-e29b-41d4-a716-446655440000",
10073
+ * "name": "Premium Plan",
10074
+ * "description": "Full access to all platform features",
10075
+ * "createdAt": "2024-01-15T10:30:00Z",
10076
+ * "updatedAt": "2024-01-15T10:30:00Z"
10077
+ * }
10078
+ */
10079
+ Product: {
9319
10080
  /**
9320
- * @description Whether the plan is currently active
9321
- * @default true
10081
+ * Format: uuid
10082
+ * @description Unique identifier of the product
9322
10083
  */
9323
- isActive: boolean;
10084
+ id?: string;
10085
+ /** @description Name of the product */
10086
+ name?: string;
10087
+ /** @description Description of the product */
10088
+ description?: string | null;
9324
10089
  /**
9325
10090
  * Format: date-time
9326
- * @description Timestamp when the plan was created
10091
+ * @description Creation timestamp
9327
10092
  */
9328
10093
  createdAt?: string;
9329
- };
9330
- CreatePlanDto: {
9331
10094
  /**
9332
- * @description Unique code for the plan
9333
- * @example gold_plan
10095
+ * Format: date-time
10096
+ * @description Last update timestamp
9334
10097
  */
9335
- code: string;
10098
+ updatedAt?: string;
10099
+ };
10100
+ /**
10101
+ * @example {
10102
+ * "id": "550e8400-e29b-41d4-a716-446655440000",
10103
+ * "name": "Premium Plan",
10104
+ * "description": "Full access to all platform features"
10105
+ * }
10106
+ */
10107
+ CreateProductDto: {
9336
10108
  /**
9337
- * @description Display name of the plan
9338
- * @example Plano Gold
10109
+ * Format: uuid
10110
+ * @description Optional custom UUID for the product (auto-generated if not provided)
9339
10111
  */
10112
+ id?: string;
10113
+ /** @description Name of the product */
9340
10114
  name: string;
9341
- /**
9342
- * @description JSON object with plan settings
9343
- * @example {
9344
- * "maxUsers": 100
9345
- * }
9346
- */
9347
- settings?: Record<string, never>;
9348
- /**
9349
- * @description Whether the plan is active
9350
- * @default true
9351
- */
9352
- isActive: boolean;
10115
+ /** @description Description of the product */
10116
+ description?: string;
9353
10117
  };
9354
- UpdatePlanDto: {
9355
- /** @description Display name of the plan */
10118
+ /**
10119
+ * @example {
10120
+ * "name": "Premium Plan Updated",
10121
+ * "description": "Updated description"
10122
+ * }
10123
+ */
10124
+ UpdateProductDto: {
10125
+ /** @description Name of the product */
9356
10126
  name?: string;
9357
- /** @description JSON object with plan settings */
9358
- settings?: Record<string, never>;
9359
- /** @description Whether the plan is active */
9360
- isActive?: boolean;
10127
+ /** @description Description of the product */
10128
+ description?: string;
9361
10129
  };
9362
10130
  StudentWithClass: {
9363
10131
  /** Format: uuid */
@@ -9442,71 +10210,6 @@ export interface components {
9442
10210
  totalStudents?: number;
9443
10211
  year?: number;
9444
10212
  };
9445
- Subscription: {
9446
- /**
9447
- * Format: uuid
9448
- * @description Unique identifier for the subscription
9449
- */
9450
- id: string;
9451
- /**
9452
- * Format: uuid
9453
- * @description ID of the associated plan
9454
- */
9455
- planId: string;
9456
- /**
9457
- * Format: uuid
9458
- * @description ID of the associated institution (optional)
9459
- */
9460
- institutionId?: string | null;
9461
- /**
9462
- * Format: uuid
9463
- * @description ID of the associated group (optional)
9464
- */
9465
- groupId?: string | null;
9466
- /**
9467
- * Format: date-time
9468
- * @description Timestamp when the subscription was created
9469
- */
9470
- createdAt?: string;
9471
- plan?: components["schemas"]["Plan"];
9472
- institution?: components["schemas"]["Institution"];
9473
- group?: components["schemas"]["Group"];
9474
- };
9475
- /** @description At least one of institutionId or groupId must be provided */
9476
- CreateSubscriptionDto: {
9477
- /**
9478
- * Format: uuid
9479
- * @description ID of the plan to subscribe to
9480
- */
9481
- planId: string;
9482
- /**
9483
- * Format: uuid
9484
- * @description ID of the institution (required if groupId is not provided)
9485
- */
9486
- institutionId?: string | null;
9487
- /**
9488
- * Format: uuid
9489
- * @description ID of the group (required if institutionId is not provided)
9490
- */
9491
- groupId?: string | null;
9492
- };
9493
- UpdateSubscriptionDto: {
9494
- /**
9495
- * Format: uuid
9496
- * @description ID of the plan
9497
- */
9498
- planId?: string;
9499
- /**
9500
- * Format: uuid
9501
- * @description ID of the institution
9502
- */
9503
- institutionId?: string | null;
9504
- /**
9505
- * Format: uuid
9506
- * @description ID of the group
9507
- */
9508
- groupId?: string | null;
9509
- };
9510
10213
  CreateUserDto: {
9511
10214
  /** @example John */
9512
10215
  firstName: string;
@@ -9548,6 +10251,12 @@ export interface components {
9548
10251
  * @example 550e8400-e29b-41d4-a716-446655440001
9549
10252
  */
9550
10253
  institutionId?: string;
10254
+ /**
10255
+ * Format: uuid
10256
+ * @description Optional guardian ID to associate the user with a guardian
10257
+ * @example 550e8400-e29b-41d4-a716-446655440002
10258
+ */
10259
+ guardianId?: string;
9551
10260
  };
9552
10261
  UserResponse: components["schemas"]["User"];
9553
10262
  CreateInstitutionDto: {