refaktoryzacja service api.

wydzielenie mockow.
dodanie parsowania wyszukiwania
This commit is contained in:
2026-05-02 05:49:24 +02:00
parent 045c65c363
commit 93778065ce
20 changed files with 820 additions and 275 deletions

View File

@@ -182,7 +182,6 @@ Jeśli na karcie produktu ma być widoczny timeline, ten store powinien trzymać
},
filters: {
search: '',
modelId: null,
clientId: null,
finish: null,
@@ -190,6 +189,19 @@ Jeśli na karcie produktu ma być widoczny timeline, ten store powinien trzymać
year: null,
},
searchQuery: '123/1',
orderSearch: [
{
raw: '123/1',
type: 'orderNumberIndex',
match: 'exact',
orderNumber: 123,
orderNumberPrefix: null,
orderYear: null,
orderIndex: 1,
},
],
limit: 30,
offset: 30,
total: 184,
@@ -204,7 +216,7 @@ Jeśli na karcie produktu ma być widoczny timeline, ten store powinien trzymać
Endpoint:
```http
GET /mayo-api/products?limit=30&offset=0&search=regius
GET /mayo-api/products?limit=30&offset=0&search=123/1
```
Odpowiedź:
@@ -261,10 +273,22 @@ await productsStore.fetchNextPage()
Pobiera kolejną porcję produktów. Używaj tego przy lazy loading, gdy użytkownik zbliża się do końca listy.
```js
await productsStore.applyFilters({ search: 'regius' })
await productsStore.applyFilters({ finish: 'GLOSS' })
```
Ustawia filtry i pobiera listę od początku.
Ustawia filtry i pobiera listę od początku. Searchbar nie jest zwyklym filtrem, bo ma osobny parser numerow zamowien.
```js
productsStore.setSearchQuery('123/1')
```
Zapisuje tekst z searchbara i parsuje go do `orderSearch`.
```js
await productsStore.applySearch('123/1')
```
Zapisuje tekst searchbara, parsuje go i pobiera listę od początku.
```js
productsStore.applyTimelinePreviewUpdate(productId, timelinePreview)
@@ -914,7 +938,7 @@ Komponent wywołuje:
```js
productsStore.applyFilters({
search: 'regius',
finish: 'GLOSS',
})
```
@@ -924,6 +948,14 @@ Store:
2. resetuje offset,
3. pobiera pierwszą stronę listy od nowa.
Searchbar jest obslugiwany osobno:
```js
productsStore.applySearch('123/1')
```
To jest celowe, bo wyszukiwanie po numerze zamowienia ma wlasny parser i nie powinno mieszac sie z filtrami typu model, klient, finish albo lista produkcyjna.
### 4. Użytkownik otwiera specyfikację produktu
Komponent wywołuje: