iOS: Lagerorte umhängen, Unterkategorien anlegen, eigene Felder verwalten
- Lagerorte: LocationEditor hängt bestehende Orte jetzt um (Elternort auch beim Bearbeiten, eigene Unterorte ausgeschlossen); Client updateLocation + LocationUpdateRequest (parent_id wird immer gesendet, auch null). - Kategorien: beim Anlegen optionale Oberkategorie wählbar (Unterkategorie); mit Eltern erbt sie deren Verwaltungsart, sonst wird sie gewählt. - Eigene Felder: neue CategoryFieldsView + FieldEditor (anlegen/bearbeiten/ löschen von Feldern je Kategorie), erreichbar aus dem Kategorie-Editor; Client ownFieldDefinitions/create/update/deleteFieldDefinition + Models. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -280,6 +280,29 @@ actor APIClient {
|
||||
try await send(try makeRequest("/categories/\(categoryId)/fields"), as: [FieldDefinition].self)
|
||||
}
|
||||
|
||||
/// Nur die *eigenen* Felder einer Kategorie (ohne vererbte) – fuer die
|
||||
/// Feldverwaltung, wo man sie anlegt, bearbeitet und loescht.
|
||||
func ownFieldDefinitions(categoryId: Int) async throws -> [FieldDefinition] {
|
||||
try await send(try makeRequest("/field-definitions?category_id=\(categoryId)"),
|
||||
as: [FieldDefinition].self)
|
||||
}
|
||||
|
||||
func createFieldDefinition(_ payload: FieldDefinitionCreate) async throws -> FieldDefinition {
|
||||
var request = try makeRequest("/field-definitions", method: "POST")
|
||||
try jsonBody(&request, payload)
|
||||
return try await send(request, as: FieldDefinition.self)
|
||||
}
|
||||
|
||||
func updateFieldDefinition(id: Int, _ payload: FieldDefinitionUpdate) async throws -> FieldDefinition {
|
||||
var request = try makeRequest("/field-definitions/\(id)", method: "PATCH")
|
||||
try jsonBody(&request, payload)
|
||||
return try await send(request, as: FieldDefinition.self)
|
||||
}
|
||||
|
||||
func deleteFieldDefinition(id: Int) async throws {
|
||||
try await sendNoContent(try makeRequest("/field-definitions/\(id)", method: "DELETE"))
|
||||
}
|
||||
|
||||
/// Menge eines Gegenstands an einem Lagerort erhoehen.
|
||||
func objectCheckIn(_ payload: ObjectCheckInRequest) async throws -> StockResponse {
|
||||
var request = try makeRequest("/stock/checkin", method: "POST")
|
||||
@@ -358,6 +381,12 @@ actor APIClient {
|
||||
return try await send(request, as: StorageLocation.self)
|
||||
}
|
||||
|
||||
func updateLocation(id: Int, _ payload: LocationUpdateRequest) async throws -> StorageLocation {
|
||||
var request = try makeRequest("/locations/\(id)", method: "PATCH")
|
||||
try jsonBody(&request, payload)
|
||||
return try await send(request, as: StorageLocation.self)
|
||||
}
|
||||
|
||||
func deleteLocation(id: Int) async throws {
|
||||
try await sendNoContent(try makeRequest("/locations/\(id)", method: "DELETE"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user