ardium-pl / GWW-Legal

0 stars 0 forks source link

Logic trees 🌳 #17

Closed WolnyMikolaj closed 1 week ago

WolnyMikolaj commented 1 week ago

//Zadanie dla Kuby

Zrób drzewka logiczne do wszystkich typów kategorii w TPR. Wiktoria musi dostać jasno rozpisane, które dane mają uzupełniać prawnicy, żeby zakodować tablice na froncie.

Drzewko:

TransakcjaKategoriaB │ ├── Kategoria (string: '1101' | '2101') [Required] │ ├── Przedmiot (string) [Required] │ ├── Wartość transakcji (number) [Required] │ ├── Kod waluty (string) [Required] │ ├── Kompensata (string: 'KS01' | 'KS02' | 'KS03') [Required] │ ├── KodZW1 (string: 'ZW01') [Required] │ ├── PodstZW (string: '11n1' | '11n1a' | '11n2') [Optional] │ ├── Kod kraju (string) [Required] │ ├── Wartość transakcji dla kraju (number) [Required] │ ├── Kod waluty dla kraju (string) [Required] │ ├── Korekta (string: 'KC01' | 'KC02') [Required] │ ├──IF 'KC01' │ │ ├── KorektaCT4 (string: 'KC01') [Required] │ │ ├── Wartość korekty (number) [Required] │ │ └── Kod waluty korekty (string) [Required] │ └── If 'KC02' │ └── BrakKorektyCT4 (string: 'KC02') [Required]

TS type:

export type TransakcjaKategoriaB< K extends KorektaCenTransferowych = KorektaCenTransferowych

= { KategoriaB: '1101'|'2101'; PrzedmiotB: string; WartoscB: [ { _attr: { kodWaluty: string; }; }, number ]; Kompensata: Kompensata; KodZW1: 'ZW01'; PodstZW?: PodstawaZwolnienia; InformacjaOKrajuB1: { Kraj: string; WartoscBKraj1: [ { _attr: { kodWaluty: string; }; }, number ]; }; } & (K extends 'KC01' ? KC01 : {}) & (K extends 'KC02' ? KC02 : {});

type KC01 = { KorektaCT4: 'KC01'; WartKorektyCT4: [ { _attr: { kodWaluty: string; }; }, number ]; };

type KC02 = { BrakKorektyCT4: 'KC02'; };

// Common types type KorektaCenTransferowych = 'KC01' | 'KC02'; type Kompensata = 'KS01' | 'KS02' | 'KS03'; type PodstawaZwolnienia = '11n1' | '11n1a' | '11n2';