
Adds a new API call (`getAllStockPiking`) to retrieve stock picking records from the backend. Refactors stock picking data models: - Renames models for better clarity (e.g., `StockPickingResponse` to `StockPickingResponseModel`). - Makes all model fields nullable to handle varying API responses gracefully. - Introduces specific nested models (`StockPickingCompanyModel`, `StockPickingPartnerModel`, `StockPickingLocationModel`, `StockPickingTypeModel`) for related entities, enhancing type safety and data structure. Integrates the new API call into `ReceptionPageModel` and introduces distinct loading states (`loadingUser`, `loadingReceptions`) for improved UI feedback.
103 lines
3.7 KiB
Dart
103 lines
3.7 KiB
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'stock_picking_model.freezed.dart';
|
|
part 'stock_picking_model.g.dart';
|
|
|
|
@freezed
|
|
abstract class StockPickingResponseModel with _$StockPickingResponseModel {
|
|
const factory StockPickingResponseModel({
|
|
String? jsonrpc,
|
|
int? id,
|
|
StockPickingResultModel? result,
|
|
}) = _StockPickingResponseModel;
|
|
|
|
factory StockPickingResponseModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingResponseModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingResultModel with _$StockPickingResultModel {
|
|
const factory StockPickingResultModel({
|
|
int? length,
|
|
List<StockPickingRecordModel>? records,
|
|
}) = _StockPickingResultModel;
|
|
|
|
factory StockPickingResultModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingResultModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingRecordModel with _$StockPickingRecordModel {
|
|
const factory StockPickingRecordModel({
|
|
int? id,
|
|
@JsonKey(name: 'company_id') StockPickingCompanyModel? companyId,
|
|
@JsonKey(name: 'priority') String? priority,
|
|
@JsonKey(name: 'name') String? name,
|
|
@JsonKey(name: 'partner_id') StockPickingPartnerModel? partnerId,
|
|
@JsonKey(name: 'location_dest_id')
|
|
StockPickingLocationModel? locationDestId,
|
|
@JsonKey(name: 'location_id') StockPickingLocationModel? locationId,
|
|
@JsonKey(name: 'user_id') dynamic userId,
|
|
@JsonKey(name: 'scheduled_date') String? scheduledDate,
|
|
@JsonKey(name: 'picking_type_code') String? pickingTypeCode,
|
|
@JsonKey(name: 'products_availability_state')
|
|
dynamic productsAvailabilityState,
|
|
@JsonKey(name: 'products_availability') dynamic productsAvailability,
|
|
@JsonKey(name: 'date_deadline') String? dateDeadline,
|
|
@JsonKey(name: 'date_done') dynamic dateDone,
|
|
@JsonKey(name: 'origin') String? origin,
|
|
@JsonKey(name: 'backorder_id') dynamic backorderId,
|
|
@JsonKey(name: 'picking_type_id') StockPickingTypeModel? pickingTypeId,
|
|
@JsonKey(name: 'state') String? state,
|
|
@JsonKey(name: 'activity_exception_decoration')
|
|
dynamic activityExceptionDecoration,
|
|
@JsonKey(name: 'activity_exception_icon') dynamic activityExceptionIcon,
|
|
@JsonKey(name: 'json_popover') dynamic jsonPopover,
|
|
}) = _StockPickingRecordModel;
|
|
|
|
factory StockPickingRecordModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingRecordModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingCompanyModel with _$StockPickingCompanyModel {
|
|
const factory StockPickingCompanyModel({@JsonKey(name: 'id') int? id}) =
|
|
_StockPickingCompanyModel;
|
|
|
|
factory StockPickingCompanyModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingCompanyModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingPartnerModel with _$StockPickingPartnerModel {
|
|
const factory StockPickingPartnerModel({
|
|
int? id,
|
|
@JsonKey(name: 'display_name') String? displayName,
|
|
}) = _StockPickingPartnerModel;
|
|
|
|
factory StockPickingPartnerModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingPartnerModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingLocationModel with _$StockPickingLocationModel {
|
|
const factory StockPickingLocationModel({
|
|
int? id,
|
|
@JsonKey(name: 'complete_name') String? completeName,
|
|
}) = _StockPickingLocationModel;
|
|
|
|
factory StockPickingLocationModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingLocationModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class StockPickingTypeModel with _$StockPickingTypeModel {
|
|
const factory StockPickingTypeModel({
|
|
int? id,
|
|
@JsonKey(name: 'display_name') String? displayName,
|
|
}) = _StockPickingTypeModel;
|
|
|
|
factory StockPickingTypeModel.fromJson(Map<String, dynamic> json) =>
|
|
_$StockPickingTypeModelFromJson(json);
|
|
}
|