@boxa-devops/depo-shared 1.0.5 → 1.1.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.
package/src/api.ts CHANGED
@@ -963,6 +963,57 @@ export interface paths {
963
963
  patch?: never;
964
964
  trace?: never;
965
965
  };
966
+ "/api/v1/admin/refs/loco-series/{code}/positions": {
967
+ parameters: {
968
+ query?: never;
969
+ header?: never;
970
+ path?: never;
971
+ cookie?: never;
972
+ };
973
+ /**
974
+ * List Series Positions
975
+ * @description Every type bound to this series, with the list it carries there.
976
+ *
977
+ * Types with no binding are deliberately absent rather than listed with their
978
+ * global list: the visualization has to be able to tell «this series says so»
979
+ * from «the type says so», and a merged view cannot.
980
+ */
981
+ get: operations["list_series_positions_api_v1_admin_refs_loco_series__code__positions_get"];
982
+ put?: never;
983
+ post?: never;
984
+ delete?: never;
985
+ options?: never;
986
+ head?: never;
987
+ patch?: never;
988
+ trace?: never;
989
+ };
990
+ "/api/v1/admin/refs/loco-series/{code}/positions/{nomenclature_id}": {
991
+ parameters: {
992
+ query?: never;
993
+ header?: never;
994
+ path?: never;
995
+ cookie?: never;
996
+ };
997
+ get?: never;
998
+ /**
999
+ * Bind Series Positions
1000
+ * @description Create or replace the binding. Idempotent by (series, type).
1001
+ */
1002
+ put: operations["bind_series_positions_api_v1_admin_refs_loco_series__code__positions__nomenclature_id__put"];
1003
+ post?: never;
1004
+ /**
1005
+ * Unbind Series Positions
1006
+ * @description Drop the binding: the type falls back to its global positions list.
1007
+ *
1008
+ * Absent binding is not an error — the operator's intent («this series has no
1009
+ * list of its own») already holds.
1010
+ */
1011
+ delete: operations["unbind_series_positions_api_v1_admin_refs_loco_series__code__positions__nomenclature_id__delete"];
1012
+ options?: never;
1013
+ head?: never;
1014
+ patch?: never;
1015
+ trace?: never;
1016
+ };
966
1017
  "/api/v1/admin/refs/{entity}": {
967
1018
  parameters: {
968
1019
  query?: never;
@@ -2876,6 +2927,30 @@ export interface paths {
2876
2927
  patch?: never;
2877
2928
  trace?: never;
2878
2929
  };
2930
+ "/api/v1/refs/loco-series-positions": {
2931
+ parameters: {
2932
+ query?: never;
2933
+ header?: never;
2934
+ path?: never;
2935
+ cookie?: never;
2936
+ };
2937
+ /**
2938
+ * Loco Series Positions
2939
+ * @description Per-series mount positions, for the terminal's chips.
2940
+ *
2941
+ * A small dictionary by design: only the types whose positions differ from
2942
+ * the global `nomenclature.positions` have a row. The client applies it as an
2943
+ * override — series row first, global list otherwise.
2944
+ */
2945
+ get: operations["loco_series_positions_api_v1_refs_loco_series_positions_get"];
2946
+ put?: never;
2947
+ post?: never;
2948
+ delete?: never;
2949
+ options?: never;
2950
+ head?: never;
2951
+ patch?: never;
2952
+ trace?: never;
2953
+ };
2879
2954
  "/api/v1/refs/nomenclature": {
2880
2955
  parameters: {
2881
2956
  query?: never;
@@ -7478,6 +7553,61 @@ export interface components {
7478
7553
  /** Photo Key */
7479
7554
  photo_key: string | null;
7480
7555
  };
7556
+ /**
7557
+ * LocoSeriesPositionIn
7558
+ * @description Bind a part type to a series with that machine's own position list.
7559
+ *
7560
+ * Normalised by the same validator as nomenclature.positions, so a list means
7561
+ * the same thing wherever it was typed. An empty list is rejected: «no
7562
+ * per-series list» is expressed by DELETEing the binding, which falls the
7563
+ * type back to its global list, not by saving emptiness that would read as
7564
+ * «this series has no positions».
7565
+ */
7566
+ LocoSeriesPositionIn: {
7567
+ /** Positions */
7568
+ positions: string[];
7569
+ };
7570
+ /**
7571
+ * LocoSeriesPositionOut
7572
+ * @description One binding as the admin visualization draws it.
7573
+ */
7574
+ LocoSeriesPositionOut: {
7575
+ /** Loco Series */
7576
+ loco_series: string;
7577
+ /**
7578
+ * Nomenclature Id
7579
+ * Format: uuid
7580
+ */
7581
+ nomenclature_id: string;
7582
+ /** Code */
7583
+ code: string;
7584
+ /** Name */
7585
+ name: string;
7586
+ /** Positions */
7587
+ positions: string[];
7588
+ };
7589
+ /**
7590
+ * LocoSeriesPositionRef
7591
+ * @description One binding: what positions a part type has on ONE series.
7592
+ *
7593
+ * Overrides NomenclatureRef.positions for that series only. A type with no
7594
+ * row here keeps the global list, so this dictionary is usually short and a
7595
+ * depot that never needs per-series lists syncs an empty one.
7596
+ */
7597
+ LocoSeriesPositionRef: {
7598
+ /** Loco Series */
7599
+ loco_series: string;
7600
+ /**
7601
+ * Nomenclature Id
7602
+ * Format: uuid
7603
+ */
7604
+ nomenclature_id: string;
7605
+ /**
7606
+ * Positions
7607
+ * @default []
7608
+ */
7609
+ positions: string[];
7610
+ };
7481
7611
  /**
7482
7612
  * LocoUnitCard
7483
7613
  * @description Machine card header = the registry row plus the card-only honesty bits.
@@ -13608,6 +13738,115 @@ export interface operations {
13608
13738
  };
13609
13739
  };
13610
13740
  };
13741
+ list_series_positions_api_v1_admin_refs_loco_series__code__positions_get: {
13742
+ parameters: {
13743
+ query?: never;
13744
+ header?: {
13745
+ "x-debug-person-id"?: string | null;
13746
+ };
13747
+ path: {
13748
+ code: string;
13749
+ };
13750
+ cookie?: {
13751
+ depo_admin_session?: string | null;
13752
+ };
13753
+ };
13754
+ requestBody?: never;
13755
+ responses: {
13756
+ /** @description Successful Response */
13757
+ 200: {
13758
+ headers: {
13759
+ [name: string]: unknown;
13760
+ };
13761
+ content: {
13762
+ "application/json": components["schemas"]["LocoSeriesPositionOut"][];
13763
+ };
13764
+ };
13765
+ /** @description Validation Error */
13766
+ 422: {
13767
+ headers: {
13768
+ [name: string]: unknown;
13769
+ };
13770
+ content: {
13771
+ "application/json": components["schemas"]["HTTPValidationError"];
13772
+ };
13773
+ };
13774
+ };
13775
+ };
13776
+ bind_series_positions_api_v1_admin_refs_loco_series__code__positions__nomenclature_id__put: {
13777
+ parameters: {
13778
+ query?: never;
13779
+ header?: {
13780
+ "x-debug-person-id"?: string | null;
13781
+ };
13782
+ path: {
13783
+ code: string;
13784
+ nomenclature_id: string;
13785
+ };
13786
+ cookie?: {
13787
+ depo_admin_session?: string | null;
13788
+ };
13789
+ };
13790
+ requestBody: {
13791
+ content: {
13792
+ "application/json": components["schemas"]["LocoSeriesPositionIn"];
13793
+ };
13794
+ };
13795
+ responses: {
13796
+ /** @description Successful Response */
13797
+ 200: {
13798
+ headers: {
13799
+ [name: string]: unknown;
13800
+ };
13801
+ content: {
13802
+ "application/json": components["schemas"]["LocoSeriesPositionOut"];
13803
+ };
13804
+ };
13805
+ /** @description Validation Error */
13806
+ 422: {
13807
+ headers: {
13808
+ [name: string]: unknown;
13809
+ };
13810
+ content: {
13811
+ "application/json": components["schemas"]["HTTPValidationError"];
13812
+ };
13813
+ };
13814
+ };
13815
+ };
13816
+ unbind_series_positions_api_v1_admin_refs_loco_series__code__positions__nomenclature_id__delete: {
13817
+ parameters: {
13818
+ query?: never;
13819
+ header?: {
13820
+ "x-debug-person-id"?: string | null;
13821
+ };
13822
+ path: {
13823
+ code: string;
13824
+ nomenclature_id: string;
13825
+ };
13826
+ cookie?: {
13827
+ depo_admin_session?: string | null;
13828
+ };
13829
+ };
13830
+ requestBody?: never;
13831
+ responses: {
13832
+ /** @description Successful Response */
13833
+ 204: {
13834
+ headers: {
13835
+ [name: string]: unknown;
13836
+ };
13837
+ content?: never;
13838
+ };
13839
+ /** @description Validation Error */
13840
+ 422: {
13841
+ headers: {
13842
+ [name: string]: unknown;
13843
+ };
13844
+ content: {
13845
+ "application/json": components["schemas"]["HTTPValidationError"];
13846
+ };
13847
+ };
13848
+ };
13849
+ };
13611
13850
  list_entity_api_v1_admin_refs__entity__get: {
13612
13851
  parameters: {
13613
13852
  query?: never;
@@ -17419,6 +17658,40 @@ export interface operations {
17419
17658
  };
17420
17659
  };
17421
17660
  };
17661
+ loco_series_positions_api_v1_refs_loco_series_positions_get: {
17662
+ parameters: {
17663
+ query?: never;
17664
+ header?: {
17665
+ authorization?: string | null;
17666
+ "x-debug-person-id"?: string | null;
17667
+ };
17668
+ path?: never;
17669
+ cookie?: {
17670
+ depo_admin_session?: string | null;
17671
+ };
17672
+ };
17673
+ requestBody?: never;
17674
+ responses: {
17675
+ /** @description Successful Response */
17676
+ 200: {
17677
+ headers: {
17678
+ [name: string]: unknown;
17679
+ };
17680
+ content: {
17681
+ "application/json": components["schemas"]["LocoSeriesPositionRef"][];
17682
+ };
17683
+ };
17684
+ /** @description Validation Error */
17685
+ 422: {
17686
+ headers: {
17687
+ [name: string]: unknown;
17688
+ };
17689
+ content: {
17690
+ "application/json": components["schemas"]["HTTPValidationError"];
17691
+ };
17692
+ };
17693
+ };
17694
+ };
17422
17695
  nomenclature_api_v1_refs_nomenclature_get: {
17423
17696
  parameters: {
17424
17697
  query?: {