From 4921843cf53549a72fc9434fa6960ef7da28feea Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Tue, 2 Jun 2026 17:56:53 +0530 Subject: [PATCH 01/27] Feature: Add DB models and API scaffolding for Repair Orders (#12064) --- src/backend/InvenTree/order/api.py | 637 ++++++++++++-------- src/backend/InvenTree/order/models.py | 261 ++++++-- src/backend/InvenTree/order/serializers.py | 231 ++++--- src/backend/InvenTree/order/status_codes.py | 16 + 4 files changed, 751 insertions(+), 394 deletions(-) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 9c608e32a5dc..3973b9f812a7 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -1818,9 +1818,9 @@ def __call__(self, request, *args, **kwargs): # Still nothing - return Unauth. header with info on how to authenticate # Information is needed by client, eg Thunderbird - response = JsonResponse({ - 'detail': 'Authentication credentials were not provided.' - }) + response = JsonResponse( + {'detail': 'Authentication credentials were not provided.'} + ) response['WWW-Authenticate'] = 'Basic realm="api"' response.status_code = 401 return response @@ -1927,299 +1927,462 @@ def item_link(self, item): return construct_absolute_url(item.get_absolute_url()) +class RepairOrderList(ListCreateAPI): + """API endpoint for accessing a list of RepairOrder objects.""" + + queryset = models.RepairOrder.objects.all() + serializer_class = serializers.RepairOrderSerializer + + +class RepairOrderDetail(RetrieveUpdateDestroyAPI): + """API endpoint for detail view of a single RepairOrder object.""" + + queryset = models.RepairOrder.objects.all() + serializer_class = serializers.RepairOrderSerializer + + +class RepairOrderLineItemList(ListCreateAPI): + """API endpoint for accessing a list of RepairOrderLineItem objects.""" + + queryset = models.RepairOrderLineItem.objects.all() + serializer_class = serializers.RepairOrderLineItemSerializer + + +class RepairOrderLineItemDetail(RetrieveUpdateDestroyAPI): + """API endpoint for detail view of a single RepairOrderLineItem object.""" + + queryset = models.RepairOrderLineItem.objects.all() + serializer_class = serializers.RepairOrderLineItemSerializer + + +class RepairOrderAllocationList(ListCreateAPI): + """API endpoint for accessing a list of RepairOrderAllocation objects.""" + + queryset = models.RepairOrderAllocation.objects.all() + serializer_class = serializers.RepairOrderAllocationSerializer + + +class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): + """API endpoint for detail view of a single RepairOrderAllocation object.""" + + queryset = models.RepairOrderAllocation.objects.all() + serializer_class = serializers.RepairOrderAllocationSerializer + + +repair_order_api_urls = [ + path( + '/', + include( + [path('', RepairOrderDetail.as_view(), name='api-repair-order-detail')] + ), + ), + path('', RepairOrderList.as_view(), name='api-repair-order-list'), +] + +repair_order_line_api_urls = [ + path( + '/', + include( + [ + path( + '', + RepairOrderLineItemDetail.as_view(), + name='api-repair-order-line-detail', + ) + ] + ), + ), + path('', RepairOrderLineItemList.as_view(), name='api-repair-order-line-list'), +] + +repair_order_allocation_api_urls = [ + path( + '/', + include( + [ + path( + '', + RepairOrderAllocationDetail.as_view(), + name='api-repair-order-allocation-detail', + ) + ] + ), + ), + path( + '', RepairOrderAllocationList.as_view(), name='api-repair-order-allocation-list' + ), +] + + order_api_urls = [ # API endpoints for purchase orders path( 'po/', - include([ - # Individual purchase order detail URLs - path( - '/', - include([ - path( - 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' - ), - path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), - path( - 'complete/', - PurchaseOrderComplete.as_view(), - name='api-po-complete', - ), - path('issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), - meta_path(models.PurchaseOrder), - path( - 'receive/', - PurchaseOrderReceive.as_view(), - name='api-po-receive', + include( + [ + # Individual purchase order detail URLs + path( + '/', + include( + [ + path( + 'cancel/', + PurchaseOrderCancel.as_view(), + name='api-po-cancel', + ), + path( + 'hold/', PurchaseOrderHold.as_view(), name='api-po-hold' + ), + path( + 'complete/', + PurchaseOrderComplete.as_view(), + name='api-po-complete', + ), + path( + 'issue/', + PurchaseOrderIssue.as_view(), + name='api-po-issue', + ), + meta_path(models.PurchaseOrder), + path( + 'receive/', + PurchaseOrderReceive.as_view(), + name='api-po-receive', + ), + # PurchaseOrder detail API endpoint + path( + '', PurchaseOrderDetail.as_view(), name='api-po-detail' + ), + ] ), - # PurchaseOrder detail API endpoint - path('', PurchaseOrderDetail.as_view(), name='api-po-detail'), - ]), - ), - # Purchase order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: PurchaseOrderStatus}, - name='api-po-status-codes', - ), - # Purchase order list - path('', PurchaseOrderList.as_view(), name='api-po-list'), - ]), + ), + # Purchase order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: PurchaseOrderStatus}, + name='api-po-status-codes', + ), + # Purchase order list + path('', PurchaseOrderList.as_view(), name='api-po-list'), + ] + ), ), # API endpoints for purchase order line items path( 'po-line/', - include([ - path( - '/', - include([ - meta_path(models.PurchaseOrderLineItem), - path( - '', - PurchaseOrderLineItemDetail.as_view(), - name='api-po-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.PurchaseOrderLineItem), + path( + '', + PurchaseOrderLineItemDetail.as_view(), + name='api-po-line-detail', + ), + ] ), - ]), - ), - path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), - ]), + ), + path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), + ] + ), ), # API endpoints for purchase order extra line path( 'po-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.PurchaseOrderExtraLine), - path( - '', - PurchaseOrderExtraLineDetail.as_view(), - name='api-po-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.PurchaseOrderExtraLine), + path( + '', + PurchaseOrderExtraLineDetail.as_view(), + name='api-po-extra-line-detail', + ), + ] ), - ]), - ), - path( - '', PurchaseOrderExtraLineList.as_view(), name='api-po-extra-line-list' - ), - ]), + ), + path( + '', + PurchaseOrderExtraLineList.as_view(), + name='api-po-extra-line-list', + ), + ] + ), ), # API endpoints for sales orders path( 'so/', - include([ - path( - 'shipment/', - include([ - path( - '/', - include([ + include( + [ + path( + 'shipment/', + include( + [ path( - 'ship/', - SalesOrderShipmentComplete.as_view(), - name='api-so-shipment-ship', + '/', + include( + [ + path( + 'ship/', + SalesOrderShipmentComplete.as_view(), + name='api-so-shipment-ship', + ), + meta_path(models.SalesOrderShipment), + path( + '', + SalesOrderShipmentDetail.as_view(), + name='api-so-shipment-detail', + ), + ] + ), ), - meta_path(models.SalesOrderShipment), path( '', - SalesOrderShipmentDetail.as_view(), - name='api-so-shipment-detail', + SalesOrderShipmentList.as_view(), + name='api-so-shipment-list', ), - ]), + ] ), - path( - '', - SalesOrderShipmentList.as_view(), - name='api-so-shipment-list', - ), - ]), - ), - # Sales order detail view - path( - '/', - include([ - path( - 'allocate/', - SalesOrderAllocate.as_view(), - name='api-so-allocate', - ), - path( - 'allocate-serials/', - SalesOrderAllocateSerials.as_view(), - name='api-so-allocate-serials', - ), - path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), - path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), - path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), - path( - 'complete/', - SalesOrderComplete.as_view(), - name='api-so-complete', + ), + # Sales order detail view + path( + '/', + include( + [ + path( + 'allocate/', + SalesOrderAllocate.as_view(), + name='api-so-allocate', + ), + path( + 'allocate-serials/', + SalesOrderAllocateSerials.as_view(), + name='api-so-allocate-serials', + ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), + path( + 'cancel/', + SalesOrderCancel.as_view(), + name='api-so-cancel', + ), + path( + 'issue/', SalesOrderIssue.as_view(), name='api-so-issue' + ), + path( + 'complete/', + SalesOrderComplete.as_view(), + name='api-so-complete', + ), + meta_path(models.SalesOrder), + # SalesOrder detail endpoint + path('', SalesOrderDetail.as_view(), name='api-so-detail'), + ] ), - meta_path(models.SalesOrder), - # SalesOrder detail endpoint - path('', SalesOrderDetail.as_view(), name='api-so-detail'), - ]), - ), - # Sales order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: SalesOrderStatus}, - name='api-so-status-codes', - ), - # Sales order list view - path('', SalesOrderList.as_view(), name='api-so-list'), - ]), + ), + # Sales order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: SalesOrderStatus}, + name='api-so-status-codes', + ), + # Sales order list view + path('', SalesOrderList.as_view(), name='api-so-list'), + ] + ), ), # API endpoints for sales order line items path( 'so-line/', - include([ - path( - '/', - include([ - meta_path(models.SalesOrderLineItem), - path( - '', - SalesOrderLineItemDetail.as_view(), - name='api-so-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.SalesOrderLineItem), + path( + '', + SalesOrderLineItemDetail.as_view(), + name='api-so-line-detail', + ), + ] ), - ]), - ), - path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), - ]), + ), + path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), + ] + ), ), # API endpoints for sales order extra line path( 'so-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.SalesOrderExtraLine), - path( - '', - SalesOrderExtraLineDetail.as_view(), - name='api-so-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.SalesOrderExtraLine), + path( + '', + SalesOrderExtraLineDetail.as_view(), + name='api-so-extra-line-detail', + ), + ] ), - ]), - ), - path('', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list'), - ]), + ), + path( + '', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list' + ), + ] + ), ), # API endpoints for sales order allocations path( 'so-allocation/', - include([ - path( - '/', - SalesOrderAllocationDetail.as_view(), - name='api-so-allocation-detail', - ), - path('', SalesOrderAllocationList.as_view(), name='api-so-allocation-list'), - ]), + include( + [ + path( + '/', + SalesOrderAllocationDetail.as_view(), + name='api-so-allocation-detail', + ), + path( + '', + SalesOrderAllocationList.as_view(), + name='api-so-allocation-list', + ), + ] + ), ), # API endpoints for return orders path( 'ro/', - include([ - # Return Order detail endpoints - path( - '/', - include([ - path( - 'cancel/', - ReturnOrderCancel.as_view(), - name='api-return-order-cancel', - ), - path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), - path( - 'complete/', - ReturnOrderComplete.as_view(), - name='api-return-order-complete', - ), - path( - 'issue/', - ReturnOrderIssue.as_view(), - name='api-return-order-issue', - ), - path( - 'receive/', - ReturnOrderReceive.as_view(), - name='api-return-order-receive', - ), - meta_path(models.ReturnOrder), - path( - '', ReturnOrderDetail.as_view(), name='api-return-order-detail' + include( + [ + # Return Order detail endpoints + path( + '/', + include( + [ + path( + 'cancel/', + ReturnOrderCancel.as_view(), + name='api-return-order-cancel', + ), + path( + 'hold/', ReturnOrderHold.as_view(), name='api-ro-hold' + ), + path( + 'complete/', + ReturnOrderComplete.as_view(), + name='api-return-order-complete', + ), + path( + 'issue/', + ReturnOrderIssue.as_view(), + name='api-return-order-issue', + ), + path( + 'receive/', + ReturnOrderReceive.as_view(), + name='api-return-order-receive', + ), + meta_path(models.ReturnOrder), + path( + '', + ReturnOrderDetail.as_view(), + name='api-return-order-detail', + ), + ] ), - ]), - ), - # Return order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderStatus}, - name='api-return-order-status-codes', - ), - # Return Order list - path('', ReturnOrderList.as_view(), name='api-return-order-list'), - ]), + ), + # Return order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderStatus}, + name='api-return-order-status-codes', + ), + # Return Order list + path('', ReturnOrderList.as_view(), name='api-return-order-list'), + ] + ), ), # API endpoints for return order lines path( 'ro-line/', - include([ - path( - '/', - include([ - meta_path(models.ReturnOrderLineItem), - path( - '', - ReturnOrderLineItemDetail.as_view(), - name='api-return-order-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.ReturnOrderLineItem), + path( + '', + ReturnOrderLineItemDetail.as_view(), + name='api-return-order-line-detail', + ), + ] ), - ]), - ), - # Return order line item status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderLineStatus}, - name='api-return-order-line-status-codes', - ), - path( - '', ReturnOrderLineItemList.as_view(), name='api-return-order-line-list' - ), - ]), + ), + # Return order line item status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderLineStatus}, + name='api-return-order-line-status-codes', + ), + path( + '', + ReturnOrderLineItemList.as_view(), + name='api-return-order-line-list', + ), + ] + ), ), # API endpoints for return order extra line path( 'ro-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.ReturnOrderExtraLine), - path( - '', - ReturnOrderExtraLineDetail.as_view(), - name='api-return-order-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.ReturnOrderExtraLine), + path( + '', + ReturnOrderExtraLineDetail.as_view(), + name='api-return-order-extra-line-detail', + ), + ] ), - ]), - ), - path( - '', - ReturnOrderExtraLineList.as_view(), - name='api-return-order-extra-line-list', - ), - ]), + ), + path( + '', + ReturnOrderExtraLineList.as_view(), + name='api-return-order-extra-line-list', + ), + ] + ), ), # API endpoint for subscribing to ICS calendar of purchase/sales/return orders re_path( - r'^calendar/(?Ppurchase-order|sales-order|return-order)/calendar.ics', + r'^calendar/(?Ppurchase-order|sales-order|return-order|repair-order)/calendar.ics', OrderCalendarExport(), name='api-po-so-calendar', ), + # Repair Order endpoints + path('repair/', include(repair_order_api_urls)), + path('repair-line/', include(repair_order_line_api_urls)), + path('repair-allocation/', include(repair_order_allocation_api_urls)), ] diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index c597e8c0114d..ba8d6e3773ef 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -49,6 +49,7 @@ from order.status_codes import ( PurchaseOrderStatus, PurchaseOrderStatusGroups, + RepairOrderStatus, ReturnOrderLineStatus, ReturnOrderStatus, ReturnOrderStatusGroups, @@ -322,9 +323,9 @@ def save(self, *args, **kwargs): if self.get_db_instance().status != self.status: pass else: - raise ValidationError({ - 'reference': _('This order is locked and cannot be modified') - }) + raise ValidationError( + {'reference': _('This order is locked and cannot be modified')} + ) # Reference calculations self.reference_int = self.rebuild_reference_field(self.reference) @@ -369,30 +370,36 @@ def clean(self): if self.REQUIRE_RESPONSIBLE_SETTING: if get_global_setting(self.REQUIRE_RESPONSIBLE_SETTING, backup_value=False): if not self.responsible: - raise ValidationError({ - 'responsible': _('Responsible user or group must be specified') - }) + raise ValidationError( + { + 'responsible': _( + 'Responsible user or group must be specified' + ) + } + ) # Check that the referenced 'contact' matches the correct 'company' if self.company and self.contact: if self.contact.company != self.company: - raise ValidationError({ - 'contact': _('Contact does not match selected company') - }) + raise ValidationError( + {'contact': _('Contact does not match selected company')} + ) # Target date should be *after* the start date if self.start_date and self.target_date and self.start_date > self.target_date: - raise ValidationError({ - 'target_date': _('Target date must be after start date'), - 'start_date': _('Start date must be before target date'), - }) + raise ValidationError( + { + 'target_date': _('Target date must be after start date'), + 'start_date': _('Start date must be before target date'), + } + ) # Check that the referenced 'address' matches the correct 'company' if self.company and self.address: if self.address.company != self.company: - raise ValidationError({ - 'address': _('Address does not match selected company') - }) + raise ValidationError( + {'address': _('Address does not match selected company')} + ) def clean_line_item(self, line): """Clean a line item for this order. @@ -435,8 +442,7 @@ def is_overdue(self): Makes use of the overdue_filter() method to avoid code duplication """ return ( - self.__class__.objects - .filter(pk=self.pk) + self.__class__.objects.filter(pk=self.pk) .filter(self.__class__.overdue_filter()) .exists() ) @@ -740,16 +746,16 @@ def add_line_item( try: quantity = int(quantity) if quantity <= 0: - raise ValidationError({ - 'quantity': _('Quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Quantity must be greater than zero')} + ) except ValueError: raise ValidationError({'quantity': _('Invalid quantity provided')}) if supplier_part.supplier != self.supplier: - raise ValidationError({ - 'supplier': _('Part supplier must match PO supplier') - }) + raise ValidationError( + {'supplier': _('Part supplier must match PO supplier')} + ) if group: # Check if there is already a matching line item (for this PurchaseOrder) @@ -1034,9 +1040,9 @@ def receive_line_items( try: if quantity < 0: - raise ValidationError({ - 'quantity': _('Quantity must be a positive number') - }) + raise ValidationError( + {'quantity': _('Quantity must be a positive number')} + ) quantity = InvenTree.helpers.clean_decimal(quantity) except TypeError: raise ValidationError({'quantity': _('Invalid quantity provided')}) @@ -1774,9 +1780,9 @@ def save(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) update_order = kwargs.pop('update_order', True) @@ -1799,9 +1805,9 @@ def delete(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) super().delete(*args, **kwargs) self.order.save() @@ -1960,33 +1966,37 @@ def clean(self) -> None: if self.build_order: if not self.build_order.external: - raise ValidationError({ - 'build_order': _('Build order must be marked as external') - }) + raise ValidationError( + {'build_order': _('Build order must be marked as external')} + ) if part: if not part.assembly: - raise ValidationError({ - 'build_order': _( - 'Build orders can only be linked to assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'Build orders can only be linked to assembly parts' + ) + } + ) if self.build_order.part != self.part.part: - raise ValidationError({ - 'build_order': _('Build order part must match line item part') - }) + raise ValidationError( + {'build_order': _('Build order part must match line item part')} + ) # Extra checks for external builds if part and part.assembly and get_global_setting('BUILDORDER_EXTERNAL_BUILDS'): if not self.build_order and get_global_setting( 'BUILDORDER_EXTERNAL_REQUIRED' ): - raise ValidationError({ - 'build_order': _( - 'An external build order is required for assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'An external build order is required for assembly parts' + ) + } + ) def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" @@ -2170,9 +2180,9 @@ def clean(self) -> None: if self.part: if not self.part.salable: - raise ValidationError({ - 'part': _('Only salable parts can be assigned to a sales order') - }) + raise ValidationError( + {'part': _('Only salable parts can be assigned to a sales order')} + ) order = models.ForeignKey( SalesOrder, @@ -2332,9 +2342,9 @@ def clean(self) -> None: if self.order and self.shipment_address: if self.shipment_address.company != self.order.customer: - raise ValidationError({ - 'shipment_address': _('Shipment address must match the customer') - }) + raise ValidationError( + {'shipment_address': _('Shipment address must match the customer')} + ) @staticmethod def get_api_url() -> str: @@ -3066,19 +3076,19 @@ def clean(self): raise ValidationError({'item': _('Stock item must be specified')}) if self.quantity > self.item.quantity: - raise ValidationError({ - 'quantity': _('Return quantity exceeds stock quantity') - }) + raise ValidationError( + {'quantity': _('Return quantity exceeds stock quantity')} + ) if self.quantity <= 0: - raise ValidationError({ - 'quantity': _('Return quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Return quantity must be greater than zero')} + ) if self.item.serialized and self.quantity != 1: - raise ValidationError({ - 'quantity': _('Invalid quantity for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Invalid quantity for serialized stock item')} + ) order = models.ForeignKey( ReturnOrder, @@ -3193,3 +3203,126 @@ def _touch_order_updated_at(instance): def update_order_on_lineitem_change(sender, instance, **kwargs): """Update parent order updated_at when any line item is saved or deleted.""" _touch_order_updated_at(instance) + + +class RepairOrder( + InvenTree.models.InvenTreeAttachmentMixin, + InvenTree.models.InvenTreeNotesMixin, + InvenTree.models.InvenTreeMetadataModel, +): + """A RepairOrder represents a repair request from a customer.""" + + class Meta: + verbose_name = _('Repair Order') + + reference = models.CharField( + max_length=100, + unique=True, + blank=False, + null=False, + help_text=_('Repair Order Reference'), + verbose_name=_('Reference'), + ) + + customer = models.ForeignKey( + 'company.Company', + on_delete=models.SET_NULL, + blank=True, + null=True, + related_name='repair_orders', + limit_choices_to={'is_customer': True}, + verbose_name=_('Customer'), + help_text=_('Customer reference'), + ) + + description = models.CharField( + max_length=250, + verbose_name=_('Description'), + help_text=_('Repair order description'), + ) + + symptoms = models.TextField( + blank=True, + verbose_name=_('Symptoms'), + help_text=_('Reported symptoms or issues'), + ) + + status = models.IntegerField( + default=RepairOrderStatus.PENDING.value, + choices=RepairOrderStatus.items(), + verbose_name=_('Status'), + help_text=_('Repair order status'), + ) + + @staticmethod + def get_api_url(): + return reverse('api-repair-order-list') + + +class RepairOrderLineItem(InvenTree.models.InvenTreeMetadataModel): + """Model for a repair order line item.""" + + class Meta: + verbose_name = _('Repair Order Line Item') + + order = models.ForeignKey( + RepairOrder, + on_delete=models.CASCADE, + related_name='lines', + verbose_name=_('Repair Order'), + ) + + part = models.ForeignKey( + 'part.Part', + on_delete=models.SET_NULL, + blank=True, + null=True, + related_name='repair_order_line_items', + verbose_name=_('Part'), + help_text=_('Part to be consumed for repair'), + ) + + quantity = models.DecimalField( + max_digits=15, + decimal_places=5, + default=1, + verbose_name=_('Quantity'), + help_text=_('Item quantity required for repair'), + ) + + @staticmethod + def get_api_url(): + return reverse('api-repair-order-line-list') + + +class RepairOrderAllocation(models.Model): + """Model linking RepairOrderLineItem to specific stock.StockItem quantities.""" + + class Meta: + verbose_name = _('Repair Order Allocation') + + line = models.ForeignKey( + RepairOrderLineItem, + on_delete=models.CASCADE, + related_name='allocations', + verbose_name=_('Line Item'), + ) + + item = models.ForeignKey( + 'stock.StockItem', + on_delete=models.CASCADE, + related_name='repair_order_allocations', + verbose_name=_('Stock Item'), + ) + + quantity = models.DecimalField( + max_digits=15, + decimal_places=5, + default=1, + verbose_name=_('Quantity'), + help_text=_('Allocated stock quantity'), + ) + + @staticmethod + def get_api_url(): + return reverse('api-repair-order-allocation-list') diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 80a2765b03e1..ce1799b65576 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -384,17 +384,19 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrder - fields = AbstractOrderSerializer.order_fields([ - 'complete_date', - 'supplier', - 'supplier_detail', - 'supplier_reference', - 'supplier_name', - 'total_price', - 'order_currency', - 'destination', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'complete_date', + 'supplier', + 'supplier_detail', + 'supplier_reference', + 'supplier_name', + 'total_price', + 'order_currency', + 'destination', + 'updated_at', + ] + ) read_only_fields = [ 'issue_date', 'complete_date', @@ -551,28 +553,30 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'part', - 'build_order', - 'overdue', - 'received', - 'purchase_price', - 'purchase_price_currency', - 'auto_pricing', - 'destination', - 'total_price', - 'merge_items', - 'sku', - 'mpn', - 'ipn', - 'internal_part', - 'internal_part_name', - # Filterable detail fields - 'build_order_detail', - 'destination_detail', - 'part_detail', - 'supplier_part_detail', - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'part', + 'build_order', + 'overdue', + 'received', + 'purchase_price', + 'purchase_price_currency', + 'auto_pricing', + 'destination', + 'total_price', + 'merge_items', + 'sku', + 'mpn', + 'ipn', + 'internal_part', + 'internal_part_name', + # Filterable detail fields + 'build_order_detail', + 'destination_detail', + 'part_detail', + 'supplier_part_detail', + ] + ) def skip_create_fields(self): """Return a list of fields to skip when creating a new object.""" @@ -781,10 +785,12 @@ def validate(self, data): supplier_part is not None and supplier_part.supplier != purchase_order.supplier ): - raise ValidationError({ - 'part': _('Supplier must match purchase order'), - 'order': _('Purchase order must match supplier'), - }) + raise ValidationError( + { + 'part': _('Supplier must match purchase order'), + 'order': _('Purchase order must match supplier'), + } + ) return data @@ -1019,9 +1025,9 @@ def validate(self, data): item['location'] = line.get_destination() if not item['location']: - raise ValidationError({ - 'location': _('Destination location must be specified') - }) + raise ValidationError( + {'location': _('Destination location must be specified')} + ) barcode = item.get('barcode', '') @@ -1071,18 +1077,20 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrder - fields = AbstractOrderSerializer.order_fields([ - 'customer', - 'customer_detail', - 'customer_reference', - 'shipment_date', - 'total_price', - 'order_currency', - 'shipments_count', - 'completed_shipments_count', - 'allocated_lines', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'customer', + 'customer_detail', + 'customer_reference', + 'shipment_date', + 'total_price', + 'order_currency', + 'shipments_count', + 'completed_shipments_count', + 'allocated_lines', + 'updated_at', + ] + ) read_only_fields = ['status', 'creation_date', 'shipment_date', 'updated_at'] extra_kwargs = {'order_currency': {'required': False}} @@ -1184,22 +1192,24 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'allocated', - 'customer_detail', - 'overdue', - 'part', - 'part_detail', - 'sale_price', - 'sale_price_currency', - 'shipped', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'allocated', + 'customer_detail', + 'overdue', + 'part', + 'part_detail', + 'sale_price', + 'sale_price_currency', + 'shipped', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ] + ) @staticmethod def annotate_queryset(queryset): @@ -1669,14 +1679,14 @@ def validate(self, data): stock_item.hasRequiredTests() and not stock_item.passedAllRequiredTests() ): - raise ValidationError({ - 'stock_item': _('Stock item has not passed all required tests') - }) + raise ValidationError( + {'stock_item': _('Stock item has not passed all required tests')} + ) if stock_item.serialized and quantity != 1: - raise ValidationError({ - 'quantity': _('Quantity must be 1 for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Quantity must be 1 for serialized stock item')} + ) q = normalize(stock_item.unallocated_quantity()) @@ -2026,15 +2036,17 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrder - fields = AbstractOrderSerializer.order_fields([ - 'complete_date', - 'customer', - 'customer_detail', - 'customer_reference', - 'order_currency', - 'total_price', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'complete_date', + 'customer', + 'customer_detail', + 'customer_reference', + 'order_currency', + 'total_price', + 'updated_at', + ] + ) read_only_fields = ['creation_date', 'updated_at'] def skip_create_fields(self): @@ -2220,16 +2232,18 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'item', - 'received_date', - 'outcome', - 'price', - 'price_currency', - # Filterable detail fields - 'item_detail', - 'part_detail', - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'item', + 'received_date', + 'outcome', + 'price', + 'price_currency', + # Filterable detail fields + 'item_detail', + 'part_detail', + ] + ) order_detail = OptionalField( serializer_class=ReturnOrderSerializer, @@ -2298,3 +2312,34 @@ class Meta(AbstractExtraLineMeta): 'allow_null': True, }, ) + + +class RepairOrderSerializer(InvenTreeModelSerializer): + """Serializer for the RepairOrder model.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrder + fields = ['pk', 'reference', 'customer', 'description', 'symptoms', 'status'] + read_only_fields = ['reference'] + + +class RepairOrderLineItemSerializer(InvenTreeModelSerializer): + """Serializer for the RepairOrderLineItem model.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrderLineItem + fields = ['pk', 'order', 'part', 'quantity'] + + +class RepairOrderAllocationSerializer(InvenTreeModelSerializer): + """Serializer for the RepairOrderAllocation model.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrderAllocation + fields = ['pk', 'line', 'item', 'quantity'] diff --git a/src/backend/InvenTree/order/status_codes.py b/src/backend/InvenTree/order/status_codes.py index 7ec5756b9252..c2940f17671f 100644 --- a/src/backend/InvenTree/order/status_codes.py +++ b/src/backend/InvenTree/order/status_codes.py @@ -115,3 +115,19 @@ class ReturnOrderLineStatus(StatusCode): # Item is rejected REJECT = 60, _('Reject'), ColorEnum.danger + + +class RepairOrderStatus(StatusCode): + """Defines a set of status codes for a RepairOrder.""" + + PENDING = 10, _('Pending'), ColorEnum.secondary + IN_PROGRESS = 20, _('In Progress'), ColorEnum.primary + COMPLETED = 30, _('Completed'), ColorEnum.success + + +class RepairOrderStatusGroups: + """Groups for RepairOrderStatus codes.""" + + OPEN = [RepairOrderStatus.PENDING.value, RepairOrderStatus.IN_PROGRESS.value] + + COMPLETE = [RepairOrderStatus.COMPLETED.value] From 75183ebeb86e997b12a6fdd232027d4385c52811 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 3 Jun 2026 08:48:30 +0200 Subject: [PATCH 02/27] fix style with `prek run -a` locally --- src/backend/InvenTree/order/models.py | 125 ++++++------- src/backend/InvenTree/order/serializers.py | 200 ++++++++++----------- 2 files changed, 151 insertions(+), 174 deletions(-) diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 0d65b8c2df8d..22533a294973 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -351,9 +351,9 @@ def save(self, *args, **kwargs): if self.get_db_instance().status != self.status: pass else: - raise ValidationError( - {'reference': _('This order is locked and cannot be modified')} - ) + raise ValidationError({ + 'reference': _('This order is locked and cannot be modified') + }) # Reference calculations self.reference_int = self.rebuild_reference_field(self.reference) @@ -398,13 +398,9 @@ def clean(self): if self.REQUIRE_RESPONSIBLE_SETTING: if get_global_setting(self.REQUIRE_RESPONSIBLE_SETTING, backup_value=False): if not self.responsible: - raise ValidationError( - { - 'responsible': _( - 'Responsible user or group must be specified' - ) - } - ) + raise ValidationError({ + 'responsible': _('Responsible user or group must be specified') + }) # Check that the referenced 'contact' matches the correct 'company' if ( @@ -420,12 +416,10 @@ def clean(self): # Target date should be *after* the start date if self.start_date and self.target_date and self.start_date > self.target_date: - raise ValidationError( - { - 'target_date': _('Target date must be after start date'), - 'start_date': _('Start date must be before target date'), - } - ) + raise ValidationError({ + 'target_date': _('Target date must be after start date'), + 'start_date': _('Start date must be before target date'), + }) # Check that the referenced 'address' matches the correct 'company' if ( @@ -481,7 +475,8 @@ def is_overdue(self): Makes use of the overdue_filter() method to avoid code duplication """ return ( - self.__class__.objects.filter(pk=self.pk) + self.__class__.objects + .filter(pk=self.pk) .filter(self.__class__.overdue_filter()) .exists() ) @@ -785,16 +780,16 @@ def add_line_item( try: quantity = int(quantity) if quantity <= 0: - raise ValidationError( - {'quantity': _('Quantity must be greater than zero')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be greater than zero') + }) except ValueError: raise ValidationError({'quantity': _('Invalid quantity provided')}) if supplier_part.supplier != self.supplier: - raise ValidationError( - {'supplier': _('Part supplier must match PO supplier')} - ) + raise ValidationError({ + 'supplier': _('Part supplier must match PO supplier') + }) if group: # Check if there is already a matching line item (for this PurchaseOrder) @@ -1079,9 +1074,9 @@ def receive_line_items( try: if quantity < 0: - raise ValidationError( - {'quantity': _('Quantity must be a positive number')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be a positive number') + }) quantity = InvenTree.helpers.clean_decimal(quantity) except TypeError: raise ValidationError({'quantity': _('Invalid quantity provided')}) @@ -1955,9 +1950,9 @@ def save(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError( - {'non_field_errors': _('The order is locked and cannot be modified')} - ) + raise ValidationError({ + 'non_field_errors': _('The order is locked and cannot be modified') + }) update_order = kwargs.pop('update_order', True) @@ -1980,9 +1975,9 @@ def delete(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError( - {'non_field_errors': _('The order is locked and cannot be modified')} - ) + raise ValidationError({ + 'non_field_errors': _('The order is locked and cannot be modified') + }) super().delete(*args, **kwargs) self.order.save() @@ -2141,37 +2136,33 @@ def clean(self) -> None: if self.build_order: if not self.build_order.external: - raise ValidationError( - {'build_order': _('Build order must be marked as external')} - ) + raise ValidationError({ + 'build_order': _('Build order must be marked as external') + }) if part: if not part.assembly: - raise ValidationError( - { - 'build_order': _( - 'Build orders can only be linked to assembly parts' - ) - } - ) + raise ValidationError({ + 'build_order': _( + 'Build orders can only be linked to assembly parts' + ) + }) if self.build_order.part != self.part.part: - raise ValidationError( - {'build_order': _('Build order part must match line item part')} - ) + raise ValidationError({ + 'build_order': _('Build order part must match line item part') + }) # Extra checks for external builds if part and part.assembly and get_global_setting('BUILDORDER_EXTERNAL_BUILDS'): if not self.build_order and get_global_setting( 'BUILDORDER_EXTERNAL_REQUIRED' ): - raise ValidationError( - { - 'build_order': _( - 'An external build order is required for assembly parts' - ) - } - ) + raise ValidationError({ + 'build_order': _( + 'An external build order is required for assembly parts' + ) + }) def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" @@ -2355,9 +2346,9 @@ def clean(self) -> None: if self.part: if not self.part.salable: - raise ValidationError( - {'part': _('Only salable parts can be assigned to a sales order')} - ) + raise ValidationError({ + 'part': _('Only salable parts can be assigned to a sales order') + }) order = models.ForeignKey( SalesOrder, @@ -2517,9 +2508,9 @@ def clean(self) -> None: if self.order and self.shipment_address: if self.shipment_address.company != self.order.customer: - raise ValidationError( - {'shipment_address': _('Shipment address must match the customer')} - ) + raise ValidationError({ + 'shipment_address': _('Shipment address must match the customer') + }) @staticmethod def get_api_url() -> str: @@ -3251,19 +3242,19 @@ def clean(self): raise ValidationError({'item': _('Stock item must be specified')}) if self.quantity > self.item.quantity: - raise ValidationError( - {'quantity': _('Return quantity exceeds stock quantity')} - ) + raise ValidationError({ + 'quantity': _('Return quantity exceeds stock quantity') + }) if self.quantity <= 0: - raise ValidationError( - {'quantity': _('Return quantity must be greater than zero')} - ) + raise ValidationError({ + 'quantity': _('Return quantity must be greater than zero') + }) if self.item.serialized and self.quantity != 1: - raise ValidationError( - {'quantity': _('Invalid quantity for serialized stock item')} - ) + raise ValidationError({ + 'quantity': _('Invalid quantity for serialized stock item') + }) order = models.ForeignKey( ReturnOrder, diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 21c28c41b2cd..91b0c9d2d2d5 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -386,19 +386,17 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'complete_date', - 'supplier', - 'supplier_detail', - 'supplier_reference', - 'supplier_name', - 'total_price', - 'order_currency', - 'destination', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'complete_date', + 'supplier', + 'supplier_detail', + 'supplier_reference', + 'supplier_name', + 'total_price', + 'order_currency', + 'destination', + 'updated_at', + ]) read_only_fields = [ 'issue_date', 'complete_date', @@ -555,30 +553,28 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'part', - 'build_order', - 'overdue', - 'received', - 'purchase_price', - 'purchase_price_currency', - 'auto_pricing', - 'destination', - 'total_price', - 'merge_items', - 'sku', - 'mpn', - 'ipn', - 'internal_part', - 'internal_part_name', - # Filterable detail fields - 'build_order_detail', - 'destination_detail', - 'part_detail', - 'supplier_part_detail', - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'part', + 'build_order', + 'overdue', + 'received', + 'purchase_price', + 'purchase_price_currency', + 'auto_pricing', + 'destination', + 'total_price', + 'merge_items', + 'sku', + 'mpn', + 'ipn', + 'internal_part', + 'internal_part_name', + # Filterable detail fields + 'build_order_detail', + 'destination_detail', + 'part_detail', + 'supplier_part_detail', + ]) def skip_create_fields(self): """Return a list of fields to skip when creating a new object.""" @@ -787,12 +783,10 @@ def validate(self, data): supplier_part is not None and supplier_part.supplier != purchase_order.supplier ): - raise ValidationError( - { - 'part': _('Supplier must match purchase order'), - 'order': _('Purchase order must match supplier'), - } - ) + raise ValidationError({ + 'part': _('Supplier must match purchase order'), + 'order': _('Purchase order must match supplier'), + }) return data @@ -1027,9 +1021,9 @@ def validate(self, data): item['location'] = line.get_destination() if not item['location']: - raise ValidationError( - {'location': _('Destination location must be specified')} - ) + raise ValidationError({ + 'location': _('Destination location must be specified') + }) barcode = item.get('barcode', '') @@ -1079,20 +1073,18 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'customer', - 'customer_detail', - 'customer_reference', - 'shipment_date', - 'total_price', - 'order_currency', - 'shipments_count', - 'completed_shipments_count', - 'allocated_lines', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'customer', + 'customer_detail', + 'customer_reference', + 'shipment_date', + 'total_price', + 'order_currency', + 'shipments_count', + 'completed_shipments_count', + 'allocated_lines', + 'updated_at', + ]) read_only_fields = ['status', 'creation_date', 'shipment_date', 'updated_at'] extra_kwargs = {'order_currency': {'required': False}} @@ -1194,24 +1186,22 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'allocated', - 'customer_detail', - 'overdue', - 'part', - 'part_detail', - 'sale_price', - 'sale_price_currency', - 'shipped', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'allocated', + 'customer_detail', + 'overdue', + 'part', + 'part_detail', + 'sale_price', + 'sale_price_currency', + 'shipped', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ]) @staticmethod def annotate_queryset(queryset): @@ -1681,14 +1671,14 @@ def validate(self, data): stock_item.hasRequiredTests() and not stock_item.passedAllRequiredTests() ): - raise ValidationError( - {'stock_item': _('Stock item has not passed all required tests')} - ) + raise ValidationError({ + 'stock_item': _('Stock item has not passed all required tests') + }) if stock_item.serialized and quantity != 1: - raise ValidationError( - {'quantity': _('Quantity must be 1 for serialized stock item')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be 1 for serialized stock item') + }) q = normalize(stock_item.unallocated_quantity()) @@ -2145,17 +2135,15 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'complete_date', - 'customer', - 'customer_detail', - 'customer_reference', - 'order_currency', - 'total_price', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'complete_date', + 'customer', + 'customer_detail', + 'customer_reference', + 'order_currency', + 'total_price', + 'updated_at', + ]) read_only_fields = ['creation_date', 'updated_at'] def skip_create_fields(self): @@ -2341,18 +2329,16 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'item', - 'received_date', - 'outcome', - 'price', - 'price_currency', - # Filterable detail fields - 'item_detail', - 'part_detail', - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'item', + 'received_date', + 'outcome', + 'price', + 'price_currency', + # Filterable detail fields + 'item_detail', + 'part_detail', + ]) order_detail = OptionalField( serializer_class=ReturnOrderSerializer, From 966d662545b20dced3be560b973c3fcbb7744bcb Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 3 Jun 2026 09:02:44 +0200 Subject: [PATCH 03/27] fix style --- src/backend/InvenTree/order/api.py | 544 +++++++++++++---------------- 1 file changed, 249 insertions(+), 295 deletions(-) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index f6a33743f280..a155865b5ebc 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -2388,9 +2388,9 @@ def __call__(self, request, *args, **kwargs): # Still nothing - return Unauth. header with info on how to authenticate # Information is needed by client, eg Thunderbird - response = JsonResponse( - {'detail': 'Authentication credentials were not provided.'} - ) + response = JsonResponse({ + 'detail': 'Authentication credentials were not provided.' + }) response['WWW-Authenticate'] = 'Basic realm="api"' response.status_code = 401 return response @@ -2558,9 +2558,9 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_api_urls = [ path( '/', - include( - [path('', RepairOrderDetail.as_view(), name='api-repair-order-detail')] - ), + include([ + path('', RepairOrderDetail.as_view(), name='api-repair-order-detail') + ]), ), path('', RepairOrderList.as_view(), name='api-repair-order-list'), ] @@ -2568,15 +2568,13 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_line_api_urls = [ path( '/', - include( - [ - path( - '', - RepairOrderLineItemDetail.as_view(), - name='api-repair-order-line-detail', - ) - ] - ), + include([ + path( + '', + RepairOrderLineItemDetail.as_view(), + name='api-repair-order-line-detail', + ) + ]), ), path('', RepairOrderLineItemList.as_view(), name='api-repair-order-line-list'), ] @@ -2584,15 +2582,13 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_allocation_api_urls = [ path( '/', - include( - [ - path( - '', - RepairOrderAllocationDetail.as_view(), - name='api-repair-order-allocation-detail', - ) - ] - ), + include([ + path( + '', + RepairOrderAllocationDetail.as_view(), + name='api-repair-order-allocation-detail', + ) + ]), ), path( '', RepairOrderAllocationList.as_view(), name='api-repair-order-allocation-list' @@ -2604,137 +2600,102 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): # API endpoints for purchase orders path( 'po/', - include( - [ - # Individual purchase order detail URLs - path( - '/', - include( - [ - path( - 'cancel/', - PurchaseOrderCancel.as_view(), - name='api-po-cancel', - ), - path( - 'hold/', PurchaseOrderHold.as_view(), name='api-po-hold' - ), - path( - 'complete/', - PurchaseOrderComplete.as_view(), - name='api-po-complete', - ), - path( - 'issue/', - PurchaseOrderIssue.as_view(), - name='api-po-issue', - ), - meta_path(models.PurchaseOrder), - path( - 'receive/', - PurchaseOrderReceive.as_view(), - name='api-po-receive', - ), - # PurchaseOrder detail API endpoint - path( - '', PurchaseOrderDetail.as_view(), name='api-po-detail' - ), - ] + include([ + # Individual purchase order detail URLs + path( + '/', + include([ + path( + 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' + ), + path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), + path( + 'complete/', + PurchaseOrderComplete.as_view(), + name='api-po-complete', + ), + path('issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), + meta_path(models.PurchaseOrder), + path( + 'receive/', + PurchaseOrderReceive.as_view(), + name='api-po-receive', ), - ), - # Purchase order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: PurchaseOrderStatus}, - name='api-po-status-codes', - ), - # Purchase order list - path('', PurchaseOrderList.as_view(), name='api-po-list'), - ] - ), + # PurchaseOrder detail API endpoint + path('', PurchaseOrderDetail.as_view(), name='api-po-detail'), + ]), + ), + # Purchase order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: PurchaseOrderStatus}, + name='api-po-status-codes', + ), + # Purchase order list + path('', PurchaseOrderList.as_view(), name='api-po-list'), + ]), ), # API endpoints for purchase order line items path( 'po-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.PurchaseOrderLineItem), - path( - '', - PurchaseOrderLineItemDetail.as_view(), - name='api-po-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.PurchaseOrderLineItem), + path( + '', + PurchaseOrderLineItemDetail.as_view(), + name='api-po-line-detail', ), - ), - path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), - ] - ), + ]), + ), + path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), + ]), ), # API endpoints for purchase order extra line path( 'po-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.PurchaseOrderExtraLine), - path( - '', - PurchaseOrderExtraLineDetail.as_view(), - name='api-po-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.PurchaseOrderExtraLine), + path( + '', + PurchaseOrderExtraLineDetail.as_view(), + name='api-po-extra-line-detail', ), - ), - path( - '', - PurchaseOrderExtraLineList.as_view(), - name='api-po-extra-line-list', - ), - ] - ), + ]), + ), + path( + '', PurchaseOrderExtraLineList.as_view(), name='api-po-extra-line-list' + ), + ]), ), # API endpoints for sales orders path( 'so/', - include( - [ - path( - 'shipment/', - include( - [ + include([ + path( + 'shipment/', + include([ + path( + '/', + include([ path( - '/', - include( - [ - path( - 'ship/', - SalesOrderShipmentComplete.as_view(), - name='api-so-shipment-ship', - ), - meta_path(models.SalesOrderShipment), - path( - '', - SalesOrderShipmentDetail.as_view(), - name='api-so-shipment-detail', - ), - ] - ), + 'ship/', + SalesOrderShipmentComplete.as_view(), + name='api-so-shipment-ship', ), + meta_path(models.SalesOrderShipment), path( '', - SalesOrderShipmentList.as_view(), - name='api-so-shipment-list', + SalesOrderShipmentDetail.as_view(), + name='api-so-shipment-detail', ), - ] + ]), ), path( '', @@ -2770,195 +2731,188 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): SalesOrderComplete.as_view(), name='api-so-complete', ), - ), - # Sales order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: SalesOrderStatus}, - name='api-so-status-codes', - ), - # Sales order list view - path('', SalesOrderList.as_view(), name='api-so-list'), - ] - ), + ]), + ), + # Sales order detail view + path( + '/', + include([ + path( + 'allocate/', + SalesOrderAllocate.as_view(), + name='api-so-allocate', + ), + path( + 'allocate-serials/', + SalesOrderAllocateSerials.as_view(), + name='api-so-allocate-serials', + ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), + path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), + path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), + path( + 'complete/', + SalesOrderComplete.as_view(), + name='api-so-complete', + ), + meta_path(models.SalesOrder), + # SalesOrder detail endpoint + path('', SalesOrderDetail.as_view(), name='api-so-detail'), + ]), + ), + # Sales order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: SalesOrderStatus}, + name='api-so-status-codes', + ), + # Sales order list view + path('', SalesOrderList.as_view(), name='api-so-list'), + ]), ), # API endpoints for sales order line items path( 'so-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.SalesOrderLineItem), - path( - '', - SalesOrderLineItemDetail.as_view(), - name='api-so-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.SalesOrderLineItem), + path( + '', + SalesOrderLineItemDetail.as_view(), + name='api-so-line-detail', ), - ), - path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), - ] - ), + ]), + ), + path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), + ]), ), # API endpoints for sales order extra line path( 'so-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.SalesOrderExtraLine), - path( - '', - SalesOrderExtraLineDetail.as_view(), - name='api-so-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.SalesOrderExtraLine), + path( + '', + SalesOrderExtraLineDetail.as_view(), + name='api-so-extra-line-detail', ), - ), - path( - '', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list' - ), - ] - ), + ]), + ), + path('', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list'), + ]), ), # API endpoints for sales order allocations path( 'so-allocation/', - include( - [ - path( - '/', - SalesOrderAllocationDetail.as_view(), - name='api-so-allocation-detail', - ), - path( - '', - SalesOrderAllocationList.as_view(), - name='api-so-allocation-list', - ), - ] - ), + include([ + path( + '/', + SalesOrderAllocationDetail.as_view(), + name='api-so-allocation-detail', + ), + path('', SalesOrderAllocationList.as_view(), name='api-so-allocation-list'), + ]), ), # API endpoints for return orders path( 'ro/', - include( - [ - # Return Order detail endpoints - path( - '/', - include( - [ - path( - 'cancel/', - ReturnOrderCancel.as_view(), - name='api-return-order-cancel', - ), - path( - 'hold/', ReturnOrderHold.as_view(), name='api-ro-hold' - ), - path( - 'complete/', - ReturnOrderComplete.as_view(), - name='api-return-order-complete', - ), - path( - 'issue/', - ReturnOrderIssue.as_view(), - name='api-return-order-issue', - ), - path( - 'receive/', - ReturnOrderReceive.as_view(), - name='api-return-order-receive', - ), - meta_path(models.ReturnOrder), - path( - '', - ReturnOrderDetail.as_view(), - name='api-return-order-detail', - ), - ] + include([ + # Return Order detail endpoints + path( + '/', + include([ + path( + 'cancel/', + ReturnOrderCancel.as_view(), + name='api-return-order-cancel', + ), + path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), + path( + 'complete/', + ReturnOrderComplete.as_view(), + name='api-return-order-complete', + ), + path( + 'issue/', + ReturnOrderIssue.as_view(), + name='api-return-order-issue', + ), + path( + 'receive/', + ReturnOrderReceive.as_view(), + name='api-return-order-receive', + ), + meta_path(models.ReturnOrder), + path( + '', ReturnOrderDetail.as_view(), name='api-return-order-detail' ), - ), - # Return order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderStatus}, - name='api-return-order-status-codes', - ), - # Return Order list - path('', ReturnOrderList.as_view(), name='api-return-order-list'), - ] - ), + ]), + ), + # Return order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderStatus}, + name='api-return-order-status-codes', + ), + # Return Order list + path('', ReturnOrderList.as_view(), name='api-return-order-list'), + ]), ), # API endpoints for return order lines path( 'ro-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.ReturnOrderLineItem), - path( - '', - ReturnOrderLineItemDetail.as_view(), - name='api-return-order-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.ReturnOrderLineItem), + path( + '', + ReturnOrderLineItemDetail.as_view(), + name='api-return-order-line-detail', ), - ), - # Return order line item status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderLineStatus}, - name='api-return-order-line-status-codes', - ), - path( - '', - ReturnOrderLineItemList.as_view(), - name='api-return-order-line-list', - ), - ] - ), + ]), + ), + # Return order line item status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderLineStatus}, + name='api-return-order-line-status-codes', + ), + path( + '', ReturnOrderLineItemList.as_view(), name='api-return-order-line-list' + ), + ]), ), # API endpoints for return order extra line path( 'ro-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.ReturnOrderExtraLine), - path( - '', - ReturnOrderExtraLineDetail.as_view(), - name='api-return-order-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.ReturnOrderExtraLine), + path( + '', + ReturnOrderExtraLineDetail.as_view(), + name='api-return-order-extra-line-detail', ), - ), - path( - '', - ReturnOrderExtraLineList.as_view(), - name='api-return-order-extra-line-list', - ), - ] - ), + ]), + ), + path( + '', + ReturnOrderExtraLineList.as_view(), + name='api-return-order-extra-line-list', + ), + ]), ), # API endpoints for transfer orders path( From e7db90eba5007d558e8b787abb94b0c6cfd49ec9 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 3 Jun 2026 09:05:52 +0200 Subject: [PATCH 04/27] remove dup apis --- src/backend/InvenTree/order/api.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index a155865b5ebc..ea56cb05d127 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -2731,30 +2731,6 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): SalesOrderComplete.as_view(), name='api-so-complete', ), - ]), - ), - # Sales order detail view - path( - '/', - include([ - path( - 'allocate/', - SalesOrderAllocate.as_view(), - name='api-so-allocate', - ), - path( - 'allocate-serials/', - SalesOrderAllocateSerials.as_view(), - name='api-so-allocate-serials', - ), - path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), - path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), - path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), - path( - 'complete/', - SalesOrderComplete.as_view(), - name='api-so-complete', - ), meta_path(models.SalesOrder), # SalesOrder detail endpoint path('', SalesOrderDetail.as_view(), name='api-so-detail'), From 40072ab70271a017dd801154c7013b8d24dff37b Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 06:51:05 +0530 Subject: [PATCH 05/27] fix: add docstrings, permissions, and admin registration for RepairOrder models --- src/backend/InvenTree/order/admin.py | 29 + src/backend/InvenTree/order/api.py | 750 +++++++++++-------- src/backend/InvenTree/order/models.py | 146 ++-- src/backend/InvenTree/order/serializers.py | 252 ++++--- src/backend/InvenTree/users/oauth2_scopes.py | 1 + src/backend/InvenTree/users/ruleset.py | 7 + src/frontend/lib/enums/Roles.tsx | 3 + 7 files changed, 675 insertions(+), 513 deletions(-) diff --git a/src/backend/InvenTree/order/admin.py b/src/backend/InvenTree/order/admin.py index 875ebdb763fa..2e61ea6663b9 100644 --- a/src/backend/InvenTree/order/admin.py +++ b/src/backend/InvenTree/order/admin.py @@ -208,3 +208,32 @@ class TransferOrderAdmin(admin.ModelAdmin): 'project_code', 'responsible', ] + + +@admin.register(models.RepairOrder) +class RepairOrderAdmin(admin.ModelAdmin): + """Admin class for the RepairOrder model.""" + + list_display = ['reference', 'customer', 'status', 'description'] + + search_fields = ['reference', 'customer__name', 'description'] + + autocomplete_fields = ['customer'] + + +@admin.register(models.RepairOrderLineItem) +class RepairOrderLineItemAdmin(admin.ModelAdmin): + """Admin class for RepairOrderLineItem model.""" + + list_display = ['order', 'part', 'quantity'] + + autocomplete_fields = ['order', 'part'] + + +@admin.register(models.RepairOrderAllocation) +class RepairOrderAllocationAdmin(admin.ModelAdmin): + """Admin class for RepairOrderAllocation model.""" + + list_display = ['line', 'item', 'quantity'] + + autocomplete_fields = ['line', 'item'] diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index ea56cb05d127..70027349e56c 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -2388,9 +2388,9 @@ def __call__(self, request, *args, **kwargs): # Still nothing - return Unauth. header with info on how to authenticate # Information is needed by client, eg Thunderbird - response = JsonResponse({ - 'detail': 'Authentication credentials were not provided.' - }) + response = JsonResponse( + {'detail': 'Authentication credentials were not provided.'} + ) response['WWW-Authenticate'] = 'Basic realm="api"' response.status_code = 401 return response @@ -2558,9 +2558,9 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_api_urls = [ path( '/', - include([ - path('', RepairOrderDetail.as_view(), name='api-repair-order-detail') - ]), + include( + [path('', RepairOrderDetail.as_view(), name='api-repair-order-detail')] + ), ), path('', RepairOrderList.as_view(), name='api-repair-order-list'), ] @@ -2568,13 +2568,15 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_line_api_urls = [ path( '/', - include([ - path( - '', - RepairOrderLineItemDetail.as_view(), - name='api-repair-order-line-detail', - ) - ]), + include( + [ + path( + '', + RepairOrderLineItemDetail.as_view(), + name='api-repair-order-line-detail', + ) + ] + ), ), path('', RepairOrderLineItemList.as_view(), name='api-repair-order-line-list'), ] @@ -2582,13 +2584,15 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_allocation_api_urls = [ path( '/', - include([ - path( - '', - RepairOrderAllocationDetail.as_view(), - name='api-repair-order-allocation-detail', - ) - ]), + include( + [ + path( + '', + RepairOrderAllocationDetail.as_view(), + name='api-repair-order-allocation-detail', + ) + ] + ), ), path( '', RepairOrderAllocationList.as_view(), name='api-repair-order-allocation-list' @@ -2600,383 +2604,465 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): # API endpoints for purchase orders path( 'po/', - include([ - # Individual purchase order detail URLs - path( - '/', - include([ - path( - 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' - ), - path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), - path( - 'complete/', - PurchaseOrderComplete.as_view(), - name='api-po-complete', - ), - path('issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), - meta_path(models.PurchaseOrder), - path( - 'receive/', - PurchaseOrderReceive.as_view(), - name='api-po-receive', + include( + [ + # Individual purchase order detail URLs + path( + '/', + include( + [ + path( + 'cancel/', + PurchaseOrderCancel.as_view(), + name='api-po-cancel', + ), + path( + 'hold/', PurchaseOrderHold.as_view(), name='api-po-hold' + ), + path( + 'complete/', + PurchaseOrderComplete.as_view(), + name='api-po-complete', + ), + path( + 'issue/', + PurchaseOrderIssue.as_view(), + name='api-po-issue', + ), + meta_path(models.PurchaseOrder), + path( + 'receive/', + PurchaseOrderReceive.as_view(), + name='api-po-receive', + ), + # PurchaseOrder detail API endpoint + path( + '', PurchaseOrderDetail.as_view(), name='api-po-detail' + ), + ] ), - # PurchaseOrder detail API endpoint - path('', PurchaseOrderDetail.as_view(), name='api-po-detail'), - ]), - ), - # Purchase order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: PurchaseOrderStatus}, - name='api-po-status-codes', - ), - # Purchase order list - path('', PurchaseOrderList.as_view(), name='api-po-list'), - ]), + ), + # Purchase order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: PurchaseOrderStatus}, + name='api-po-status-codes', + ), + # Purchase order list + path('', PurchaseOrderList.as_view(), name='api-po-list'), + ] + ), ), # API endpoints for purchase order line items path( 'po-line/', - include([ - path( - '/', - include([ - meta_path(models.PurchaseOrderLineItem), - path( - '', - PurchaseOrderLineItemDetail.as_view(), - name='api-po-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.PurchaseOrderLineItem), + path( + '', + PurchaseOrderLineItemDetail.as_view(), + name='api-po-line-detail', + ), + ] ), - ]), - ), - path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), - ]), + ), + path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), + ] + ), ), # API endpoints for purchase order extra line path( 'po-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.PurchaseOrderExtraLine), - path( - '', - PurchaseOrderExtraLineDetail.as_view(), - name='api-po-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.PurchaseOrderExtraLine), + path( + '', + PurchaseOrderExtraLineDetail.as_view(), + name='api-po-extra-line-detail', + ), + ] ), - ]), - ), - path( - '', PurchaseOrderExtraLineList.as_view(), name='api-po-extra-line-list' - ), - ]), + ), + path( + '', + PurchaseOrderExtraLineList.as_view(), + name='api-po-extra-line-list', + ), + ] + ), ), # API endpoints for sales orders path( 'so/', - include([ - path( - 'shipment/', - include([ - path( - '/', - include([ + include( + [ + path( + 'shipment/', + include( + [ path( - 'ship/', - SalesOrderShipmentComplete.as_view(), - name='api-so-shipment-ship', + '/', + include( + [ + path( + 'ship/', + SalesOrderShipmentComplete.as_view(), + name='api-so-shipment-ship', + ), + meta_path(models.SalesOrderShipment), + path( + '', + SalesOrderShipmentDetail.as_view(), + name='api-so-shipment-detail', + ), + ] + ), ), - meta_path(models.SalesOrderShipment), path( '', - SalesOrderShipmentDetail.as_view(), - name='api-so-shipment-detail', + SalesOrderShipmentList.as_view(), + name='api-so-shipment-list', ), - ]), + ] ), - path( - '', - SalesOrderShipmentList.as_view(), - name='api-so-shipment-list', - ), - ]), - ), - # Sales order detail view - path( - '/', - include([ - path( - 'allocate/', - SalesOrderAllocate.as_view(), - name='api-so-allocate', - ), - path( - 'allocate-serials/', - SalesOrderAllocateSerials.as_view(), - name='api-so-allocate-serials', - ), - path( - 'auto-allocate/', - SalesOrderAutoAllocate.as_view(), - name='api-so-auto-allocate', - ), - path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), - path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), - path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), - path( - 'complete/', - SalesOrderComplete.as_view(), - name='api-so-complete', + ), + # Sales order detail view + path( + '/', + include( + [ + path( + 'allocate/', + SalesOrderAllocate.as_view(), + name='api-so-allocate', + ), + path( + 'allocate-serials/', + SalesOrderAllocateSerials.as_view(), + name='api-so-allocate-serials', + ), + path( + 'auto-allocate/', + SalesOrderAutoAllocate.as_view(), + name='api-so-auto-allocate', + ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), + path( + 'cancel/', + SalesOrderCancel.as_view(), + name='api-so-cancel', + ), + path( + 'issue/', SalesOrderIssue.as_view(), name='api-so-issue' + ), + path( + 'complete/', + SalesOrderComplete.as_view(), + name='api-so-complete', + ), + meta_path(models.SalesOrder), + # SalesOrder detail endpoint + path('', SalesOrderDetail.as_view(), name='api-so-detail'), + ] ), - meta_path(models.SalesOrder), - # SalesOrder detail endpoint - path('', SalesOrderDetail.as_view(), name='api-so-detail'), - ]), - ), - # Sales order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: SalesOrderStatus}, - name='api-so-status-codes', - ), - # Sales order list view - path('', SalesOrderList.as_view(), name='api-so-list'), - ]), + ), + # Sales order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: SalesOrderStatus}, + name='api-so-status-codes', + ), + # Sales order list view + path('', SalesOrderList.as_view(), name='api-so-list'), + ] + ), ), # API endpoints for sales order line items path( 'so-line/', - include([ - path( - '/', - include([ - meta_path(models.SalesOrderLineItem), - path( - '', - SalesOrderLineItemDetail.as_view(), - name='api-so-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.SalesOrderLineItem), + path( + '', + SalesOrderLineItemDetail.as_view(), + name='api-so-line-detail', + ), + ] ), - ]), - ), - path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), - ]), + ), + path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), + ] + ), ), # API endpoints for sales order extra line path( 'so-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.SalesOrderExtraLine), - path( - '', - SalesOrderExtraLineDetail.as_view(), - name='api-so-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.SalesOrderExtraLine), + path( + '', + SalesOrderExtraLineDetail.as_view(), + name='api-so-extra-line-detail', + ), + ] ), - ]), - ), - path('', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list'), - ]), + ), + path( + '', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list' + ), + ] + ), ), # API endpoints for sales order allocations path( 'so-allocation/', - include([ - path( - '/', - SalesOrderAllocationDetail.as_view(), - name='api-so-allocation-detail', - ), - path('', SalesOrderAllocationList.as_view(), name='api-so-allocation-list'), - ]), + include( + [ + path( + '/', + SalesOrderAllocationDetail.as_view(), + name='api-so-allocation-detail', + ), + path( + '', + SalesOrderAllocationList.as_view(), + name='api-so-allocation-list', + ), + ] + ), ), # API endpoints for return orders path( 'ro/', - include([ - # Return Order detail endpoints - path( - '/', - include([ - path( - 'cancel/', - ReturnOrderCancel.as_view(), - name='api-return-order-cancel', - ), - path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), - path( - 'complete/', - ReturnOrderComplete.as_view(), - name='api-return-order-complete', - ), - path( - 'issue/', - ReturnOrderIssue.as_view(), - name='api-return-order-issue', - ), - path( - 'receive/', - ReturnOrderReceive.as_view(), - name='api-return-order-receive', - ), - meta_path(models.ReturnOrder), - path( - '', ReturnOrderDetail.as_view(), name='api-return-order-detail' + include( + [ + # Return Order detail endpoints + path( + '/', + include( + [ + path( + 'cancel/', + ReturnOrderCancel.as_view(), + name='api-return-order-cancel', + ), + path( + 'hold/', ReturnOrderHold.as_view(), name='api-ro-hold' + ), + path( + 'complete/', + ReturnOrderComplete.as_view(), + name='api-return-order-complete', + ), + path( + 'issue/', + ReturnOrderIssue.as_view(), + name='api-return-order-issue', + ), + path( + 'receive/', + ReturnOrderReceive.as_view(), + name='api-return-order-receive', + ), + meta_path(models.ReturnOrder), + path( + '', + ReturnOrderDetail.as_view(), + name='api-return-order-detail', + ), + ] ), - ]), - ), - # Return order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderStatus}, - name='api-return-order-status-codes', - ), - # Return Order list - path('', ReturnOrderList.as_view(), name='api-return-order-list'), - ]), + ), + # Return order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderStatus}, + name='api-return-order-status-codes', + ), + # Return Order list + path('', ReturnOrderList.as_view(), name='api-return-order-list'), + ] + ), ), # API endpoints for return order lines path( 'ro-line/', - include([ - path( - '/', - include([ - meta_path(models.ReturnOrderLineItem), - path( - '', - ReturnOrderLineItemDetail.as_view(), - name='api-return-order-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.ReturnOrderLineItem), + path( + '', + ReturnOrderLineItemDetail.as_view(), + name='api-return-order-line-detail', + ), + ] ), - ]), - ), - # Return order line item status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderLineStatus}, - name='api-return-order-line-status-codes', - ), - path( - '', ReturnOrderLineItemList.as_view(), name='api-return-order-line-list' - ), - ]), + ), + # Return order line item status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderLineStatus}, + name='api-return-order-line-status-codes', + ), + path( + '', + ReturnOrderLineItemList.as_view(), + name='api-return-order-line-list', + ), + ] + ), ), # API endpoints for return order extra line path( 'ro-extra-line/', - include([ - path( - '/', - include([ - meta_path(models.ReturnOrderExtraLine), - path( - '', - ReturnOrderExtraLineDetail.as_view(), - name='api-return-order-extra-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.ReturnOrderExtraLine), + path( + '', + ReturnOrderExtraLineDetail.as_view(), + name='api-return-order-extra-line-detail', + ), + ] ), - ]), - ), - path( - '', - ReturnOrderExtraLineList.as_view(), - name='api-return-order-extra-line-list', - ), - ]), + ), + path( + '', + ReturnOrderExtraLineList.as_view(), + name='api-return-order-extra-line-list', + ), + ] + ), ), # API endpoints for transfer orders path( 'transfer-order/', - include([ - # Transfer Order detail endpoints - path( - '/', - include([ - path( - 'allocate/', - TransferOrderAllocate.as_view(), - name='api-transfer-order-allocate', - ), - path( - 'allocate-serials/', - TransferOrderAllocateSerials.as_view(), - name='api-transfer-order-allocate-serials', - ), - path( - 'cancel/', - TransferOrderCancel.as_view(), - name='api-transfer-order-cancel', - ), - path( - 'hold/', - TransferOrderHold.as_view(), - name='api-transfer-order-hold', - ), - path( - 'complete/', - TransferOrderComplete.as_view(), - name='api-transfer-order-complete', - ), - path( - 'issue/', - TransferOrderIssue.as_view(), - name='api-transfer-order-issue', - ), - meta_path(models.TransferOrder), - path( - '', - TransferOrderDetail.as_view(), - name='api-transfer-order-detail', + include( + [ + # Transfer Order detail endpoints + path( + '/', + include( + [ + path( + 'allocate/', + TransferOrderAllocate.as_view(), + name='api-transfer-order-allocate', + ), + path( + 'allocate-serials/', + TransferOrderAllocateSerials.as_view(), + name='api-transfer-order-allocate-serials', + ), + path( + 'cancel/', + TransferOrderCancel.as_view(), + name='api-transfer-order-cancel', + ), + path( + 'hold/', + TransferOrderHold.as_view(), + name='api-transfer-order-hold', + ), + path( + 'complete/', + TransferOrderComplete.as_view(), + name='api-transfer-order-complete', + ), + path( + 'issue/', + TransferOrderIssue.as_view(), + name='api-transfer-order-issue', + ), + meta_path(models.TransferOrder), + path( + '', + TransferOrderDetail.as_view(), + name='api-transfer-order-detail', + ), + ] ), - ]), - ), - # Transfer Order list - path('', TransferOrderList.as_view(), name='api-transfer-order-list'), - ]), + ), + # Transfer Order list + path('', TransferOrderList.as_view(), name='api-transfer-order-list'), + ] + ), ), # API endpoints for transfer order line items path( 'transfer-order-line/', - include([ - path( - '/', - include([ - meta_path(models.TransferOrderLineItem), - path( - '', - TransferOrderLineItemDetail.as_view(), - name='api-transfer-order-line-detail', + include( + [ + path( + '/', + include( + [ + meta_path(models.TransferOrderLineItem), + path( + '', + TransferOrderLineItemDetail.as_view(), + name='api-transfer-order-line-detail', + ), + ] ), - ]), - ), - path( - '', - TransferOrderLineItemList.as_view(), - name='api-transfer-order-line-list', - ), - ]), + ), + path( + '', + TransferOrderLineItemList.as_view(), + name='api-transfer-order-line-list', + ), + ] + ), ), # API endpoints for sales order allocations path( 'transfer-order-allocation/', - include([ - path( - '/', - TransferOrderAllocationDetail.as_view(), - name='api-transfer-order-allocation-detail', - ), - path( - '', - TransferOrderAllocationList.as_view(), - name='api-transfer-order-allocation-list', - ), - ]), + include( + [ + path( + '/', + TransferOrderAllocationDetail.as_view(), + name='api-transfer-order-allocation-detail', + ), + path( + '', + TransferOrderAllocationList.as_view(), + name='api-transfer-order-allocation-list', + ), + ] + ), ), # API endpoint for subscribing to ICS calendar of purchase/sales/return orders re_path( diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 22533a294973..379356fb3d28 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -351,9 +351,9 @@ def save(self, *args, **kwargs): if self.get_db_instance().status != self.status: pass else: - raise ValidationError({ - 'reference': _('This order is locked and cannot be modified') - }) + raise ValidationError( + {'reference': _('This order is locked and cannot be modified')} + ) # Reference calculations self.reference_int = self.rebuild_reference_field(self.reference) @@ -398,9 +398,13 @@ def clean(self): if self.REQUIRE_RESPONSIBLE_SETTING: if get_global_setting(self.REQUIRE_RESPONSIBLE_SETTING, backup_value=False): if not self.responsible: - raise ValidationError({ - 'responsible': _('Responsible user or group must be specified') - }) + raise ValidationError( + { + 'responsible': _( + 'Responsible user or group must be specified' + ) + } + ) # Check that the referenced 'contact' matches the correct 'company' if ( @@ -410,16 +414,18 @@ def clean(self): and self.contact and (self.contact.company != self.company) ): - raise ValidationError({ - 'contact': _('Contact does not match selected company') - }) + raise ValidationError( + {'contact': _('Contact does not match selected company')} + ) # Target date should be *after* the start date if self.start_date and self.target_date and self.start_date > self.target_date: - raise ValidationError({ - 'target_date': _('Target date must be after start date'), - 'start_date': _('Start date must be before target date'), - }) + raise ValidationError( + { + 'target_date': _('Target date must be after start date'), + 'start_date': _('Start date must be before target date'), + } + ) # Check that the referenced 'address' matches the correct 'company' if ( @@ -428,9 +434,9 @@ def clean(self): and self.address and (self.address.company != self.company) ): - raise ValidationError({ - 'address': _('Address does not match selected company') - }) + raise ValidationError( + {'address': _('Address does not match selected company')} + ) def clean_line_item(self, line): """Clean a line item for this order. @@ -475,8 +481,7 @@ def is_overdue(self): Makes use of the overdue_filter() method to avoid code duplication """ return ( - self.__class__.objects - .filter(pk=self.pk) + self.__class__.objects.filter(pk=self.pk) .filter(self.__class__.overdue_filter()) .exists() ) @@ -780,16 +785,16 @@ def add_line_item( try: quantity = int(quantity) if quantity <= 0: - raise ValidationError({ - 'quantity': _('Quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Quantity must be greater than zero')} + ) except ValueError: raise ValidationError({'quantity': _('Invalid quantity provided')}) if supplier_part.supplier != self.supplier: - raise ValidationError({ - 'supplier': _('Part supplier must match PO supplier') - }) + raise ValidationError( + {'supplier': _('Part supplier must match PO supplier')} + ) if group: # Check if there is already a matching line item (for this PurchaseOrder) @@ -1074,9 +1079,9 @@ def receive_line_items( try: if quantity < 0: - raise ValidationError({ - 'quantity': _('Quantity must be a positive number') - }) + raise ValidationError( + {'quantity': _('Quantity must be a positive number')} + ) quantity = InvenTree.helpers.clean_decimal(quantity) except TypeError: raise ValidationError({'quantity': _('Invalid quantity provided')}) @@ -1950,9 +1955,9 @@ def save(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) update_order = kwargs.pop('update_order', True) @@ -1975,9 +1980,9 @@ def delete(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) super().delete(*args, **kwargs) self.order.save() @@ -2136,33 +2141,37 @@ def clean(self) -> None: if self.build_order: if not self.build_order.external: - raise ValidationError({ - 'build_order': _('Build order must be marked as external') - }) + raise ValidationError( + {'build_order': _('Build order must be marked as external')} + ) if part: if not part.assembly: - raise ValidationError({ - 'build_order': _( - 'Build orders can only be linked to assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'Build orders can only be linked to assembly parts' + ) + } + ) if self.build_order.part != self.part.part: - raise ValidationError({ - 'build_order': _('Build order part must match line item part') - }) + raise ValidationError( + {'build_order': _('Build order part must match line item part')} + ) # Extra checks for external builds if part and part.assembly and get_global_setting('BUILDORDER_EXTERNAL_BUILDS'): if not self.build_order and get_global_setting( 'BUILDORDER_EXTERNAL_REQUIRED' ): - raise ValidationError({ - 'build_order': _( - 'An external build order is required for assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'An external build order is required for assembly parts' + ) + } + ) def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" @@ -2346,9 +2355,9 @@ def clean(self) -> None: if self.part: if not self.part.salable: - raise ValidationError({ - 'part': _('Only salable parts can be assigned to a sales order') - }) + raise ValidationError( + {'part': _('Only salable parts can be assigned to a sales order')} + ) order = models.ForeignKey( SalesOrder, @@ -2508,9 +2517,9 @@ def clean(self) -> None: if self.order and self.shipment_address: if self.shipment_address.company != self.order.customer: - raise ValidationError({ - 'shipment_address': _('Shipment address must match the customer') - }) + raise ValidationError( + {'shipment_address': _('Shipment address must match the customer')} + ) @staticmethod def get_api_url() -> str: @@ -3242,19 +3251,19 @@ def clean(self): raise ValidationError({'item': _('Stock item must be specified')}) if self.quantity > self.item.quantity: - raise ValidationError({ - 'quantity': _('Return quantity exceeds stock quantity') - }) + raise ValidationError( + {'quantity': _('Return quantity exceeds stock quantity')} + ) if self.quantity <= 0: - raise ValidationError({ - 'quantity': _('Return quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Return quantity must be greater than zero')} + ) if self.item.serialized and self.quantity != 1: - raise ValidationError({ - 'quantity': _('Invalid quantity for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Invalid quantity for serialized stock item')} + ) order = models.ForeignKey( ReturnOrder, @@ -4011,6 +4020,8 @@ class RepairOrder( """A RepairOrder represents a repair request from a customer.""" class Meta: + """Model meta options.""" + verbose_name = _('Repair Order') reference = models.CharField( @@ -4054,6 +4065,7 @@ class Meta: @staticmethod def get_api_url(): + """Return the API URL associated with the RepairOrder model.""" return reverse('api-repair-order-list') @@ -4061,6 +4073,8 @@ class RepairOrderLineItem(InvenTree.models.InvenTreeMetadataModel): """Model for a repair order line item.""" class Meta: + """Model meta options.""" + verbose_name = _('Repair Order Line Item') order = models.ForeignKey( @@ -4090,6 +4104,7 @@ class Meta: @staticmethod def get_api_url(): + """Return the API URL associated with the RepairOrderLineItem model.""" return reverse('api-repair-order-line-list') @@ -4097,6 +4112,8 @@ class RepairOrderAllocation(models.Model): """Model linking RepairOrderLineItem to specific stock.StockItem quantities.""" class Meta: + """Model meta options.""" + verbose_name = _('Repair Order Allocation') line = models.ForeignKey( @@ -4123,4 +4140,5 @@ class Meta: @staticmethod def get_api_url(): + """Return the API URL associated with the RepairOrderAllocation model.""" return reverse('api-repair-order-allocation-list') diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 91b0c9d2d2d5..5340a20e8bec 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -386,17 +386,19 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrder - fields = AbstractOrderSerializer.order_fields([ - 'complete_date', - 'supplier', - 'supplier_detail', - 'supplier_reference', - 'supplier_name', - 'total_price', - 'order_currency', - 'destination', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'complete_date', + 'supplier', + 'supplier_detail', + 'supplier_reference', + 'supplier_name', + 'total_price', + 'order_currency', + 'destination', + 'updated_at', + ] + ) read_only_fields = [ 'issue_date', 'complete_date', @@ -553,28 +555,30 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'part', - 'build_order', - 'overdue', - 'received', - 'purchase_price', - 'purchase_price_currency', - 'auto_pricing', - 'destination', - 'total_price', - 'merge_items', - 'sku', - 'mpn', - 'ipn', - 'internal_part', - 'internal_part_name', - # Filterable detail fields - 'build_order_detail', - 'destination_detail', - 'part_detail', - 'supplier_part_detail', - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'part', + 'build_order', + 'overdue', + 'received', + 'purchase_price', + 'purchase_price_currency', + 'auto_pricing', + 'destination', + 'total_price', + 'merge_items', + 'sku', + 'mpn', + 'ipn', + 'internal_part', + 'internal_part_name', + # Filterable detail fields + 'build_order_detail', + 'destination_detail', + 'part_detail', + 'supplier_part_detail', + ] + ) def skip_create_fields(self): """Return a list of fields to skip when creating a new object.""" @@ -783,10 +787,12 @@ def validate(self, data): supplier_part is not None and supplier_part.supplier != purchase_order.supplier ): - raise ValidationError({ - 'part': _('Supplier must match purchase order'), - 'order': _('Purchase order must match supplier'), - }) + raise ValidationError( + { + 'part': _('Supplier must match purchase order'), + 'order': _('Purchase order must match supplier'), + } + ) return data @@ -1021,9 +1027,9 @@ def validate(self, data): item['location'] = line.get_destination() if not item['location']: - raise ValidationError({ - 'location': _('Destination location must be specified') - }) + raise ValidationError( + {'location': _('Destination location must be specified')} + ) barcode = item.get('barcode', '') @@ -1073,18 +1079,20 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrder - fields = AbstractOrderSerializer.order_fields([ - 'customer', - 'customer_detail', - 'customer_reference', - 'shipment_date', - 'total_price', - 'order_currency', - 'shipments_count', - 'completed_shipments_count', - 'allocated_lines', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'customer', + 'customer_detail', + 'customer_reference', + 'shipment_date', + 'total_price', + 'order_currency', + 'shipments_count', + 'completed_shipments_count', + 'allocated_lines', + 'updated_at', + ] + ) read_only_fields = ['status', 'creation_date', 'shipment_date', 'updated_at'] extra_kwargs = {'order_currency': {'required': False}} @@ -1186,22 +1194,24 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'allocated', - 'customer_detail', - 'overdue', - 'part', - 'part_detail', - 'sale_price', - 'sale_price_currency', - 'shipped', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'allocated', + 'customer_detail', + 'overdue', + 'part', + 'part_detail', + 'sale_price', + 'sale_price_currency', + 'shipped', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ] + ) @staticmethod def annotate_queryset(queryset): @@ -1671,14 +1681,14 @@ def validate(self, data): stock_item.hasRequiredTests() and not stock_item.passedAllRequiredTests() ): - raise ValidationError({ - 'stock_item': _('Stock item has not passed all required tests') - }) + raise ValidationError( + {'stock_item': _('Stock item has not passed all required tests')} + ) if stock_item.serialized and quantity != 1: - raise ValidationError({ - 'quantity': _('Quantity must be 1 for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Quantity must be 1 for serialized stock item')} + ) q = normalize(stock_item.unallocated_quantity()) @@ -2135,15 +2145,17 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrder - fields = AbstractOrderSerializer.order_fields([ - 'complete_date', - 'customer', - 'customer_detail', - 'customer_reference', - 'order_currency', - 'total_price', - 'updated_at', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'complete_date', + 'customer', + 'customer_detail', + 'customer_reference', + 'order_currency', + 'total_price', + 'updated_at', + ] + ) read_only_fields = ['creation_date', 'updated_at'] def skip_create_fields(self): @@ -2329,16 +2341,18 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'item', - 'received_date', - 'outcome', - 'price', - 'price_currency', - # Filterable detail fields - 'item_detail', - 'part_detail', - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'item', + 'received_date', + 'outcome', + 'price', + 'price_currency', + # Filterable detail fields + 'item_detail', + 'part_detail', + ] + ) order_detail = OptionalField( serializer_class=ReturnOrderSerializer, @@ -2422,14 +2436,16 @@ class Meta: """Metaclass options.""" model = order.models.TransferOrder - fields = AbstractOrderSerializer.order_fields([ - 'take_from', - 'take_from_detail', - 'destination', - 'destination_detail', - 'consume', - 'complete_date', - ]) + fields = AbstractOrderSerializer.order_fields( + [ + 'take_from', + 'take_from_detail', + 'destination', + 'destination_detail', + 'consume', + 'complete_date', + ] + ) read_only_fields = ['creation_date'] extra_kwargs = {} @@ -2582,19 +2598,21 @@ class Meta: """Metaclass options.""" model = order.models.TransferOrderLineItem - fields = AbstractLineItemSerializer.line_fields([ - 'allocated', - 'overdue', - 'part', - 'part_detail', - 'transferred', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ]) + fields = AbstractLineItemSerializer.line_fields( + [ + 'allocated', + 'overdue', + 'part', + 'part_detail', + 'transferred', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ] + ) @staticmethod def annotate_queryset(queryset): @@ -2762,9 +2780,9 @@ def validate(self, data): quantity = data['quantity'] if stock_item.serialized and quantity != 1: - raise ValidationError({ - 'quantity': _('Quantity must be 1 for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Quantity must be 1 for serialized stock item')} + ) q = normalize(stock_item.unallocated_quantity()) diff --git a/src/backend/InvenTree/users/oauth2_scopes.py b/src/backend/InvenTree/users/oauth2_scopes.py index 52656a33fa94..d52381440bbe 100644 --- a/src/backend/InvenTree/users/oauth2_scopes.py +++ b/src/backend/InvenTree/users/oauth2_scopes.py @@ -21,6 +21,7 @@ def get_granular_scope(method, role=None, type='r'): 'sales_order': 'Role Sales Orders', 'return_order': 'Role Return Orders', 'transfer_order': 'Role Transfer Orders', + 'repair_order': 'Role Repair Orders', } _methods = {'view': 'GET', 'add': 'POST', 'change': 'PUT / PATCH', 'delete': 'DELETE'} diff --git a/src/backend/InvenTree/users/ruleset.py b/src/backend/InvenTree/users/ruleset.py index 3787eb89b9b7..adb20dccd692 100644 --- a/src/backend/InvenTree/users/ruleset.py +++ b/src/backend/InvenTree/users/ruleset.py @@ -20,6 +20,7 @@ class RuleSetEnum(StringEnum): SALES_ORDER = 'sales_order' RETURN_ORDER = 'return_order' TRANSFER_ORDER = 'transfer_order' + REPAIR_ORDER = 'repair_order' # This is a list of all the ruleset choices available in the system. @@ -36,6 +37,7 @@ class RuleSetEnum(StringEnum): (RuleSetEnum.SALES_ORDER, _('Sales Orders')), (RuleSetEnum.RETURN_ORDER, _('Return Orders')), (RuleSetEnum.TRANSFER_ORDER, _('Transfer Orders')), + (RuleSetEnum.REPAIR_ORDER, _('Repair Orders')), ] # Ruleset names available in the system. @@ -168,6 +170,11 @@ def get_ruleset_models() -> dict: 'order_transferorderallocation', 'order_transferorderlineitem', ], + RuleSetEnum.REPAIR_ORDER: [ + 'order_repairorder', + 'order_repairorderlineitem', + 'order_repairorderallocation', + ], } if settings.SITE_MULTI: diff --git a/src/frontend/lib/enums/Roles.tsx b/src/frontend/lib/enums/Roles.tsx index 3d7ff9c78b2c..f575c00f47cb 100644 --- a/src/frontend/lib/enums/Roles.tsx +++ b/src/frontend/lib/enums/Roles.tsx @@ -12,6 +12,7 @@ export enum UserRoles { purchase_order = 'purchase_order', return_order = 'return_order', transfer_order = 'transfer_order', + repair_order = 'repair_order', sales_order = 'sales_order', stock = 'stock', stock_location = 'stock_location' @@ -43,6 +44,8 @@ export function userRoleLabel(role: UserRoles): string { return t`Return Orders`; case UserRoles.transfer_order: return t`Transfer Orders`; + case UserRoles.repair_order: + return t`Repair Orders`; case UserRoles.sales_order: return t`Sales Orders`; case UserRoles.stock: From 59be354d7c07b254af35bcb65f32f7c34768da2e Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 07:02:48 +0530 Subject: [PATCH 06/27] Fix: Resolve Django init crash (missing RepairOrderStatus) and fix ruff --preview formatting --- src/backend/InvenTree/order/api.py | 750 +++++++++----------- src/backend/InvenTree/order/models.py | 137 ++-- src/backend/InvenTree/order/serializers.py | 252 +++---- src/backend/InvenTree/order/status_codes.py | 23 + 4 files changed, 536 insertions(+), 626 deletions(-) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 70027349e56c..ea56cb05d127 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -2388,9 +2388,9 @@ def __call__(self, request, *args, **kwargs): # Still nothing - return Unauth. header with info on how to authenticate # Information is needed by client, eg Thunderbird - response = JsonResponse( - {'detail': 'Authentication credentials were not provided.'} - ) + response = JsonResponse({ + 'detail': 'Authentication credentials were not provided.' + }) response['WWW-Authenticate'] = 'Basic realm="api"' response.status_code = 401 return response @@ -2558,9 +2558,9 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_api_urls = [ path( '/', - include( - [path('', RepairOrderDetail.as_view(), name='api-repair-order-detail')] - ), + include([ + path('', RepairOrderDetail.as_view(), name='api-repair-order-detail') + ]), ), path('', RepairOrderList.as_view(), name='api-repair-order-list'), ] @@ -2568,15 +2568,13 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_line_api_urls = [ path( '/', - include( - [ - path( - '', - RepairOrderLineItemDetail.as_view(), - name='api-repair-order-line-detail', - ) - ] - ), + include([ + path( + '', + RepairOrderLineItemDetail.as_view(), + name='api-repair-order-line-detail', + ) + ]), ), path('', RepairOrderLineItemList.as_view(), name='api-repair-order-line-list'), ] @@ -2584,15 +2582,13 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): repair_order_allocation_api_urls = [ path( '/', - include( - [ - path( - '', - RepairOrderAllocationDetail.as_view(), - name='api-repair-order-allocation-detail', - ) - ] - ), + include([ + path( + '', + RepairOrderAllocationDetail.as_view(), + name='api-repair-order-allocation-detail', + ) + ]), ), path( '', RepairOrderAllocationList.as_view(), name='api-repair-order-allocation-list' @@ -2604,465 +2600,383 @@ class RepairOrderAllocationDetail(RetrieveUpdateDestroyAPI): # API endpoints for purchase orders path( 'po/', - include( - [ - # Individual purchase order detail URLs - path( - '/', - include( - [ - path( - 'cancel/', - PurchaseOrderCancel.as_view(), - name='api-po-cancel', - ), - path( - 'hold/', PurchaseOrderHold.as_view(), name='api-po-hold' - ), - path( - 'complete/', - PurchaseOrderComplete.as_view(), - name='api-po-complete', - ), - path( - 'issue/', - PurchaseOrderIssue.as_view(), - name='api-po-issue', - ), - meta_path(models.PurchaseOrder), - path( - 'receive/', - PurchaseOrderReceive.as_view(), - name='api-po-receive', - ), - # PurchaseOrder detail API endpoint - path( - '', PurchaseOrderDetail.as_view(), name='api-po-detail' - ), - ] + include([ + # Individual purchase order detail URLs + path( + '/', + include([ + path( + 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' ), - ), - # Purchase order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: PurchaseOrderStatus}, - name='api-po-status-codes', - ), - # Purchase order list - path('', PurchaseOrderList.as_view(), name='api-po-list'), - ] - ), + path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), + path( + 'complete/', + PurchaseOrderComplete.as_view(), + name='api-po-complete', + ), + path('issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), + meta_path(models.PurchaseOrder), + path( + 'receive/', + PurchaseOrderReceive.as_view(), + name='api-po-receive', + ), + # PurchaseOrder detail API endpoint + path('', PurchaseOrderDetail.as_view(), name='api-po-detail'), + ]), + ), + # Purchase order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: PurchaseOrderStatus}, + name='api-po-status-codes', + ), + # Purchase order list + path('', PurchaseOrderList.as_view(), name='api-po-list'), + ]), ), # API endpoints for purchase order line items path( 'po-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.PurchaseOrderLineItem), - path( - '', - PurchaseOrderLineItemDetail.as_view(), - name='api-po-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.PurchaseOrderLineItem), + path( + '', + PurchaseOrderLineItemDetail.as_view(), + name='api-po-line-detail', ), - ), - path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), - ] - ), + ]), + ), + path('', PurchaseOrderLineItemList.as_view(), name='api-po-line-list'), + ]), ), # API endpoints for purchase order extra line path( 'po-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.PurchaseOrderExtraLine), - path( - '', - PurchaseOrderExtraLineDetail.as_view(), - name='api-po-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.PurchaseOrderExtraLine), + path( + '', + PurchaseOrderExtraLineDetail.as_view(), + name='api-po-extra-line-detail', ), - ), - path( - '', - PurchaseOrderExtraLineList.as_view(), - name='api-po-extra-line-list', - ), - ] - ), + ]), + ), + path( + '', PurchaseOrderExtraLineList.as_view(), name='api-po-extra-line-list' + ), + ]), ), # API endpoints for sales orders path( 'so/', - include( - [ - path( - 'shipment/', - include( - [ + include([ + path( + 'shipment/', + include([ + path( + '/', + include([ path( - '/', - include( - [ - path( - 'ship/', - SalesOrderShipmentComplete.as_view(), - name='api-so-shipment-ship', - ), - meta_path(models.SalesOrderShipment), - path( - '', - SalesOrderShipmentDetail.as_view(), - name='api-so-shipment-detail', - ), - ] - ), + 'ship/', + SalesOrderShipmentComplete.as_view(), + name='api-so-shipment-ship', ), + meta_path(models.SalesOrderShipment), path( '', - SalesOrderShipmentList.as_view(), - name='api-so-shipment-list', + SalesOrderShipmentDetail.as_view(), + name='api-so-shipment-detail', ), - ] + ]), ), - ), - # Sales order detail view - path( - '/', - include( - [ - path( - 'allocate/', - SalesOrderAllocate.as_view(), - name='api-so-allocate', - ), - path( - 'allocate-serials/', - SalesOrderAllocateSerials.as_view(), - name='api-so-allocate-serials', - ), - path( - 'auto-allocate/', - SalesOrderAutoAllocate.as_view(), - name='api-so-auto-allocate', - ), - path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), - path( - 'cancel/', - SalesOrderCancel.as_view(), - name='api-so-cancel', - ), - path( - 'issue/', SalesOrderIssue.as_view(), name='api-so-issue' - ), - path( - 'complete/', - SalesOrderComplete.as_view(), - name='api-so-complete', - ), - meta_path(models.SalesOrder), - # SalesOrder detail endpoint - path('', SalesOrderDetail.as_view(), name='api-so-detail'), - ] + path( + '', + SalesOrderShipmentList.as_view(), + name='api-so-shipment-list', ), - ), - # Sales order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: SalesOrderStatus}, - name='api-so-status-codes', - ), - # Sales order list view - path('', SalesOrderList.as_view(), name='api-so-list'), - ] - ), + ]), + ), + # Sales order detail view + path( + '/', + include([ + path( + 'allocate/', + SalesOrderAllocate.as_view(), + name='api-so-allocate', + ), + path( + 'allocate-serials/', + SalesOrderAllocateSerials.as_view(), + name='api-so-allocate-serials', + ), + path( + 'auto-allocate/', + SalesOrderAutoAllocate.as_view(), + name='api-so-auto-allocate', + ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), + path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), + path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), + path( + 'complete/', + SalesOrderComplete.as_view(), + name='api-so-complete', + ), + meta_path(models.SalesOrder), + # SalesOrder detail endpoint + path('', SalesOrderDetail.as_view(), name='api-so-detail'), + ]), + ), + # Sales order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: SalesOrderStatus}, + name='api-so-status-codes', + ), + # Sales order list view + path('', SalesOrderList.as_view(), name='api-so-list'), + ]), ), # API endpoints for sales order line items path( 'so-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.SalesOrderLineItem), - path( - '', - SalesOrderLineItemDetail.as_view(), - name='api-so-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.SalesOrderLineItem), + path( + '', + SalesOrderLineItemDetail.as_view(), + name='api-so-line-detail', ), - ), - path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), - ] - ), + ]), + ), + path('', SalesOrderLineItemList.as_view(), name='api-so-line-list'), + ]), ), # API endpoints for sales order extra line path( 'so-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.SalesOrderExtraLine), - path( - '', - SalesOrderExtraLineDetail.as_view(), - name='api-so-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.SalesOrderExtraLine), + path( + '', + SalesOrderExtraLineDetail.as_view(), + name='api-so-extra-line-detail', ), - ), - path( - '', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list' - ), - ] - ), + ]), + ), + path('', SalesOrderExtraLineList.as_view(), name='api-so-extra-line-list'), + ]), ), # API endpoints for sales order allocations path( 'so-allocation/', - include( - [ - path( - '/', - SalesOrderAllocationDetail.as_view(), - name='api-so-allocation-detail', - ), - path( - '', - SalesOrderAllocationList.as_view(), - name='api-so-allocation-list', - ), - ] - ), + include([ + path( + '/', + SalesOrderAllocationDetail.as_view(), + name='api-so-allocation-detail', + ), + path('', SalesOrderAllocationList.as_view(), name='api-so-allocation-list'), + ]), ), # API endpoints for return orders path( 'ro/', - include( - [ - # Return Order detail endpoints - path( - '/', - include( - [ - path( - 'cancel/', - ReturnOrderCancel.as_view(), - name='api-return-order-cancel', - ), - path( - 'hold/', ReturnOrderHold.as_view(), name='api-ro-hold' - ), - path( - 'complete/', - ReturnOrderComplete.as_view(), - name='api-return-order-complete', - ), - path( - 'issue/', - ReturnOrderIssue.as_view(), - name='api-return-order-issue', - ), - path( - 'receive/', - ReturnOrderReceive.as_view(), - name='api-return-order-receive', - ), - meta_path(models.ReturnOrder), - path( - '', - ReturnOrderDetail.as_view(), - name='api-return-order-detail', - ), - ] + include([ + # Return Order detail endpoints + path( + '/', + include([ + path( + 'cancel/', + ReturnOrderCancel.as_view(), + name='api-return-order-cancel', ), - ), - # Return order status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderStatus}, - name='api-return-order-status-codes', - ), - # Return Order list - path('', ReturnOrderList.as_view(), name='api-return-order-list'), - ] - ), + path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), + path( + 'complete/', + ReturnOrderComplete.as_view(), + name='api-return-order-complete', + ), + path( + 'issue/', + ReturnOrderIssue.as_view(), + name='api-return-order-issue', + ), + path( + 'receive/', + ReturnOrderReceive.as_view(), + name='api-return-order-receive', + ), + meta_path(models.ReturnOrder), + path( + '', ReturnOrderDetail.as_view(), name='api-return-order-detail' + ), + ]), + ), + # Return order status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderStatus}, + name='api-return-order-status-codes', + ), + # Return Order list + path('', ReturnOrderList.as_view(), name='api-return-order-list'), + ]), ), # API endpoints for return order lines path( 'ro-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.ReturnOrderLineItem), - path( - '', - ReturnOrderLineItemDetail.as_view(), - name='api-return-order-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.ReturnOrderLineItem), + path( + '', + ReturnOrderLineItemDetail.as_view(), + name='api-return-order-line-detail', ), - ), - # Return order line item status code information - path( - 'status/', - StatusView.as_view(), - {StatusView.MODEL_REF: ReturnOrderLineStatus}, - name='api-return-order-line-status-codes', - ), - path( - '', - ReturnOrderLineItemList.as_view(), - name='api-return-order-line-list', - ), - ] - ), + ]), + ), + # Return order line item status code information + path( + 'status/', + StatusView.as_view(), + {StatusView.MODEL_REF: ReturnOrderLineStatus}, + name='api-return-order-line-status-codes', + ), + path( + '', ReturnOrderLineItemList.as_view(), name='api-return-order-line-list' + ), + ]), ), # API endpoints for return order extra line path( 'ro-extra-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.ReturnOrderExtraLine), - path( - '', - ReturnOrderExtraLineDetail.as_view(), - name='api-return-order-extra-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.ReturnOrderExtraLine), + path( + '', + ReturnOrderExtraLineDetail.as_view(), + name='api-return-order-extra-line-detail', ), - ), - path( - '', - ReturnOrderExtraLineList.as_view(), - name='api-return-order-extra-line-list', - ), - ] - ), + ]), + ), + path( + '', + ReturnOrderExtraLineList.as_view(), + name='api-return-order-extra-line-list', + ), + ]), ), # API endpoints for transfer orders path( 'transfer-order/', - include( - [ - # Transfer Order detail endpoints - path( - '/', - include( - [ - path( - 'allocate/', - TransferOrderAllocate.as_view(), - name='api-transfer-order-allocate', - ), - path( - 'allocate-serials/', - TransferOrderAllocateSerials.as_view(), - name='api-transfer-order-allocate-serials', - ), - path( - 'cancel/', - TransferOrderCancel.as_view(), - name='api-transfer-order-cancel', - ), - path( - 'hold/', - TransferOrderHold.as_view(), - name='api-transfer-order-hold', - ), - path( - 'complete/', - TransferOrderComplete.as_view(), - name='api-transfer-order-complete', - ), - path( - 'issue/', - TransferOrderIssue.as_view(), - name='api-transfer-order-issue', - ), - meta_path(models.TransferOrder), - path( - '', - TransferOrderDetail.as_view(), - name='api-transfer-order-detail', - ), - ] + include([ + # Transfer Order detail endpoints + path( + '/', + include([ + path( + 'allocate/', + TransferOrderAllocate.as_view(), + name='api-transfer-order-allocate', + ), + path( + 'allocate-serials/', + TransferOrderAllocateSerials.as_view(), + name='api-transfer-order-allocate-serials', + ), + path( + 'cancel/', + TransferOrderCancel.as_view(), + name='api-transfer-order-cancel', + ), + path( + 'hold/', + TransferOrderHold.as_view(), + name='api-transfer-order-hold', + ), + path( + 'complete/', + TransferOrderComplete.as_view(), + name='api-transfer-order-complete', ), - ), - # Transfer Order list - path('', TransferOrderList.as_view(), name='api-transfer-order-list'), - ] - ), + path( + 'issue/', + TransferOrderIssue.as_view(), + name='api-transfer-order-issue', + ), + meta_path(models.TransferOrder), + path( + '', + TransferOrderDetail.as_view(), + name='api-transfer-order-detail', + ), + ]), + ), + # Transfer Order list + path('', TransferOrderList.as_view(), name='api-transfer-order-list'), + ]), ), # API endpoints for transfer order line items path( 'transfer-order-line/', - include( - [ - path( - '/', - include( - [ - meta_path(models.TransferOrderLineItem), - path( - '', - TransferOrderLineItemDetail.as_view(), - name='api-transfer-order-line-detail', - ), - ] + include([ + path( + '/', + include([ + meta_path(models.TransferOrderLineItem), + path( + '', + TransferOrderLineItemDetail.as_view(), + name='api-transfer-order-line-detail', ), - ), - path( - '', - TransferOrderLineItemList.as_view(), - name='api-transfer-order-line-list', - ), - ] - ), + ]), + ), + path( + '', + TransferOrderLineItemList.as_view(), + name='api-transfer-order-line-list', + ), + ]), ), # API endpoints for sales order allocations path( 'transfer-order-allocation/', - include( - [ - path( - '/', - TransferOrderAllocationDetail.as_view(), - name='api-transfer-order-allocation-detail', - ), - path( - '', - TransferOrderAllocationList.as_view(), - name='api-transfer-order-allocation-list', - ), - ] - ), + include([ + path( + '/', + TransferOrderAllocationDetail.as_view(), + name='api-transfer-order-allocation-detail', + ), + path( + '', + TransferOrderAllocationList.as_view(), + name='api-transfer-order-allocation-list', + ), + ]), ), # API endpoint for subscribing to ICS calendar of purchase/sales/return orders re_path( diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 379356fb3d28..a6ca6ad8a10f 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -351,9 +351,9 @@ def save(self, *args, **kwargs): if self.get_db_instance().status != self.status: pass else: - raise ValidationError( - {'reference': _('This order is locked and cannot be modified')} - ) + raise ValidationError({ + 'reference': _('This order is locked and cannot be modified') + }) # Reference calculations self.reference_int = self.rebuild_reference_field(self.reference) @@ -398,13 +398,9 @@ def clean(self): if self.REQUIRE_RESPONSIBLE_SETTING: if get_global_setting(self.REQUIRE_RESPONSIBLE_SETTING, backup_value=False): if not self.responsible: - raise ValidationError( - { - 'responsible': _( - 'Responsible user or group must be specified' - ) - } - ) + raise ValidationError({ + 'responsible': _('Responsible user or group must be specified') + }) # Check that the referenced 'contact' matches the correct 'company' if ( @@ -414,18 +410,16 @@ def clean(self): and self.contact and (self.contact.company != self.company) ): - raise ValidationError( - {'contact': _('Contact does not match selected company')} - ) + raise ValidationError({ + 'contact': _('Contact does not match selected company') + }) # Target date should be *after* the start date if self.start_date and self.target_date and self.start_date > self.target_date: - raise ValidationError( - { - 'target_date': _('Target date must be after start date'), - 'start_date': _('Start date must be before target date'), - } - ) + raise ValidationError({ + 'target_date': _('Target date must be after start date'), + 'start_date': _('Start date must be before target date'), + }) # Check that the referenced 'address' matches the correct 'company' if ( @@ -434,9 +428,9 @@ def clean(self): and self.address and (self.address.company != self.company) ): - raise ValidationError( - {'address': _('Address does not match selected company')} - ) + raise ValidationError({ + 'address': _('Address does not match selected company') + }) def clean_line_item(self, line): """Clean a line item for this order. @@ -481,7 +475,8 @@ def is_overdue(self): Makes use of the overdue_filter() method to avoid code duplication """ return ( - self.__class__.objects.filter(pk=self.pk) + self.__class__.objects + .filter(pk=self.pk) .filter(self.__class__.overdue_filter()) .exists() ) @@ -785,16 +780,16 @@ def add_line_item( try: quantity = int(quantity) if quantity <= 0: - raise ValidationError( - {'quantity': _('Quantity must be greater than zero')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be greater than zero') + }) except ValueError: raise ValidationError({'quantity': _('Invalid quantity provided')}) if supplier_part.supplier != self.supplier: - raise ValidationError( - {'supplier': _('Part supplier must match PO supplier')} - ) + raise ValidationError({ + 'supplier': _('Part supplier must match PO supplier') + }) if group: # Check if there is already a matching line item (for this PurchaseOrder) @@ -1079,9 +1074,9 @@ def receive_line_items( try: if quantity < 0: - raise ValidationError( - {'quantity': _('Quantity must be a positive number')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be a positive number') + }) quantity = InvenTree.helpers.clean_decimal(quantity) except TypeError: raise ValidationError({'quantity': _('Invalid quantity provided')}) @@ -1955,9 +1950,9 @@ def save(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError( - {'non_field_errors': _('The order is locked and cannot be modified')} - ) + raise ValidationError({ + 'non_field_errors': _('The order is locked and cannot be modified') + }) update_order = kwargs.pop('update_order', True) @@ -1980,9 +1975,9 @@ def delete(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError( - {'non_field_errors': _('The order is locked and cannot be modified')} - ) + raise ValidationError({ + 'non_field_errors': _('The order is locked and cannot be modified') + }) super().delete(*args, **kwargs) self.order.save() @@ -2141,37 +2136,33 @@ def clean(self) -> None: if self.build_order: if not self.build_order.external: - raise ValidationError( - {'build_order': _('Build order must be marked as external')} - ) + raise ValidationError({ + 'build_order': _('Build order must be marked as external') + }) if part: if not part.assembly: - raise ValidationError( - { - 'build_order': _( - 'Build orders can only be linked to assembly parts' - ) - } - ) + raise ValidationError({ + 'build_order': _( + 'Build orders can only be linked to assembly parts' + ) + }) if self.build_order.part != self.part.part: - raise ValidationError( - {'build_order': _('Build order part must match line item part')} - ) + raise ValidationError({ + 'build_order': _('Build order part must match line item part') + }) # Extra checks for external builds if part and part.assembly and get_global_setting('BUILDORDER_EXTERNAL_BUILDS'): if not self.build_order and get_global_setting( 'BUILDORDER_EXTERNAL_REQUIRED' ): - raise ValidationError( - { - 'build_order': _( - 'An external build order is required for assembly parts' - ) - } - ) + raise ValidationError({ + 'build_order': _( + 'An external build order is required for assembly parts' + ) + }) def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" @@ -2355,9 +2346,9 @@ def clean(self) -> None: if self.part: if not self.part.salable: - raise ValidationError( - {'part': _('Only salable parts can be assigned to a sales order')} - ) + raise ValidationError({ + 'part': _('Only salable parts can be assigned to a sales order') + }) order = models.ForeignKey( SalesOrder, @@ -2517,9 +2508,9 @@ def clean(self) -> None: if self.order and self.shipment_address: if self.shipment_address.company != self.order.customer: - raise ValidationError( - {'shipment_address': _('Shipment address must match the customer')} - ) + raise ValidationError({ + 'shipment_address': _('Shipment address must match the customer') + }) @staticmethod def get_api_url() -> str: @@ -3251,19 +3242,19 @@ def clean(self): raise ValidationError({'item': _('Stock item must be specified')}) if self.quantity > self.item.quantity: - raise ValidationError( - {'quantity': _('Return quantity exceeds stock quantity')} - ) + raise ValidationError({ + 'quantity': _('Return quantity exceeds stock quantity') + }) if self.quantity <= 0: - raise ValidationError( - {'quantity': _('Return quantity must be greater than zero')} - ) + raise ValidationError({ + 'quantity': _('Return quantity must be greater than zero') + }) if self.item.serialized and self.quantity != 1: - raise ValidationError( - {'quantity': _('Invalid quantity for serialized stock item')} - ) + raise ValidationError({ + 'quantity': _('Invalid quantity for serialized stock item') + }) order = models.ForeignKey( ReturnOrder, diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 5340a20e8bec..91b0c9d2d2d5 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -386,19 +386,17 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'complete_date', - 'supplier', - 'supplier_detail', - 'supplier_reference', - 'supplier_name', - 'total_price', - 'order_currency', - 'destination', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'complete_date', + 'supplier', + 'supplier_detail', + 'supplier_reference', + 'supplier_name', + 'total_price', + 'order_currency', + 'destination', + 'updated_at', + ]) read_only_fields = [ 'issue_date', 'complete_date', @@ -555,30 +553,28 @@ class Meta: """Metaclass options.""" model = order.models.PurchaseOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'part', - 'build_order', - 'overdue', - 'received', - 'purchase_price', - 'purchase_price_currency', - 'auto_pricing', - 'destination', - 'total_price', - 'merge_items', - 'sku', - 'mpn', - 'ipn', - 'internal_part', - 'internal_part_name', - # Filterable detail fields - 'build_order_detail', - 'destination_detail', - 'part_detail', - 'supplier_part_detail', - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'part', + 'build_order', + 'overdue', + 'received', + 'purchase_price', + 'purchase_price_currency', + 'auto_pricing', + 'destination', + 'total_price', + 'merge_items', + 'sku', + 'mpn', + 'ipn', + 'internal_part', + 'internal_part_name', + # Filterable detail fields + 'build_order_detail', + 'destination_detail', + 'part_detail', + 'supplier_part_detail', + ]) def skip_create_fields(self): """Return a list of fields to skip when creating a new object.""" @@ -787,12 +783,10 @@ def validate(self, data): supplier_part is not None and supplier_part.supplier != purchase_order.supplier ): - raise ValidationError( - { - 'part': _('Supplier must match purchase order'), - 'order': _('Purchase order must match supplier'), - } - ) + raise ValidationError({ + 'part': _('Supplier must match purchase order'), + 'order': _('Purchase order must match supplier'), + }) return data @@ -1027,9 +1021,9 @@ def validate(self, data): item['location'] = line.get_destination() if not item['location']: - raise ValidationError( - {'location': _('Destination location must be specified')} - ) + raise ValidationError({ + 'location': _('Destination location must be specified') + }) barcode = item.get('barcode', '') @@ -1079,20 +1073,18 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'customer', - 'customer_detail', - 'customer_reference', - 'shipment_date', - 'total_price', - 'order_currency', - 'shipments_count', - 'completed_shipments_count', - 'allocated_lines', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'customer', + 'customer_detail', + 'customer_reference', + 'shipment_date', + 'total_price', + 'order_currency', + 'shipments_count', + 'completed_shipments_count', + 'allocated_lines', + 'updated_at', + ]) read_only_fields = ['status', 'creation_date', 'shipment_date', 'updated_at'] extra_kwargs = {'order_currency': {'required': False}} @@ -1194,24 +1186,22 @@ class Meta: """Metaclass options.""" model = order.models.SalesOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'allocated', - 'customer_detail', - 'overdue', - 'part', - 'part_detail', - 'sale_price', - 'sale_price_currency', - 'shipped', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'allocated', + 'customer_detail', + 'overdue', + 'part', + 'part_detail', + 'sale_price', + 'sale_price_currency', + 'shipped', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ]) @staticmethod def annotate_queryset(queryset): @@ -1681,14 +1671,14 @@ def validate(self, data): stock_item.hasRequiredTests() and not stock_item.passedAllRequiredTests() ): - raise ValidationError( - {'stock_item': _('Stock item has not passed all required tests')} - ) + raise ValidationError({ + 'stock_item': _('Stock item has not passed all required tests') + }) if stock_item.serialized and quantity != 1: - raise ValidationError( - {'quantity': _('Quantity must be 1 for serialized stock item')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be 1 for serialized stock item') + }) q = normalize(stock_item.unallocated_quantity()) @@ -2145,17 +2135,15 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'complete_date', - 'customer', - 'customer_detail', - 'customer_reference', - 'order_currency', - 'total_price', - 'updated_at', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'complete_date', + 'customer', + 'customer_detail', + 'customer_reference', + 'order_currency', + 'total_price', + 'updated_at', + ]) read_only_fields = ['creation_date', 'updated_at'] def skip_create_fields(self): @@ -2341,18 +2329,16 @@ class Meta: """Metaclass options.""" model = order.models.ReturnOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'item', - 'received_date', - 'outcome', - 'price', - 'price_currency', - # Filterable detail fields - 'item_detail', - 'part_detail', - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'item', + 'received_date', + 'outcome', + 'price', + 'price_currency', + # Filterable detail fields + 'item_detail', + 'part_detail', + ]) order_detail = OptionalField( serializer_class=ReturnOrderSerializer, @@ -2436,16 +2422,14 @@ class Meta: """Metaclass options.""" model = order.models.TransferOrder - fields = AbstractOrderSerializer.order_fields( - [ - 'take_from', - 'take_from_detail', - 'destination', - 'destination_detail', - 'consume', - 'complete_date', - ] - ) + fields = AbstractOrderSerializer.order_fields([ + 'take_from', + 'take_from_detail', + 'destination', + 'destination_detail', + 'consume', + 'complete_date', + ]) read_only_fields = ['creation_date'] extra_kwargs = {} @@ -2598,21 +2582,19 @@ class Meta: """Metaclass options.""" model = order.models.TransferOrderLineItem - fields = AbstractLineItemSerializer.line_fields( - [ - 'allocated', - 'overdue', - 'part', - 'part_detail', - 'transferred', - # Annotated fields for part stocking information - 'available_stock', - 'available_variant_stock', - 'building', - 'on_order', - # Filterable detail fields - ] - ) + fields = AbstractLineItemSerializer.line_fields([ + 'allocated', + 'overdue', + 'part', + 'part_detail', + 'transferred', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', + # Filterable detail fields + ]) @staticmethod def annotate_queryset(queryset): @@ -2780,9 +2762,9 @@ def validate(self, data): quantity = data['quantity'] if stock_item.serialized and quantity != 1: - raise ValidationError( - {'quantity': _('Quantity must be 1 for serialized stock item')} - ) + raise ValidationError({ + 'quantity': _('Quantity must be 1 for serialized stock item') + }) q = normalize(stock_item.unallocated_quantity()) diff --git a/src/backend/InvenTree/order/status_codes.py b/src/backend/InvenTree/order/status_codes.py index d8893a1fa3c8..a248e49a446b 100644 --- a/src/backend/InvenTree/order/status_codes.py +++ b/src/backend/InvenTree/order/status_codes.py @@ -142,3 +142,26 @@ class TransferOrderStatusGroups: FAILED = [TransferOrderStatus.CANCELLED.value] COMPLETE = [TransferOrderStatus.COMPLETE.value] + + +class RepairOrderStatus(StatusCode): + """Defines a set of status codes for a RepairOrder.""" + + PENDING = 10, _('Pending'), ColorEnum.secondary # Repair is pending + IN_PROGRESS = 20, _('In Progress'), ColorEnum.primary # Repair is underway + ON_HOLD = 25, _('On Hold'), ColorEnum.warning # Repair is on hold + COMPLETE = 30, _('Complete'), ColorEnum.success # Repair has been completed + CANCELLED = 40, _('Cancelled'), ColorEnum.danger # Repair was cancelled + + +class RepairOrderStatusGroups: + """Groups for RepairOrderStatus codes.""" + + # Open orders + OPEN = [ + RepairOrderStatus.PENDING.value, + RepairOrderStatus.ON_HOLD.value, + RepairOrderStatus.IN_PROGRESS.value, + ] + + COMPLETE = [RepairOrderStatus.COMPLETE.value] From 04998e72696a8787e4fa125306cdb6754ff4cb0a Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 07:12:08 +0530 Subject: [PATCH 07/27] Fix: Restore missing RepairOrder serializers and resolve prek formatting --- src/backend/InvenTree/order/serializers.py | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 91b0c9d2d2d5..b8f2143fc0eb 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -3026,3 +3026,33 @@ def save(self): with transaction.atomic(): order.models.TransferOrderAllocation.objects.bulk_create(allocations) + + +class RepairOrderSerializer(NotesFieldMixin, InvenTreeModelSerializer): + """Serializer for a RepairOrder object.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrder + fields = ['pk', 'reference', 'customer', 'description', 'symptoms', 'status'] + + +class RepairOrderLineItemSerializer(InvenTreeModelSerializer): + """Serializer for a RepairOrderLineItem object.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrderLineItem + fields = ['pk', 'order', 'part', 'quantity'] + + +class RepairOrderAllocationSerializer(InvenTreeModelSerializer): + """Serializer for a RepairOrderAllocation object.""" + + class Meta: + """Metaclass options.""" + + model = order.models.RepairOrderAllocation + fields = ['pk', 'line', 'item', 'quantity'] From c2187c48bcec99b15329419d8d8a0f048e336bd7 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 07:24:48 +0530 Subject: [PATCH 08/27] Fix: Add search_fields to RepairOrder admins to resolve admin.E040 --- src/backend/InvenTree/order/admin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/InvenTree/order/admin.py b/src/backend/InvenTree/order/admin.py index 2e61ea6663b9..aac9ee62a553 100644 --- a/src/backend/InvenTree/order/admin.py +++ b/src/backend/InvenTree/order/admin.py @@ -227,6 +227,8 @@ class RepairOrderLineItemAdmin(admin.ModelAdmin): list_display = ['order', 'part', 'quantity'] + search_fields = ['order__reference', 'part__name', 'part__IPN'] + autocomplete_fields = ['order', 'part'] From ae79d45b44a08311b387cc8378f684670148ca0a Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 08:29:44 +0530 Subject: [PATCH 09/27] Fix: Add missing database migrations for RepairOrder models --- ...pairorderlineitem_repairorderallocation.py | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py diff --git a/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py b/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py new file mode 100644 index 000000000000..d8493d8ad6a9 --- /dev/null +++ b/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py @@ -0,0 +1,216 @@ +# Generated by Django 5.2.13 on 2026-06-04 02:30 + +import django.db.models.deletion +from django.db import migrations, models + +import InvenTree.fields +import InvenTree.models + + +class Migration(migrations.Migration): + dependencies = [ + ('company', '0077_delete_manufacturerpartparameter'), + ('order', '0119_transferorderlineitem_line_int'), + ('part', '0146_auto_20251203_1241'), + ('stock', '0116_alter_stockitem_link'), + ] + + operations = [ + migrations.CreateModel( + name='RepairOrder', + fields=[ + ( + 'id', + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'metadata', + models.JSONField( + blank=True, + help_text='JSON metadata field, for use by external plugins', + null=True, + verbose_name='Plugin Metadata', + ), + ), + ( + 'notes', + InvenTree.fields.InvenTreeNotesField( + blank=True, + help_text='Markdown notes (optional)', + max_length=50000, + null=True, + verbose_name='Notes', + ), + ), + ( + 'reference', + models.CharField( + help_text='Repair Order Reference', + max_length=100, + unique=True, + verbose_name='Reference', + ), + ), + ( + 'description', + models.CharField( + help_text='Repair order description', + max_length=250, + verbose_name='Description', + ), + ), + ( + 'symptoms', + models.TextField( + blank=True, + help_text='Reported symptoms or issues', + verbose_name='Symptoms', + ), + ), + ( + 'status', + models.IntegerField( + choices=[ + (10, 'Pending'), + (20, 'In Progress'), + (25, 'On Hold'), + (30, 'Complete'), + (40, 'Cancelled'), + ], + default=10, + help_text='Repair order status', + verbose_name='Status', + ), + ), + ( + 'customer', + models.ForeignKey( + blank=True, + help_text='Customer reference', + limit_choices_to={'is_customer': True}, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name='repair_orders', + to='company.company', + verbose_name='Customer', + ), + ), + ], + options={'verbose_name': 'Repair Order'}, + bases=( + InvenTree.models.InvenTreeAttachmentMixin, + InvenTree.models.InvenTreePermissionCheckMixin, + InvenTree.models.ContentTypeMixin, + InvenTree.models.PluginValidationMixin, + models.Model, + ), + ), + migrations.CreateModel( + name='RepairOrderLineItem', + fields=[ + ( + 'id', + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'metadata', + models.JSONField( + blank=True, + help_text='JSON metadata field, for use by external plugins', + null=True, + verbose_name='Plugin Metadata', + ), + ), + ( + 'order', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='lines', + to='order.repairorder', + verbose_name='Repair Order', + ), + ), + ( + 'part', + models.ForeignKey( + blank=True, + help_text='Part to be consumed for repair', + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name='repair_order_line_items', + to='part.part', + verbose_name='Part', + ), + ), + ( + 'quantity', + models.DecimalField( + decimal_places=5, + default=1, + help_text='Item quantity required for repair', + max_digits=15, + verbose_name='Quantity', + ), + ), + ], + options={'verbose_name': 'Repair Order Line Item'}, + bases=( + InvenTree.models.ContentTypeMixin, + InvenTree.models.PluginValidationMixin, + models.Model, + ), + ), + migrations.CreateModel( + name='RepairOrderAllocation', + fields=[ + ( + 'id', + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'line', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='allocations', + to='order.repairorderlineitem', + verbose_name='Line Item', + ), + ), + ( + 'item', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='repair_order_allocations', + to='stock.stockitem', + verbose_name='Stock Item', + ), + ), + ( + 'quantity', + models.DecimalField( + decimal_places=5, + default=1, + help_text='Allocated stock quantity', + max_digits=15, + verbose_name='Quantity', + ), + ), + ], + options={'verbose_name': 'Repair Order Allocation'}, + ), + ] From 35d34d44ed21b484614fc5431ccc115b6b9bf1f7 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 09:02:09 +0530 Subject: [PATCH 10/27] Fix: Regenerate OpenAPI schema to include RepairOrder endpoints --- src/backend/InvenTree/schema.yml | 39381 +++++++++++++++++++++++++++++ 1 file changed, 39381 insertions(+) create mode 100644 src/backend/InvenTree/schema.yml diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml new file mode 100644 index 000000000000..9235fca80d4b --- /dev/null +++ b/src/backend/InvenTree/schema.yml @@ -0,0 +1,39381 @@ +openapi: 3.0.3 +info: + title: InvenTree API + version: '499' + description: API for InvenTree - the intuitive open source inventory management + system + license: + name: MIT + url: https://github.com/inventree/InvenTree/blob/master/LICENSE +paths: + /api/: + get: + operationId: root_retrieve + description: Serve current server information. + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InfoApi' + description: InvenTree server information + /api/action/: + post: + operationId: action_create + description: This function checks if all required info was submitted and then + performs a plugin_action or returns an error. + tags: + - action + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPlugin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ActionPlugin' + multipart/form-data: + schema: + $ref: '#/components/schemas/ActionPlugin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPlugin' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPluginError' + description: No action specified + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPluginError' + description: No matching action found + /api/admin/config/: + get: + operationId: admin_config_list + description: All accessed/in-use configurations. + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Config' + description: '' + /api/admin/config/{key}/: + get: + operationId: admin_config_retrieve + description: All accessed/in-use configurations. + parameters: + - in: path + name: key + schema: + type: string + description: Unique identifier for this configuration + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Config' + description: '' + /api/admin/email/: + get: + operationId: admin_email_list + description: Backend E-Mail management for administrative purposes. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - created + - -created + - subject + - -subject + - to + - -to + - sender + - -sender + - status + - -status + - timestamp + - -timestamp + - direction + - -direction + - name: search + required: false + in: query + description: 'A search term. Searched fields: global_id, message_id_key, sender, + subject, thread_id_key, to.' + schema: + type: string + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmailMessageList' + description: '' + delete: + operationId: admin_email_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/admin/email/{global_id}/: + get: + operationId: admin_email_retrieve + description: Backend E-Mail management for administrative purposes. + parameters: + - in: path + name: global_id + schema: + type: string + format: uuid + description: Unique identifier for this message + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EmailMessage' + description: '' + delete: + operationId: admin_email_destroy + description: Backend E-Mail management for administrative purposes. + parameters: + - in: path + name: global_id + schema: + type: string + format: uuid + description: Unique identifier for this message + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + /api/admin/email/test/: + post: + operationId: admin_email_test_create + description: Send a test email. + tags: + - admin + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestEmail' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TestEmail' + multipart/form-data: + schema: + $ref: '#/components/schemas/TestEmail' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TestEmail' + description: '' + /api/attachment/: + get: + operationId: attachment_list + description: List API endpoint for Attachment objects. + parameters: + - in: query + name: has_thumbnail + schema: + type: boolean + description: Has Thumbnail + - in: query + name: is_file + schema: + type: boolean + description: Is File + - in: query + name: is_image + schema: + type: boolean + - in: query + name: is_link + schema: + type: boolean + description: Is Link + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_id + schema: + type: integer + - in: query + name: model_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - model_id + - -model_id + - model_type + - -model_type + - upload_date + - -upload_date + - file_size + - -file_size + - name: search + required: false + in: query + description: 'A search term. Searched fields: comment, model_id, model_type.' + schema: + type: string + - in: query + name: upload_user + schema: + type: integer + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAttachmentList' + description: '' + post: + operationId: attachment_create + description: List API endpoint for Attachment objects. + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Attachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Attachment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: attachment_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/attachment/{id}/: + get: + operationId: attachment_retrieve + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + put: + operationId: attachment_update + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Attachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Attachment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + patch: + operationId: attachment_partial_update + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedAttachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAttachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAttachment' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: attachment_destroy + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/background-task/: + get: + operationId: background_task_overview + description: Return information about the current status of the background task + queue. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskOverview' + description: '' + /api/background-task/{task_id}/: + get: + operationId: background_task_retrieve + description: Fetch information regarding a particular background task ID. + parameters: + - in: path + name: task_id + schema: + type: string + required: true + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/background-task/failed/: + get: + operationId: background_task_failed_list + description: Provides a read-only list of currently failed tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - func + - -func + - started + - -started + - stopped + - -stopped + - name: search + required: false + in: query + description: 'A search term. Searched fields: func.' + schema: + type: string + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFailedTaskList' + description: '' + delete: + operationId: background_task_failed_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/background-task/pending/: + get: + operationId: background_task_pending_list + description: Provides a read-only list of currently pending tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPendingTaskList' + description: '' + delete: + operationId: background_task_pending_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/background-task/scheduled/: + get: + operationId: background_task_scheduled_list + description: Provides a read-only list of currently scheduled tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - func + - -func + - last_run + - -last_run + - next_run + - -next_run + - name: search + required: false + in: query + description: 'A search term. Searched fields: func, name.' + schema: + type: string + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScheduledTaskList' + description: '' + /api/barcode/: + post: + operationId: barcode_create + description: |- + Endpoint for handling generic barcode scan requests. + + Barcode data are decoded by the client application, + and sent to this endpoint (as a JSON object) for validation. + + A barcode could follow the internal InvenTree barcode format, + or it could match to a third-party barcode format (e.g. Digikey). + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Barcode' + multipart/form-data: + schema: + $ref: '#/components/schemas/Barcode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + description: '' + /api/barcode/generate/: + post: + operationId: barcode_generate_create + description: |- + Endpoint for generating a barcode for a database object. + + The barcode is generated by the selected barcode plugin. + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + description: '' + /api/barcode/history/: + get: + operationId: barcode_history_list + description: List API endpoint for BarcodeScan objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - user + - -user + - timestamp + - -timestamp + - endpoint + - -endpoint + - result + - -result + - in: query + name: result + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: data.' + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBarcodeScanResultList' + description: '' + delete: + operationId: barcode_history_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/barcode/history/{id}/: + get: + operationId: barcode_history_retrieve + description: Detail endpoint for a BarcodeScan object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeScanResult' + description: '' + delete: + operationId: barcode_history_destroy + description: Detail endpoint for a BarcodeScan object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/barcode/link/: + post: + operationId: barcode_link_create + description: |- + Endpoint for assigning a barcode to a stock item. + + - This only works if the barcode is not already associated with an object in the database + - If the barcode does not match an object, then the barcode hash is assigned to the StockItem + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeAssign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeAssign' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeAssign' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeAssign' + description: '' + /api/barcode/po-allocate/: + post: + operationId: barcode_po_allocate_create + description: |- + Endpoint for allocating parts to a purchase order by scanning their barcode. + + Note that the scanned barcode may point to: + + - A Part object + - A ManufacturerPart object + - A SupplierPart object + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + description: '' + /api/barcode/po-receive/: + post: + operationId: barcode_po_receive_create + description: |- + Endpoint for handling receiving parts by scanning their barcode. + + Barcode data are decoded by the client application, + and sent to this endpoint (as a JSON object) for validation. + + The barcode should follow a third-party barcode format (e.g. Digikey) + and ideally contain order_number and quantity information. + + The following parameters are available: + + - barcode: The raw barcode data (required) + - purchase_order: The purchase order containing the item to receive (optional) + - location: The destination location for the received item (optional) + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + description: '' + /api/barcode/so-allocate/: + post: + operationId: barcode_so_allocate_create + description: |- + Endpoint for allocating stock to a sales order, by scanning barcode. + + The scanned barcode should map to a StockItem object. + + Additional fields can be passed to the endpoint: + + - SalesOrder (Required) + - Line Item + - Shipment + - Quantity + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + description: '' + /api/barcode/unlink/: + post: + operationId: barcode_unlink_create + description: Endpoint for unlinking / unassigning a custom barcode from a database + object. + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + description: '' + /api/bom/: + get: + operationId: bom_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allow_variants + schema: + type: boolean + - in: query + name: available_stock + schema: + type: boolean + description: Has available stock + - in: query + name: can_build + schema: + type: boolean + default: true + - in: query + name: category + schema: + type: integer + - in: query + name: consumable + schema: + type: boolean + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: inherited + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: on_order + schema: + type: boolean + description: On order + - in: query + name: optional + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - can_build + - -can_build + - category + - -category + - quantity + - -quantity + - setup_quantity + - -setup_quantity + - attrition + - -attrition + - rounding_multiple + - -rounding_multiple + - sub_part + - -sub_part + - IPN + - -IPN + - available_stock + - -available_stock + - allow_variants + - -allow_variants + - inherited + - -inherited + - optional + - -optional + - consumable + - -consumable + - reference + - -reference + - validated + - -validated + - pricing_min + - -pricing_min + - pricing_max + - -pricing_max + - pricing_min_total + - -pricing_min_total + - pricing_max_total + - -pricing_max_total + - pricing_updated + - -pricing_updated + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Assembly part is active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: part_locked + schema: + type: boolean + description: Assembly part is locked + - in: query + name: part_testable + schema: + type: boolean + description: Assembly part is testable + - in: query + name: part_trackable + schema: + type: boolean + description: Assembly part is trackable + - in: query + name: pricing + schema: + type: boolean + default: false + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__IPN, part__description, + part__keywords, part__name, part__revision, reference, sub_part__IPN, sub_part__category__name, + sub_part__description, sub_part__keywords, sub_part__name, sub_part__revision.' + schema: + type: string + - in: query + name: sub_part_active + schema: + type: boolean + description: Component part is active + - in: query + name: sub_part_assembly + schema: + type: boolean + description: Component part is an assembly + - in: query + name: sub_part_detail + schema: + type: boolean + default: false + - in: query + name: sub_part_testable + schema: + type: boolean + description: Component part is testable + - in: query + name: sub_part_trackable + schema: + type: boolean + description: Component part is trackable + - in: query + name: sub_part_virtual + schema: + type: boolean + description: Component part is virtual + - in: query + name: substitutes + schema: + type: boolean + default: false + - in: query + name: uses + schema: + type: integer + - in: query + name: validated + schema: + type: boolean + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBomItemList' + description: '' + post: + operationId: bom_create + description: |- + API endpoint for accessing a list of BomItem objects. + + - GET: Return list of BomItem objects + - POST: Create a new BomItem object + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:bom + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + put: + operationId: bom_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + patch: + operationId: bom_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + delete: + operationId: bom_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/bom/{id}/: + get: + operationId: bom_retrieve + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: query + name: can_build + schema: + type: boolean + default: true + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: pricing + schema: + type: boolean + default: false + - in: query + name: sub_part_detail + schema: + type: boolean + default: false + - in: query + name: substitutes + schema: + type: boolean + default: false + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + put: + operationId: bom_update + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + patch: + operationId: bom_partial_update + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + delete: + operationId: bom_destroy + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + /api/bom/{id}/validate/: + put: + operationId: bom_validate_update + description: API endpoint for validating a BomItem. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemValidation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemValidation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + description: '' + patch: + operationId: bom_validate_partial_update + description: API endpoint for validating a BomItem. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + description: '' + /api/bom/substitute/: + get: + operationId: bom_substitute_list + description: API endpoint for accessing a list of BomItemSubstitute objects. + parameters: + - in: query + name: bom_item + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBomItemSubstituteList' + description: '' + post: + operationId: bom_substitute_create + description: API endpoint for accessing a list of BomItemSubstitute objects. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:bom + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + /api/bom/substitute/{id}/: + get: + operationId: bom_substitute_retrieve + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + put: + operationId: bom_substitute_update + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + patch: + operationId: bom_substitute_partial_update + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + delete: + operationId: bom_substitute_destroy + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + /api/build/: + get: + operationId: build_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: active + schema: + type: boolean + description: Build is active + - in: query + name: ancestor + schema: + type: integer + description: Ancestor Build + - in: query + name: assigned_to + schema: + type: integer + description: Assigned To + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: category + schema: + type: integer + description: Category + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed after + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed before + - in: query + name: created_after + schema: + type: string + format: date + description: Created after + - in: query + name: created_before + schema: + type: string + format: date + description: Created before + - in: query + name: exclude_tree + schema: + type: integer + description: Exclude Tree + - in: query + name: external + schema: + type: boolean + - in: query + name: has_project_code + schema: + type: boolean + description: has_project_code + - in: query + name: has_start_date + schema: + type: boolean + description: Has start date + - in: query + name: has_target_date + schema: + type: boolean + description: Has target date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: issued_by + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - reference + - -reference + - part + - -part + - IPN + - -IPN + - part__name + - -part__name + - status + - -status + - creation_date + - -creation_date + - start_date + - -start_date + - target_date + - -target_date + - completion_date + - -completion_date + - quantity + - -quantity + - completed + - -completed + - issued_by + - -issued_by + - responsible + - -responsible + - project_code + - -project_code + - priority + - -priority + - level + - -level + - external + - -external + - in: query + name: outstanding + schema: + type: boolean + description: Build is outstanding + - in: query + name: overdue + schema: + type: boolean + description: Build is overdue + - in: query + name: parent + schema: + type: integer + description: Parent Build + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: project_code + schema: + type: integer + - in: query + name: reference + schema: + type: string + description: Filter by exact reference + - in: query + name: sales_order + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__IPN, part__description, + part__name, priority, project_code__code, reference, title.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start date after + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start date before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target date after + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target date before + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildList' + description: '' + post: + operationId: build_create + description: |- + API endpoint for accessing a list of Build objects. + + - GET: Return list of objects (with filters) + - POST: Create a new Build object + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Build' + multipart/form-data: + schema: + $ref: '#/components/schemas/Build' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + /api/build/{id}/: + get: + operationId: build_retrieve + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + put: + operationId: build_update + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Build' + multipart/form-data: + schema: + $ref: '#/components/schemas/Build' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + patch: + operationId: build_partial_update + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuild' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuild' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuild' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + delete: + operationId: build_destroy + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/{id}/allocate/: + post: + operationId: build_allocate_create + description: |- + API endpoint to allocate stock items to a build order. + + - The BuildOrder object is specified by the URL + - Items to allocate are specified as a list called "items" with the following options: + - bom_item: pk value of a given BomItem object (must match the part associated with this build) + - stock_item: pk value of a given StockItem object + - quantity: quantity to allocate + - output: StockItem (build order output) to allocate stock against (optional) + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAllocation' + description: '' + /api/build/{id}/auto-allocate/: + post: + operationId: build_auto_allocate_create + description: |- + Override the POST method to handle auto allocation task. + + As this is offloaded to the background task, + we return information about the background task which is performing the auto allocation operation. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/cancel/: + post: + operationId: build_cancel_create + description: API endpoint for cancelling a BuildOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildCancel' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildCancel' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildCancel' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildCancel' + description: '' + /api/build/{id}/complete/: + post: + operationId: build_complete_create + description: Override POST to offload build output completion to the background + worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/consume/: + post: + operationId: build_consume_create + description: |- + Override the POST method to handle consume task. + + As this is offloaded to the background task, + we return information about the background task which is performing the consume operation. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildConsume' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildConsume' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildConsume' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/create-output/: + post: + operationId: build_create_output_create + description: API endpoint for creating new build output(s). + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/build/{id}/delete-outputs/: + post: + operationId: build_delete_outputs_create + description: Override POST to offload build output deletion to the background + worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/finish/: + post: + operationId: build_finish_create + description: API endpoint for marking a build as finished (completed). + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildComplete' + description: '' + /api/build/{id}/hold/: + post: + operationId: build_hold_create + description: API endpoint for placing a BuildOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/build/{id}/issue/: + post: + operationId: build_issue_create + description: API endpoint for issuing a BuildOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/build/{id}/scrap-outputs/: + post: + operationId: build_scrap_outputs_create + description: Override POST to offload scrapping to the background worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/unallocate/: + post: + operationId: build_unallocate_create + description: |- + API endpoint for unallocating stock items from a build order. + + - The BuildOrder object is specified by the URL + - "output" (StockItem) can optionally be specified + - "bom_item" can optionally be specified + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildUnallocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildUnallocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildUnallocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildUnallocation' + description: '' + /api/build/item/: + get: + operationId: build_item_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: build + schema: + type: integer + description: Build Order + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: query + name: build_line + schema: + type: integer + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: install_into + schema: + type: integer + - in: query + name: install_into_detail + schema: + type: boolean + default: false + description: Include detailed information about the build output for this + build item. + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the location of the allocated + stock item. + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - sku + - -sku + - quantity + - -quantity + - location + - -location + - reference + - -reference + - IPN + - -IPN + - in: query + name: output + schema: + type: integer + description: Filter by output stock item ID. Use 'null' to find uninstalled + build items. + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the part associated with this + build item. + - name: search + required: false + in: query + description: 'A search term. Searched fields: build_line__bom_item__reference, + stock_item__part__IPN, stock_item__part__name, stock_item__supplier_part__SKU.' + schema: + type: string + - in: query + name: stock_detail + schema: + type: boolean + default: false + description: Include detailed information about the allocated stock item. + - in: query + name: stock_item + schema: + type: integer + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier part associated + with this build item. + - in: query + name: tracked + schema: + type: boolean + description: Tracked + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildItemList' + description: '' + post: + operationId: build_item_create + description: |- + API endpoint for accessing a list of BuildItem objects. + + - GET: Return list of objects + - POST: Create a new BuildItem object + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + delete: + operationId: build_item_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/build/item/{id}/: + get: + operationId: build_item_retrieve + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + put: + operationId: build_item_update + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + patch: + operationId: build_item_partial_update + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + delete: + operationId: build_item_destroy + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/line/: + get: + operationId: build_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: allocations + schema: + type: boolean + default: false + description: Include allocation details showing which stock items are allocated + to this build line. + - in: query + name: assembly + schema: + type: boolean + description: Assembly + - in: query + name: assembly_detail + schema: + type: boolean + default: false + description: Include brief details of the assembly (parent part) related to + the BOM item in this build line. + - in: query + name: available + schema: + type: boolean + description: Available + - in: query + name: bom_item + schema: + type: integer + - in: query + name: bom_item_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - in: query + name: build + schema: + type: integer + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: query + name: consumable + schema: + type: boolean + description: Consumable + - in: query + name: consumed + schema: + type: boolean + description: Consumed + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: on_order + schema: + type: boolean + description: On Order + - in: query + name: optional + schema: + type: boolean + description: Optional + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - allocated + - -allocated + - category + - -category + - consumed + - -consumed + - reference + - -reference + - quantity + - -quantity + - consumable + - -consumable + - optional + - -optional + - unit_quantity + - -unit_quantity + - available_stock + - -available_stock + - trackable + - -trackable + - allow_variants + - -allow_variants + - inherited + - -inherited + - on_order + - -on_order + - scheduled_to_build + - -scheduled_to_build + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the specific part being built + or consumed in this build line. + - name: search + required: false + in: query + description: 'A search term. Searched fields: bom_item__reference, bom_item__sub_part__IPN, + bom_item__sub_part__description, bom_item__sub_part__name.' + schema: + type: string + - in: query + name: testable + schema: + type: boolean + description: Testable + - in: query + name: tracked + schema: + type: boolean + description: Tracked + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildLineList' + description: '' + post: + operationId: build_line_create + description: API endpoint for accessing a list of BuildLine objects. + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + /api/build/line/{id}/: + get: + operationId: build_line_retrieve + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: query + name: allocations + schema: + type: boolean + default: false + description: Include allocation details showing which stock items are allocated + to this build line. + - in: query + name: assembly_detail + schema: + type: boolean + default: false + description: Include brief details of the assembly (parent part) related to + the BOM item in this build line. + - in: query + name: bom_item_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the specific part being built + or consumed in this build line. + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + put: + operationId: build_line_update + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + patch: + operationId: build_line_partial_update + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + delete: + operationId: build_line_destroy + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/status/: + get: + operationId: build_status_retrieve + description: Retrieve information about a specific status code + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/company/: + get: + operationId: company_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: is_customer + schema: + type: boolean + - in: query + name: is_manufacturer + schema: + type: boolean + - in: query + name: is_supplier + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - active + - -active + - name + - -name + - parts_supplied + - -parts_supplied + - parts_manufactured + - -parts_manufactured + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, tax_id, website.' + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCompanyList' + description: '' + post: + operationId: company_create + description: |- + API endpoint for accessing a list of Company objects. + + Provides two methods: + + - GET: Return list of objects + - POST: Create a new Company object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Company' + multipart/form-data: + schema: + $ref: '#/components/schemas/Company' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + /api/company/{id}/: + get: + operationId: company_retrieve + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + put: + operationId: company_update + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Company' + multipart/form-data: + schema: + $ref: '#/components/schemas/Company' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + patch: + operationId: company_partial_update + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCompany' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCompany' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCompany' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + delete: + operationId: company_destroy + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/address/: + get: + operationId: company_address_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: company + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - title + - -title + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAddressList' + description: '' + post: + operationId: company_address_create + description: API endpoint for list view of Address model. + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Address' + multipart/form-data: + schema: + $ref: '#/components/schemas/Address' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + delete: + operationId: company_address_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/address/{id}/: + get: + operationId: company_address_retrieve + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + put: + operationId: company_address_update + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Address' + multipart/form-data: + schema: + $ref: '#/components/schemas/Address' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + patch: + operationId: company_address_partial_update + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedAddress' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAddress' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAddress' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + delete: + operationId: company_address_destroy + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/contact/: + get: + operationId: company_contact_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: company + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: company__name, name.' + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContactList' + description: '' + post: + operationId: company_contact_create + description: API endpoint for list view of Company model. + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Contact' + multipart/form-data: + schema: + $ref: '#/components/schemas/Contact' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + delete: + operationId: company_contact_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/contact/{id}/: + get: + operationId: company_contact_retrieve + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + put: + operationId: company_contact_update + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Contact' + multipart/form-data: + schema: + $ref: '#/components/schemas/Contact' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + patch: + operationId: company_contact_partial_update + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedContact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedContact' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedContact' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + delete: + operationId: company_contact_destroy + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/part/: + get: + operationId: company_part_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: MPN + schema: + type: string + description: Manufacturer Part Number + - in: query + name: SKU + schema: + type: string + - in: query + name: active + schema: + type: boolean + description: Supplier Part is Active + - in: query + name: company + schema: + type: integer + description: Company + - in: query + name: has_stock + schema: + type: boolean + description: Has Stock + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: manufacturer + schema: + type: integer + description: Manufacturer + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - in: query + name: manufacturer_part + schema: + type: integer + - in: query + name: manufacturer_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked ManufacturerPart + in the response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - supplier + - -supplier + - manufacturer + - -manufacturer + - active + - -active + - primary + - -primary + - IPN + - -IPN + - MPN + - -MPN + - SKU + - -SKU + - packaging + - -packaging + - pack_quantity + - -pack_quantity + - in_stock + - -in_stock + - updated + - -updated + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Internal Part is Active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - in: query + name: primary + schema: + type: boolean + description: Primary Supplier Part + - name: search + required: false + in: query + description: 'A search term. Searched fields: SKU, description, manufacturer_part__MPN, + manufacturer_part__manufacturer__name, part__IPN, part__description, part__keywords, + part__name, supplier__name, tags__name, tags__slug.' + schema: + type: string + - in: query + name: supplier + schema: + type: integer + - in: query + name: supplier_active + schema: + type: boolean + description: Supplier is Active + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSupplierPartList' + description: '' + post: + operationId: company_part_create + description: |- + API endpoint for list view of SupplierPart object. + + - GET: Return list of SupplierPart objects + - POST: Create a new SupplierPart object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + delete: + operationId: company_part_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/part/{id}/: + get: + operationId: company_part_retrieve + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - in: query + name: manufacturer_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked ManufacturerPart + in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + put: + operationId: company_part_update + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + patch: + operationId: company_part_partial_update + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + delete: + operationId: company_part_destroy + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/company/part/manufacturer/: + get: + operationId: company_part_manufacturer_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: MPN + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: manufacturer + schema: + type: integer + - in: query + name: manufacturer_active + schema: + type: boolean + description: Manufacturer is Active + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - MPN + - -MPN + - manufacturer + - -manufacturer + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Part is Active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - name: search + required: false + in: query + description: 'A search term. Searched fields: MPN, description, manufacturer__name, + part__IPN, part__description, part__name, tags__name, tags__slug.' + schema: + type: string + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManufacturerPartList' + description: '' + post: + operationId: company_part_manufacturer_create + description: |- + API endpoint for list view of ManufacturerPart object. + + - GET: Return list of ManufacturerPart objects + - POST: Create a new ManufacturerPart object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManufacturerPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + delete: + operationId: company_part_manufacturer_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/part/manufacturer/{id}/: + get: + operationId: company_part_manufacturer_retrieve + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + put: + operationId: company_part_manufacturer_update + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManufacturerPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + patch: + operationId: company_part_manufacturer_partial_update + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + delete: + operationId: company_part_manufacturer_destroy + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/company/price-break/: + get: + operationId: company_price_break_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: base_part + schema: + type: integer + description: Base Part + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - supplier + - -supplier + - SKU + - -SKU + - price + - -price + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: quantity + schema: + type: number + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__SKU, part__supplier__name.' + schema: + type: string + - in: query + name: supplier + schema: + type: integer + description: Supplier + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSupplierPriceBreakList' + description: '' + post: + operationId: company_price_break_create + description: |- + API endpoint for list view of SupplierPriceBreak object. + + - GET: Retrieve list of SupplierPriceBreak objects + - POST: Create a new SupplierPriceBreak object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + /api/company/price-break/{id}/: + get: + operationId: company_price_break_retrieve + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + put: + operationId: company_price_break_update + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + patch: + operationId: company_price_break_partial_update + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + delete: + operationId: company_price_break_destroy + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/contenttype/: + get: + operationId: contenttype_list + description: List view for ContentTypes. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: app_label, model.' + schema: + type: string + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContentTypeList' + description: '' + /api/contenttype/{id}/: + get: + operationId: contenttype_retrieve + description: Detail view for a ContentType model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ContentType' + description: '' + /api/contenttype/model/{model}/: + get: + operationId: contenttype_retrieve_model + description: Detail view for a ContentType model. + parameters: + - in: path + name: model + schema: + type: string + required: true + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ContentType' + description: '' + /api/currency/exchange/: + get: + operationId: currency_exchange_retrieve + description: Return information on available currency conversions. + tags: + - currency + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CurrencyExchange' + description: '' + /api/currency/refresh/: + post: + operationId: currency_refresh_create + description: Performing a POST request will update currency exchange rates. + tags: + - currency + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + description: No response body + /api/data-output/: + get: + operationId: data_output_list + description: Mixin class for DataOutput endpoints. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - user + - -user + - plugin + - -plugin + - output_type + - -output_type + - created + - -created + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataOutputList' + description: '' + delete: + operationId: data_output_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/data-output/{id}/: + get: + operationId: data_output_retrieve + description: Mixin class for DataOutput endpoints. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this data output. + required: true + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataOutput' + description: '' + delete: + operationId: data_output_destroy + description: Mixin class for DataOutput endpoints. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this data output. + required: true + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/email/generate/: + post: + operationId: email_generate_create + description: Get the token for the current user or fail. + tags: + - email + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + multipart/form-data: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + description: '' + /api/error-report/: + get: + operationId: error_report_list + description: List view for server error messages. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - when + - -when + - info + - -info + - name: search + required: false + in: query + description: 'A search term. Searched fields: data, info.' + schema: + type: string + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedErrorMessageList' + description: '' + delete: + operationId: error_report_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/error-report/{id}/: + get: + operationId: error_report_retrieve + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + put: + operationId: error_report_update + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ErrorMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/ErrorMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + patch: + operationId: error_report_partial_update + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + delete: + operationId: error_report_destroy + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/flags/: + get: + operationId: flags_list + description: List view for feature flags. + tags: + - flags + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Flag' + description: '' + /api/flags/{key}/: + get: + operationId: flags_retrieve + description: Detail view for an individual feature flag. + parameters: + - in: path + name: key + schema: + type: string + required: true + tags: + - flags + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Flag' + description: '' + /api/generate/batch-code/: + post: + operationId: generate_batch_code_create + description: Generate a new batch code. + tags: + - generate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + description: '' + /api/generate/serial-number/: + post: + operationId: generate_serial_number_create + description: Generate a new serial number. + tags: + - generate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + description: '' + /api/generic/status/: + get: + operationId: generic_status_retrieve_all + description: Perform a GET request to learn information about status codes. + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: object + additionalProperties: {} + description: Mapping from class name to GenericStateClass data + /api/generic/status/{statusmodel}/: + get: + operationId: generic_status_retrieve + description: Retrieve information about a specific status code + parameters: + - in: path + name: statusmodel + schema: + type: string + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/generic/status/custom/: + get: + operationId: generic_status_custom_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - key + - -key + - in: query + name: reference_status + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, label, name, reference_status.' + schema: + type: string + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomStateList' + description: '' + post: + operationId: generic_status_custom_create + description: List view for all custom states. + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomState' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + /api/generic/status/custom/{id}/: + get: + operationId: generic_status_custom_retrieve + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + put: + operationId: generic_status_custom_update + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomState' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + patch: + operationId: generic_status_custom_partial_update + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomState' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + delete: + operationId: generic_status_custom_destroy + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/icons/: + get: + operationId: icons_list + description: List view for available icon packages. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - icons + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIconPackageList' + description: '' + /api/importer/column-mapping/: + get: + operationId: importer_column_mapping_list + description: API endpoint for accessing a list of DataImportColumnMap objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: session + schema: + type: integer + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportColumnMapList' + description: '' + /api/importer/column-mapping/{id}/: + get: + operationId: importer_column_mapping_retrieve + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + put: + operationId: importer_column_mapping_update + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + patch: + operationId: importer_column_mapping_partial_update + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + /api/importer/models/: + get: + operationId: importer_models_list + description: Return a list of models available for import. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DataImporterModel' + description: '' + /api/importer/row/: + get: + operationId: importer_row_list + description: API endpoint for accessing a list of DataImportRow objects. + parameters: + - in: query + name: complete + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - row_index + - -row_index + - valid + - -valid + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: session + schema: + type: integer + - in: query + name: valid + schema: + type: boolean + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportRowList' + description: '' + delete: + operationId: importer_row_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/importer/row/{id}/: + get: + operationId: importer_row_retrieve + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + put: + operationId: importer_row_update + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportRow' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + patch: + operationId: importer_row_partial_update + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + delete: + operationId: importer_row_destroy + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/importer/session/: + get: + operationId: importer_session_list + description: API endpoint for accessing a list of DataImportSession objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - timestamp + - -timestamp + - status + - -status + - model_type + - -model_type + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: status + schema: + type: integer + enum: + - 0 + - 10 + - 20 + - 30 + - 40 + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + - in: query + name: user + schema: + type: integer + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportSessionList' + description: '' + post: + operationId: importer_session_create + description: API endpoint for accessing a list of DataImportSession objects. + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportSession' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + delete: + operationId: importer_session_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/importer/session/{id}/: + get: + operationId: importer_session_retrieve + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + put: + operationId: importer_session_update + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportSession' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + patch: + operationId: importer_session_partial_update + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + delete: + operationId: importer_session_destroy + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '204': + description: No response body + /api/importer/session/{id}/accept_fields/: + post: + operationId: importer_session_accept_fields_create + description: Accept the field mapping for a DataImportSession. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + /api/importer/session/{id}/accept_rows/: + post: + operationId: importer_session_accept_rows_create + description: API endpoint to accept the rows for a DataImportSession. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + description: '' + /api/label/print/: + post: + operationId: label_print_create + description: POST action for printing labels. + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelPrint' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelPrint' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelPrint' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelPrint' + description: '' + /api/label/template/: + get: + operationId: label_template_list + description: API endpoint for viewing list of LabelTemplate objects. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: items + schema: + type: string + description: Items + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + enum: + - build + - buildline + - company + - part + - purchaseorder + - returnorder + - salesorder + - salesordershipment + - stockitem + - stocklocation + - transferorder + description: |- + Model Type + + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLabelTemplateList' + description: '' + post: + operationId: label_template_create + description: API endpoint for viewing list of LabelTemplate objects. + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + /api/label/template/{id}/: + get: + operationId: label_template_retrieve + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + put: + operationId: label_template_update + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + patch: + operationId: label_template_partial_update + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + delete: + operationId: label_template_destroy + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/license/: + get: + operationId: license_retrieve + description: Return information about the InvenTree server. + tags: + - license + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseView' + description: '' + /api/locate/: + post: + operationId: locate_create + description: Identify or 'locate' a stock item or location with a plugin. + tags: + - locate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LocatePlugin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LocatePlugin' + multipart/form-data: + schema: + $ref: '#/components/schemas/LocatePlugin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LocatePlugin' + description: '' + /api/machine/: + get: + operationId: machine_list + description: |- + API endpoint for list of Machine objects. + + - GET: Return a list of all Machine objects + - POST: create a MachineConfig + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: driver + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: machine_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - machine_type + - -machine_type + - driver + - -driver + - active + - -active + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMachineConfigList' + description: '' + post: + operationId: machine_create + description: |- + API endpoint for list of Machine objects. + + - GET: Return a list of all Machine objects + - POST: create a MachineConfig + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:admin + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + description: '' + /api/machine/{id}/: + get: + operationId: machine_retrieve + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + put: + operationId: machine_update + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineConfig' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineConfig' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + patch: + operationId: machine_partial_update + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + delete: + operationId: machine_destroy + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:admin + responses: + '204': + description: No response body + /api/machine/{id}/restart/: + post: + operationId: machine_restart_create + description: Restart machine by pk. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineRestart' + description: '' + /api/machine/{id}/settings/: + get: + operationId: machine_settings_list + description: Return all settings for a machine config. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineSetting' + description: '' + /api/machine/{id}/settings/{config_type}/{key}/: + get: + operationId: machine_settings_retrieve + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + put: + operationId: machine_settings_update + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + patch: + operationId: machine_settings_partial_update + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + /api/machine/drivers/: + get: + operationId: machine_drivers_list + description: List all machine drivers. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineDriver' + description: '' + /api/machine/status/: + get: + operationId: machine_status_retrieve + description: Provide status data for the machine registry. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineRegistryStatus' + description: '' + /api/machine/types/: + get: + operationId: machine_types_list + description: List of all machine types. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineType' + description: '' + /api/metadata/{model}/{lookup_field}/{lookup_value}/: + get: + operationId: metadata_retrieve + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + - r:view:part_category + - r:view:part + - r:view:stock_location + - r:view:stock + - r:view:bom + - r:view:build + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + - r:view:transfer_order + - r:view:repair_order + responses: + '200': + description: No response body + put: + operationId: metadata_update + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + description: No response body + patch: + operationId: metadata_partial_update + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + description: No response body + /api/metadata/{model}/{id}/: + get: + operationId: metadata_pk_retrieve + description: Perform a GET request to retrieve metadata for the given object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + - r:view:part_category + - r:view:part + - r:view:stock_location + - r:view:stock + - r:view:bom + - r:view:build + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + - r:view:transfer_order + - r:view:repair_order + responses: + '200': + description: No response body + put: + operationId: metadata_pk_update + description: Perform a PUT request to update metadata for the given object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + description: No response body + patch: + operationId: metadata_pk_partial_update + description: Perform a PATCH request to partially update metadata for the given + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + description: No response body + /api/news/: + get: + operationId: news_list + description: Newsfeed from the official inventree.org website. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - published + - -published + - author + - -author + - read + - -read + - in: query + name: read + schema: + type: boolean + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNewsFeedEntryList' + description: '' + delete: + operationId: news_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/news/{id}/: + get: + operationId: news_retrieve + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + put: + operationId: news_update + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + patch: + operationId: news_partial_update + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + delete: + operationId: news_destroy + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/notes-image-upload/: + get: + operationId: notes_image_upload_list + description: List view for all notes images. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: model_id, model_type, user.' + schema: + type: string + tags: + - notes-image-upload + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNotesImageList' + description: '' + post: + operationId: notes_image_upload_create + description: List view for all notes images. + tags: + - notes-image-upload + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotesImage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotesImage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotesImage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/NotesImage' + description: '' + /api/notifications/: + get: + operationId: notifications_list + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: query + name: category + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - category + - -category + - name + - -name + - read + - -read + - creation + - -creation + - in: query + name: read + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: message, name.' + schema: + type: string + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNotificationMessageList' + description: '' + delete: + operationId: notifications_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/notifications/{id}/: + get: + operationId: notifications_retrieve + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + put: + operationId: notifications_update + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotificationMessage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + patch: + operationId: notifications_partial_update + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + delete: + operationId: notifications_destroy + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/notifications/readall/: + post: + operationId: notifications_readall_create + description: Set all messages for the current user as read. + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotificationMessage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + /api/order/po/: + get: + operationId: order_po_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: external_build + schema: + type: integer + description: External Build Order + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - supplier__name + - -supplier__name + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - line_items + - -line_items + - status + - -status + - responsible + - -responsible + - total_price + - -total_price + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, project_code__code, + reference, supplier__name, supplier_reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: supplier + schema: + type: integer + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier in the response + - in: query + name: supplier_part + schema: + type: integer + description: Supplier Part + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderList' + description: '' + post: + operationId: order_po_create + description: |- + API endpoint for accessing a list of PurchaseOrder objects. + + - GET: Return list of PurchaseOrder objects (with filters) + - POST: Create a new PurchaseOrder object + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + /api/order/po-extra-line/: + get: + operationId: order_po_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderExtraLineList' + description: '' + post: + operationId: order_po_extra_line_create + description: API endpoint for accessing a list of PurchaseOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + /api/order/po-extra-line/{id}/: + get: + operationId: order_po_extra_line_retrieve + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + put: + operationId: order_po_extra_line_update + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + patch: + operationId: order_po_extra_line_partial_update + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + delete: + operationId: order_po_extra_line_destroy + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po-line/: + get: + operationId: order_po_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: base_part + schema: + type: integer + description: Internal Part + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - MPN + - -MPN + - part_name + - -part_name + - purchase_price + - -purchase_price + - quantity + - -quantity + - received + - -received + - reference + - -reference + - SKU + - -SKU + - IPN + - -IPN + - total_price + - -total_price + - target_date + - -target_date + - order + - -order + - status + - -status + - complete_date + - -complete_date + - line + - -line + - in: query + name: part + schema: + type: integer + description: Supplier Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: pending + schema: + type: boolean + description: Order Pending + - in: query + name: received + schema: + type: boolean + description: Items Received + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__SKU, part__manufacturer_part__MPN, + part__part__description, part__part__name, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderLineItemList' + description: '' + post: + operationId: order_po_line_create + description: |- + API endpoint for accessing a list of PurchaseOrderLineItem objects. + + - GET: Return a list of PurchaseOrder Line Item objects + - POST: Create a new PurchaseOrderLineItem object + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + delete: + operationId: order_po_line_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/order/po-line/{id}/: + get: + operationId: order_po_line_retrieve + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + put: + operationId: order_po_line_update + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + patch: + operationId: order_po_line_partial_update + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + delete: + operationId: order_po_line_destroy + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po/{id}/: + get: + operationId: order_po_retrieve + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + put: + operationId: order_po_update + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + patch: + operationId: order_po_partial_update + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + delete: + operationId: order_po_destroy + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po/{id}/cancel/: + post: + operationId: order_po_cancel_create + description: |- + API endpoint to 'cancel' a purchase order. + + The purchase order must be in a state which can be cancelled + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/complete/: + post: + operationId: order_po_complete_create + description: API endpoint to 'complete' a purchase order. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + description: '' + /api/order/po/{id}/hold/: + post: + operationId: order_po_hold_create + description: API endpoint to place a PurchaseOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/issue/: + post: + operationId: order_po_issue_create + description: API endpoint to 'issue' (place) a PurchaseOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/receive/: + post: + operationId: order_po_receive_create + description: |- + API endpoint to receive stock items against a PurchaseOrder. + + - The purchase order is specified in the URL. + - Items to receive are specified as a list called "items" with the following options: + - line_item: pk of the PO Line item + - supplier_part: pk value of the supplier part + - quantity: quantity to receive + - status: stock item status + - expiry_date: stock item expiry date (optional) + - location: destination for stock item (optional) + - batch_code: the batch code for this stock item + - serial_numbers: serial numbers for this stock item + - A global location must also be specified. This is used when no locations are specified for items, and no location is given in the PO line item + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/order/po/status/: + get: + operationId: order_po_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/repair/: + get: + operationId: order_repair_list + description: API endpoint for accessing a list of RepairOrder objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderList' + description: '' + post: + operationId: order_repair_create + description: API endpoint for accessing a list of RepairOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + /api/order/repair-allocation/: + get: + operationId: order_repair_allocation_list + description: API endpoint for accessing a list of RepairOrderAllocation objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderAllocationList' + description: '' + post: + operationId: order_repair_allocation_create + description: API endpoint for accessing a list of RepairOrderAllocation objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + /api/order/repair-allocation/{id}/: + get: + operationId: order_repair_allocation_retrieve + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + put: + operationId: order_repair_allocation_update + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + patch: + operationId: order_repair_allocation_partial_update + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + delete: + operationId: order_repair_allocation_destroy + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/repair-line/: + get: + operationId: order_repair_line_list + description: API endpoint for accessing a list of RepairOrderLineItem objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderLineItemList' + description: '' + post: + operationId: order_repair_line_create + description: API endpoint for accessing a list of RepairOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + /api/order/repair-line/{id}/: + get: + operationId: order_repair_line_retrieve + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + put: + operationId: order_repair_line_update + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + patch: + operationId: order_repair_line_partial_update + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + delete: + operationId: order_repair_line_destroy + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/repair/{id}/: + get: + operationId: order_repair_retrieve + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + put: + operationId: order_repair_update + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + patch: + operationId: order_repair_partial_update + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + delete: + operationId: order_repair_destroy + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/ro/: + get: + operationId: order_ro_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: customer + schema: + type: integer + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - customer__name + - -customer__name + - customer_reference + - -customer_reference + - line_items + - -line_items + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: customer__name, customer_reference, + description, project_code__code, reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderList' + description: '' + post: + operationId: order_ro_create + description: API endpoint for accessing a list of ReturnOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + /api/order/ro-extra-line/: + get: + operationId: order_ro_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderExtraLineList' + description: '' + post: + operationId: order_ro_extra_line_create + description: API endpoint for accessing a list of ReturnOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + /api/order/ro-extra-line/{id}/: + get: + operationId: order_ro_extra_line_retrieve + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + put: + operationId: order_ro_extra_line_update + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + patch: + operationId: order_ro_extra_line_partial_update + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + delete: + operationId: order_ro_extra_line_destroy + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro-line/: + get: + operationId: order_ro_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: true + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - stock + - -stock + - reference + - -reference + - target_date + - -target_date + - received_date + - -received_date + - line + - -line + - in: query + name: outcome + schema: + type: integer + description: outcome + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: received + schema: + type: boolean + description: received + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__part__description, item__part__name, + item__serial, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderLineItemList' + description: '' + post: + operationId: order_ro_line_create + description: API endpoint for accessing a list of ReturnOrderLineItemList objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + /api/order/ro-line/{id}/: + get: + operationId: order_ro_line_retrieve + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: item_detail + schema: + type: boolean + default: true + description: Include detailed information about the item in the response + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + put: + operationId: order_ro_line_update + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + patch: + operationId: order_ro_line_partial_update + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + delete: + operationId: order_ro_line_destroy + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro-line/status/: + get: + operationId: order_ro_line_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/ro/{id}/: + get: + operationId: order_ro_retrieve + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + put: + operationId: order_ro_update + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + patch: + operationId: order_ro_partial_update + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + delete: + operationId: order_ro_destroy + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro/{id}/cancel/: + post: + operationId: order_ro_cancel_create + description: API endpoint to cancel a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/complete/: + post: + operationId: order_ro_complete_create + description: API endpoint to complete a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/hold/: + post: + operationId: order_ro_hold_create + description: API endpoint to hold a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/issue/: + post: + operationId: order_ro_issue_create + description: API endpoint to issue (place) a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/receive/: + post: + operationId: order_ro_receive_create + description: API endpoint to receive items against a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + description: '' + /api/order/ro/status/: + get: + operationId: order_ro_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/so/: + get: + operationId: order_so_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: customer + schema: + type: integer + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - customer__name + - -customer__name + - customer_reference + - -customer_reference + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - line_items + - -line_items + - shipment_date + - -shipment_date + - total_price + - -total_price + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: customer__name, customer_reference, + description, project_code__code, reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderList' + description: '' + post: + operationId: order_so_create + description: |- + API endpoint for accessing a list of SalesOrder objects. + + - GET: Return list of SalesOrder objects (with filters) + - POST: Create a new SalesOrder + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + /api/order/so-allocation/: + get: + operationId: order_so_allocation_list + description: API endpoint for listing SalesOrderAllocation objects. + parameters: + - in: query + name: assigned_to_shipment + schema: + type: boolean + description: Has Shipment + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: line + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - part + - -part + - serial + - -serial + - IPN + - -IPN + - batch + - -batch + - location + - -location + - order + - -order + - shipment_date + - -shipment_date + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__batch, item__part__IPN, + item__part__name, item__serial.' + schema: + type: string + - in: query + name: shipment + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderAllocationList' + description: '' + put: + operationId: order_so_allocation_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + patch: + operationId: order_so_allocation_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + delete: + operationId: order_so_allocation_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/order/so-allocation/{id}/: + get: + operationId: order_so_allocation_retrieve + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + put: + operationId: order_so_allocation_update + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + patch: + operationId: order_so_allocation_partial_update + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + delete: + operationId: order_so_allocation_destroy + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so-extra-line/: + get: + operationId: order_so_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderExtraLineList' + description: '' + post: + operationId: order_so_extra_line_create + description: API endpoint for accessing a list of SalesOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + /api/order/so-extra-line/{id}/: + get: + operationId: order_so_extra_line_retrieve + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + put: + operationId: order_so_extra_line_update + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + patch: + operationId: order_so_extra_line_partial_update + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + delete: + operationId: order_so_extra_line_destroy + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so-line/: + get: + operationId: order_so_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: completed + schema: + type: boolean + description: Completed + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - customer + - -customer + - order + - -order + - part + - -part + - IPN + - -IPN + - part__name + - -part__name + - quantity + - -quantity + - allocated + - -allocated + - shipped + - -shipped + - reference + - -reference + - sale_price + - -sale_price + - target_date + - -target_date + - line + - -line + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__name, quantity, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderLineItemList' + description: '' + post: + operationId: order_so_line_create + description: API endpoint for accessing a list of SalesOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + /api/order/so-line/{id}/: + get: + operationId: order_so_line_retrieve + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + put: + operationId: order_so_line_update + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + patch: + operationId: order_so_line_partial_update + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + delete: + operationId: order_so_line_destroy + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/{id}/: + get: + operationId: order_so_retrieve + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + put: + operationId: order_so_update + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + patch: + operationId: order_so_partial_update + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + delete: + operationId: order_so_destroy + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/{id}/allocate/: + post: + operationId: order_so_allocate_create + description: |- + API endpoint to allocate stock items against a SalesOrder. + + - The SalesOrder is specified in the URL + - See the SalesOrderShipmentAllocationSerializer class + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + description: '' + /api/order/so/{id}/allocate-serials/: + post: + operationId: order_so_allocate_serials_create + description: API endpoint to allocation stock items against a SalesOrder, by + specifying serial numbers. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + description: '' + /api/order/so/{id}/auto-allocate/: + post: + operationId: order_so_auto_allocate_create + description: Validate parameters and offload auto-allocation to a background + task. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/order/so/{id}/cancel/: + post: + operationId: order_so_cancel_create + description: API endpoint to cancel a SalesOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/{id}/complete/: + post: + operationId: order_so_complete_create + description: API endpoint for manually marking a SalesOrder as "complete". + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + description: '' + /api/order/so/{id}/hold/: + post: + operationId: order_so_hold_create + description: API endpoint to place a SalesOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/{id}/issue/: + post: + operationId: order_so_issue_create + description: API endpoint to issue a SalesOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/shipment/: + get: + operationId: order_so_shipment_list + description: API list endpoint for SalesOrderShipment model. + parameters: + - in: query + name: checked + schema: + type: boolean + description: checked + - in: query + name: delivered + schema: + type: boolean + description: delivered + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: number + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - reference + - -reference + - delivery_date + - -delivery_date + - shipment_date + - -shipment_date + - allocated_items + - -allocated_items + - name: search + required: false + in: query + description: 'A search term. Searched fields: invoice_number, order__reference, + reference, tracking_number.' + schema: + type: string + - in: query + name: shipped + schema: + type: boolean + description: shipped + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderShipmentList' + description: '' + post: + operationId: order_so_shipment_create + description: API list endpoint for SalesOrderShipment model. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + /api/order/so/shipment/{id}/: + get: + operationId: order_so_shipment_retrieve + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + put: + operationId: order_so_shipment_update + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + patch: + operationId: order_so_shipment_partial_update + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + delete: + operationId: order_so_shipment_destroy + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/shipment/{id}/ship/: + post: + operationId: order_so_shipment_ship_create + description: Override the post method to handle shipment completion. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/order/so/status/: + get: + operationId: order_so_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/transfer-order/: + get: + operationId: order_transfer_order_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - line_items + - -line_items + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - project_code + - -project_code + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, project_code__code, + reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderList' + description: '' + post: + operationId: order_transfer_order_create + description: API endpoint for accessing a list of TransferOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:transfer_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + /api/order/transfer-order-allocation/: + get: + operationId: order_transfer_order_allocation_list + description: API endpoint for listing TransferOrderAllocation objects. + parameters: + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: line + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - part + - -part + - serial + - -serial + - IPN + - -IPN + - batch + - -batch + - location + - -location + - order + - -order + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__batch, item__part__IPN, + item__part__name, item__serial.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderAllocationList' + description: '' + put: + operationId: order_transfer_order_allocation_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + patch: + operationId: order_transfer_order_allocation_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + /api/order/transfer-order-allocation/{id}/: + get: + operationId: order_transfer_order_allocation_retrieve + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + put: + operationId: order_transfer_order_allocation_update + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + patch: + operationId: order_transfer_order_allocation_partial_update + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + delete: + operationId: order_transfer_order_allocation_destroy + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order-line/: + get: + operationId: order_transfer_order_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: completed + schema: + type: boolean + description: Completed + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - order + - -order + - part + - -part + - part__name + - -part__name + - quantity + - -quantity + - allocated + - -allocated + - transferred + - -transferred + - reference + - -reference + - target_date + - -target_date + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__name, quantity, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderLineItemList' + description: '' + post: + operationId: order_transfer_order_line_create + description: API endpoint for accessing a list of TransferOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:transfer_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + /api/order/transfer-order-line/{id}/: + get: + operationId: order_transfer_order_line_retrieve + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + put: + operationId: order_transfer_order_line_update + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + patch: + operationId: order_transfer_order_line_partial_update + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + delete: + operationId: order_transfer_order_line_destroy + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order/{id}/: + get: + operationId: order_transfer_order_retrieve + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + put: + operationId: order_transfer_order_update + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + patch: + operationId: order_transfer_order_partial_update + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + delete: + operationId: order_transfer_order_destroy + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order/{id}/allocate/: + post: + operationId: order_transfer_order_allocate_create + description: |- + API endpoint to allocate stock items against a TransferOrder. + + - The TransferOrder is specified in the URL + - See the TransferOrderAllocationSerializer class + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + description: '' + /api/order/transfer-order/{id}/allocate-serials/: + post: + operationId: order_transfer_order_allocate_serials_create + description: API endpoint to allocation stock items against a TransferOrder, + by specifying serial numbers. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + description: '' + /api/order/transfer-order/{id}/cancel/: + post: + operationId: order_transfer_order_cancel_create + description: API endpoint to cancel a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/transfer-order/{id}/complete/: + post: + operationId: order_transfer_order_complete_create + description: API endpoint to complete a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + description: '' + /api/order/transfer-order/{id}/hold/: + post: + operationId: order_transfer_order_hold_create + description: API endpoint to hold a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/transfer-order/{id}/issue/: + post: + operationId: order_transfer_order_issue_create + description: API endpoint to issue a Transfer Order. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/parameter/: + get: + operationId: parameter_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: enabled + schema: + type: boolean + description: Template Enabled + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_id + schema: + type: integer + - in: query + name: model_type + schema: + type: string + description: Model Type + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - data + - -data + - units + - -units + - template + - -template + - updated + - -updated + - updated_by + - -updated_by + - name: search + required: false + in: query + description: 'A search term. Searched fields: data, template__description, + template__name, template__units.' + schema: + type: string + - in: query + name: template + schema: + type: integer + - in: query + name: updated_by + schema: + type: integer + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedParameterList' + description: '' + post: + operationId: parameter_create + description: List API endpoint for Parameter objects. + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Parameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/Parameter' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + delete: + operationId: parameter_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/parameter/{id}/: + get: + operationId: parameter_retrieve + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + put: + operationId: parameter_update + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Parameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/Parameter' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + patch: + operationId: parameter_partial_update + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedParameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedParameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedParameter' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + delete: + operationId: parameter_destroy + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/parameter/template/: + get: + operationId: parameter_template_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: checkbox + schema: + type: boolean + - in: query + name: enabled + schema: + type: boolean + - in: query + name: exists_for_model + schema: + type: string + description: Exists For Model + - in: query + name: exists_for_model_id + schema: + type: number + description: Exists For Model ID + - in: query + name: exists_for_related_model + schema: + type: string + description: Exists For Related Model + - in: query + name: exists_for_related_model_id + schema: + type: number + description: Exists For Model ID + - in: query + name: for_model + schema: + type: string + description: For Model + - in: query + name: has_choices + schema: + type: boolean + description: Has Choice + - in: query + name: has_units + schema: + type: boolean + description: Has Units + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + description: Model Type + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - units + - -units + - checkbox + - -checkbox + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + - in: query + name: units + schema: + type: string + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedParameterTemplateList' + description: '' + post: + operationId: parameter_template_create + description: List view for ParameterTemplate objects. + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + /api/parameter/template/{id}/: + get: + operationId: parameter_template_retrieve + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + put: + operationId: parameter_template_update + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + patch: + operationId: parameter_template_partial_update + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + delete: + operationId: parameter_template_destroy + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/part/: + get: + operationId: part_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: IPN + schema: + type: string + description: Filter by exact IPN (internal part number) + - in: query + name: IPN_regex + schema: + type: string + description: Filter by regex on IPN (internal part number) + - in: query + name: active + schema: + type: boolean + - in: query + name: ancestor + schema: + type: integer + - in: query + name: assembly + schema: + type: boolean + - in: query + name: bom_valid + schema: + type: boolean + description: BOM Valid + - in: query + name: cascade + schema: + type: boolean + description: If true, include items in child categories of the given category + - in: query + name: category + schema: + type: integer + description: Filter by numeric category ID or the literal 'null' + - in: query + name: category_detail + schema: + type: boolean + default: false + - in: query + name: component + schema: + type: boolean + - in: query + name: convert_from + schema: + type: integer + - in: query + name: created_after + schema: + type: string + format: date + description: Updated after + - in: query + name: created_before + schema: + type: string + format: date + description: Updated before + - in: query + name: default_location + schema: + type: integer + description: Default Location + - in: query + name: depleted_stock + schema: + type: boolean + description: Depleted Stock + - in: query + name: exclude_id + schema: + type: array + items: + type: integer + description: Exclude parts with these IDs (comma-separated) + explode: false + style: form + - in: query + name: exclude_related + schema: + type: number + description: Exclude parts related to this part ID + - in: query + name: exclude_tree + schema: + type: integer + - in: query + name: has_ipn + schema: + type: boolean + description: Has IPN + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: has_revisions + schema: + type: boolean + description: Has Revisions + - in: query + name: has_stock + schema: + type: boolean + description: Has stock + - in: query + name: has_units + schema: + type: boolean + description: Has units + - in: query + name: high_stock + schema: + type: boolean + description: High stock + - in: query + name: in_bom_for + schema: + type: integer + - in: query + name: is_revision + schema: + type: boolean + description: Is Revision + - in: query + name: is_template + schema: + type: boolean + - in: query + name: is_variant + schema: + type: boolean + description: Is Variant + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: locked + schema: + type: boolean + - in: query + name: low_stock + schema: + type: boolean + description: Low stock + - in: query + name: name_regex + schema: + type: string + description: Filter by name (regex) + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - id + - -id + - name + - -name + - creation_date + - -creation_date + - IPN + - -IPN + - in_stock + - -in_stock + - total_in_stock + - -total_in_stock + - unallocated_stock + - -unallocated_stock + - category + - -category + - default_location + - -default_location + - units + - -units + - pricing_min + - -pricing_min + - pricing_max + - -pricing_max + - pricing_updated + - -pricing_updated + - revision + - -revision + - revision_count + - -revision_count + - in: query + name: parameters + schema: + type: boolean + default: false + description: Include part parameters in response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: price_breaks + schema: + type: boolean + default: false + - in: query + name: purchaseable + schema: + type: boolean + - in: query + name: related + schema: + type: number + description: Show parts related to this part ID + - in: query + name: revision_of + schema: + type: integer + - in: query + name: salable + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: IPN, category__name, description, + keywords, manufacturer_parts__MPN, name, revision, supplier_parts__SKU, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: starred + schema: + type: boolean + description: Starred + - in: query + name: stock_to_build + schema: + type: boolean + description: Required for Build Order + - in: query + name: tags + schema: + type: boolean + default: false + - in: query + name: tags_name + schema: + type: string + - in: query + name: tags_slug + schema: + type: string + - in: query + name: testable + schema: + type: boolean + - in: query + name: trackable + schema: + type: boolean + - in: query + name: unallocated_stock + schema: + type: boolean + description: Unallocated stock + - in: query + name: variant_of + schema: + type: integer + description: Variant Of + - in: query + name: virtual + schema: + type: boolean + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartList' + description: '' + post: + operationId: part_create + description: API endpoint for accessing a list of Part objects, or creating + a new Part instance. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + put: + operationId: part_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + patch: + operationId: part_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + /api/part/{id}/: + get: + operationId: part_retrieve + description: API endpoint for detail view of a single Part object. + parameters: + - in: query + name: category_detail + schema: + type: boolean + default: false + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: parameters + schema: + type: boolean + default: false + description: Include part parameters in response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: price_breaks + schema: + type: boolean + default: false + - in: query + name: tags + schema: + type: boolean + default: false + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + put: + operationId: part_update + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + patch: + operationId: part_partial_update + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + delete: + operationId: part_destroy + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:part + responses: + '204': + description: No response body + /api/part/{id}/bom-copy/: + post: + operationId: part_bom_copy_create + description: API endpoint for duplicating a BOM. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartCopyBOM' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartCopyBOM' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartCopyBOM' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartCopyBOM' + description: '' + /api/part/{id}/bom-validate/: + get: + operationId: part_bom_validate_retrieve + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + put: + operationId: part_bom_validate_update + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartBomValidate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartBomValidate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + patch: + operationId: part_bom_validate_partial_update + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + /api/part/{id}/pricing/: + get: + operationId: part_pricing_retrieve + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + put: + operationId: part_pricing_update + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartPricing' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartPricing' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + patch: + operationId: part_pricing_partial_update + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + /api/part/{id}/requirements/: + get: + operationId: part_requirements_retrieve + description: |- + API endpoint detailing 'requirements' information for a particular part. + + This endpoint returns information on upcoming requirements for: + + - Sales Orders + - Build Orders + - Total requirements + - How many of this part can be assembled with available stock + + As this data is somewhat complex to calculate, is it not included in the default API + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRequirements' + description: '' + /api/part/{id}/serial-numbers/: + get: + operationId: part_serial_numbers_retrieve + description: API endpoint for returning extra serial number information about + a particular part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSerialNumber' + description: '' + /api/part/category/: + get: + operationId: part_category_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: cascade + schema: + type: boolean + description: Include sub-categories in filtered results + - in: query + name: depth + schema: + type: number + description: Filter by category depth + - in: query + name: exclude_tree + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - pathstring + - -pathstring + - level + - -level + - tree_id + - -tree_id + - lft + - -lft + - part_count + - -part_count + - in: query + name: parent + schema: + type: integer + description: Filter by parent category + - in: query + name: path_detail + schema: + type: boolean + default: false + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, pathstring.' + schema: + type: string + - in: query + name: starred + schema: + type: boolean + description: Filter by starred categories + - in: query + name: structural + schema: + type: boolean + - in: query + name: top_level + schema: + type: boolean + description: Filter by top-level categories + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryList' + description: '' + post: + operationId: part_category_create + description: |- + API endpoint for accessing a list of PartCategory objects. + + - GET: Return a list of PartCategory objects + - POST: Create a new PartCategory object + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:part_category + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + put: + operationId: part_category_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + patch: + operationId: part_category_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategory' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategory' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategory' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + /api/part/category/{id}/: + get: + operationId: part_category_retrieve + description: Custom get method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: path_detail + schema: + type: boolean + default: false + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + put: + operationId: part_category_update + description: Custom put method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + patch: + operationId: part_category_partial_update + description: Custom patch method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategory' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategory' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategory' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + delete: + operationId: part_category_destroy + description: Custom delete method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:part_category + responses: + '204': + description: No response body + /api/part/category/parameters/: + get: + operationId: part_category_parameters_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryParameterTemplateList' + description: '' + post: + operationId: part_category_parameters_create + description: |- + API endpoint for accessing a list of PartCategoryParameterTemplate objects. + + - GET: Return a list of PartCategoryParameterTemplate objects + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part_category + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + /api/part/category/parameters/{id}/: + get: + operationId: part_category_parameters_retrieve + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + put: + operationId: part_category_parameters_update + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + patch: + operationId: part_category_parameters_partial_update + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + delete: + operationId: part_category_parameters_destroy + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part_category + responses: + '204': + description: No response body + /api/part/category/tree/: + get: + operationId: part_category_tree_list + description: API endpoint for accessing a list of PartCategory objects ready + for rendering a tree. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - level + - -level + - name + - -name + - subcategories + - -subcategories + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryTreeList' + description: '' + /api/part/internal-price/: + get: + operationId: part_internal_price_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - price + - -price + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartInternalPriceList' + description: '' + post: + operationId: part_internal_price_create + description: API endpoint for list view of PartInternalPriceBreak model. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartInternalPrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + /api/part/internal-price/{id}/: + get: + operationId: part_internal_price_retrieve + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + put: + operationId: part_internal_price_update + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartInternalPrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + patch: + operationId: part_internal_price_partial_update + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + delete: + operationId: part_internal_price_destroy + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/related/: + get: + operationId: part_related_list + description: API endpoint for accessing a list of PartRelated objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_1 + schema: + type: integer + - in: query + name: part_2 + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: part_1__name, part_2__name.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartRelationList' + description: '' + post: + operationId: part_related_create + description: API endpoint for accessing a list of PartRelated objects. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartRelation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + /api/part/related/{id}/: + get: + operationId: part_related_retrieve + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + put: + operationId: part_related_update + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartRelation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + patch: + operationId: part_related_partial_update + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + delete: + operationId: part_related_destroy + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/sale-price/: + get: + operationId: part_sale_price_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - price + - -price + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartSalePriceList' + description: '' + post: + operationId: part_sale_price_create + description: API endpoint for list view of PartSalePriceBreak model. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartSalePrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + /api/part/sale-price/{id}/: + get: + operationId: part_sale_price_retrieve + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + put: + operationId: part_sale_price_update + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartSalePrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + patch: + operationId: part_sale_price_partial_update + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + delete: + operationId: part_sale_price_destroy + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/stocktake/: + get: + operationId: part_stocktake_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - item_count + - -item_count + - quantity + - -quantity + - date + - -date + - user + - -user + - pk + - -pk + - in: query + name: part + schema: + type: integer + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartStocktakeList' + description: '' + post: + operationId: part_stocktake_create + description: API endpoint for listing part stocktake information. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktake' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + delete: + operationId: part_stocktake_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/part/stocktake/{id}/: + get: + operationId: part_stocktake_retrieve + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + put: + operationId: part_stocktake_update + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktake' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + patch: + operationId: part_stocktake_partial_update + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + delete: + operationId: part_stocktake_destroy + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/stocktake/generate/: + post: + operationId: part_stocktake_generate_create + description: Perform stocktake generation on POST request. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + description: '' + /api/part/test-template/: + get: + operationId: part_test_template_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: has_results + schema: + type: boolean + description: Has Results + - in: query + name: key + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - enabled + - -enabled + - required + - -required + - requires_value + - -requires_value + - requires_attachment + - -requires_attachment + - results + - -results + - test_name + - -test_name + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: required + schema: + type: boolean + - in: query + name: requires_attachment + schema: + type: boolean + - in: query + name: requires_value + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, test_name.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartTestTemplateList' + description: '' + post: + operationId: part_test_template_create + description: API endpoint for listing (and creating) a PartTestTemplate. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartTestTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + /api/part/test-template/{id}/: + get: + operationId: part_test_template_retrieve + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + put: + operationId: part_test_template_update + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartTestTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + patch: + operationId: part_test_template_partial_update + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + delete: + operationId: part_test_template_destroy + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/thumbs/: + get: + operationId: part_thumbs_list + description: API endpoint for retrieving information on available Part thumbnails. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: IPN, category__name, description, + keywords, name, revision.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartThumbList' + description: '' + /api/part/thumbs/{id}/: + get: + operationId: part_thumbs_retrieve + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + put: + operationId: part_thumbs_update + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + patch: + operationId: part_thumbs_partial_update + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + /api/plugins/: + get: + operationId: plugins_list + description: |- + API endpoint for list of PluginConfig objects. + + - GET: Return a list of all PluginConfig objects + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: builtin + schema: + type: boolean + description: Builtin + - in: query + name: installed + schema: + type: boolean + description: Installed + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: mandatory + schema: + type: boolean + description: Mandatory + - in: query + name: mixin + schema: + type: string + description: Mixin + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - key + - -key + - name + - -name + - active + - -active + - in: query + name: sample + schema: + type: boolean + description: Sample + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, name.' + schema: + type: string + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPluginConfigList' + description: '' + /api/plugins/{plugin}/: + get: + operationId: plugins_retrieve + description: |- + API detail endpoint for PluginConfig object. + + get: + Return a single PluginConfig object + + post: + Update a PluginConfig + + delete: + Remove a PluginConfig + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfig' + description: '' + delete: + operationId: plugins_destroy + description: |- + Handle DELETE request for a PluginConfig instance. + + We only allow plugin deletion if the plugin is not active. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + /api/plugins/{plugin}/activate/: + put: + operationId: plugins_activate_update + description: |- + Endpoint for activating a plugin. + + - PATCH: Activate a plugin + + Pass a boolean value for the 'active' field. + If not provided, it is assumed to be True, + and the plugin will be activated. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginActivate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginActivate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + description: '' + patch: + operationId: plugins_activate_partial_update + description: |- + Endpoint for activating a plugin. + + - PATCH: Activate a plugin + + Pass a boolean value for the 'active' field. + If not provided, it is assumed to be True, + and the plugin will be activated. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + description: '' + /api/plugins/{plugin}/admin/: + get: + operationId: plugins_admin_retrieve + description: |- + Endpoint for viewing admin integration plugin details. + + This endpoint is used to view the available admin integration options for a plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginAdminDetail' + description: '' + /api/plugins/{plugin}/settings/: + get: + operationId: plugins_settings_list + description: Get all settings for a plugin config. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginSetting' + description: '' + /api/plugins/{plugin}/settings/{key}/: + get: + operationId: plugins_settings_retrieve + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + put: + operationId: plugins_settings_update + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + patch: + operationId: plugins_settings_partial_update + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + /api/plugins/{plugin}/uninstall/: + put: + operationId: plugins_uninstall_update + description: Endpoint for uninstalling a single plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginUninstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginUninstall' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + description: '' + patch: + operationId: plugins_uninstall_partial_update + description: Endpoint for uninstalling a single plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + description: '' + /api/plugins/{plugin}/user-settings/: + get: + operationId: plugins_user_settings_list + description: Get all user settings for a plugin config. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + /api/plugins/{plugin}/user-settings/{key}/: + get: + operationId: plugins_user_settings_retrieve + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + put: + operationId: plugins_user_settings_update + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginUserSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginUserSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + patch: + operationId: plugins_user_settings_partial_update + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + /api/plugins/install/: + post: + operationId: plugins_install_create + description: Endpoint for installing a new plugin. + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + description: '' + /api/plugins/reload/: + post: + operationId: plugins_reload_create + description: Endpoint for reloading all plugins. + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginReload' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginReload' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginReload' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginReload' + description: '' + /api/plugins/settings/: + get: + operationId: plugins_settings_list_all + description: |- + List endpoint for all plugin related settings. + + - read only + - only accessible by staff users + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: plugin__active + schema: + type: boolean + - in: query + name: plugin__key + schema: + type: string + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPluginSettingList' + description: '' + /api/plugins/status/: + get: + operationId: plugins_status_retrieve + description: Show plugin registry status information. + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginRegistryStatus' + description: '' + /api/plugins/ui/features/{feature}/: + get: + operationId: plugins_ui_features_list + description: Show available plugin ui features. + parameters: + - in: path + name: feature + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginUIFeature' + description: '' + /api/project-code/: + get: + operationId: project_code_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - code + - -code + - name: search + required: false + in: query + description: 'A search term. Searched fields: code, description.' + schema: + type: string + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedProjectCodeList' + description: '' + post: + operationId: project_code_create + description: List view for all project codes. + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/ProjectCode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + /api/project-code/{id}/: + get: + operationId: project_code_retrieve + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + put: + operationId: project_code_update + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/ProjectCode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + patch: + operationId: project_code_partial_update + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + delete: + operationId: project_code_destroy + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/asset/: + get: + operationId: report_asset_list + description: API endpoint for listing ReportAsset objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportAssetList' + description: '' + post: + operationId: report_asset_create + description: API endpoint for listing ReportAsset objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportAsset' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + /api/report/asset/{id}/: + get: + operationId: report_asset_retrieve + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + put: + operationId: report_asset_update + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportAsset' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + patch: + operationId: report_asset_partial_update + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + delete: + operationId: report_asset_destroy + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/print/: + post: + operationId: report_print_create + description: POST action for printing a report. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportPrint' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportPrint' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportPrint' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportPrint' + description: '' + /api/report/snippet/: + get: + operationId: report_snippet_list + description: API endpoint for listing ReportSnippet objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSnippetList' + description: '' + post: + operationId: report_snippet_create + description: API endpoint for listing ReportSnippet objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportSnippet' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + /api/report/snippet/{id}/: + get: + operationId: report_snippet_retrieve + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + put: + operationId: report_snippet_update + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportSnippet' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + patch: + operationId: report_snippet_partial_update + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + delete: + operationId: report_snippet_destroy + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/template/: + get: + operationId: report_template_list + description: API endpoint for viewing list of ReportTemplate objects. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: items + schema: + type: string + description: Items + - in: query + name: landscape + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + enum: + - build + - buildline + - company + - part + - purchaseorder + - returnorder + - salesorder + - salesordershipment + - stockitem + - stocklocation + - transferorder + description: |- + Model Type + + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportTemplateList' + description: '' + post: + operationId: report_template_create + description: API endpoint for viewing list of ReportTemplate objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + /api/report/template/{id}/: + get: + operationId: report_template_retrieve + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + put: + operationId: report_template_update + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + patch: + operationId: report_template_partial_update + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + delete: + operationId: report_template_destroy + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/search/: + post: + operationId: search_create + description: Perform search query against available models. + tags: + - search + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APISearchView' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APISearchView' + multipart/form-data: + schema: + $ref: '#/components/schemas/APISearchView' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APISearchView' + description: '' + /api/selection/: + get: + operationId: selection_list + description: List view for SelectionList objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSelectionListList' + description: '' + post: + operationId: selection_create + description: List view for SelectionList objects. + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionList' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + /api/selection/{id}/: + get: + operationId: selection_retrieve + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + put: + operationId: selection_update + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionList' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + patch: + operationId: selection_partial_update + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + delete: + operationId: selection_destroy + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/selection/{id}/entry/: + get: + operationId: selection_entry_list + description: List view for SelectionEntry objects. + parameters: + - in: query + name: active + schema: + type: boolean + - in: path + name: id + schema: + type: integer + required: true + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: list + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - list + - -list + - label + - -label + - active + - -active + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, label.' + schema: + type: string + - in: query + name: value + schema: + type: string + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSelectionEntryList' + description: '' + post: + operationId: selection_entry_create + description: List view for SelectionEntry objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + /api/selection/{id}/entry/{entrypk}/: + get: + operationId: selection_entry_retrieve + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + put: + operationId: selection_entry_update + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + patch: + operationId: selection_entry_partial_update + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + delete: + operationId: selection_entry_destroy + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/settings/global/: + get: + operationId: settings_global_list + description: API endpoint for accessing a list of global settings objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - key + - -key + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: key.' + schema: + type: string + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGlobalSettingsList' + description: '' + /api/settings/global/{key}/: + get: + operationId: settings_global_retrieve + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + put: + operationId: settings_global_update + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalSettings' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + patch: + operationId: settings_global_partial_update + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + /api/settings/user/: + get: + operationId: settings_user_list + description: API endpoint for accessing a list of user settings objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - key + - -key + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: key.' + schema: + type: string + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserSettingsList' + description: '' + /api/settings/user/{key}/: + get: + operationId: settings_user_retrieve + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + put: + operationId: settings_user_update + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserSettings' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + patch: + operationId: settings_user_partial_update + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + /api/stock/: + get: + operationId: stock_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: IPN + schema: + type: string + description: Part IPN (case insensitive) + - in: query + name: IPN_contains + schema: + type: string + description: Part IPN contains (case insensitive) + - in: query + name: IPN_regex + schema: + type: string + description: Part IPN (regex) + - in: query + name: active + schema: + type: boolean + description: Active + - in: query + name: allocated + schema: + type: boolean + description: Is Allocated + - in: query + name: ancestor + schema: + type: integer + - in: query + name: assembly + schema: + type: boolean + description: Assembly + - in: query + name: available + schema: + type: boolean + description: Available + - in: query + name: batch + schema: + type: string + description: Batch code filter (case insensitive) + - in: query + name: batch_regex + schema: + type: string + description: Batch code filter (regex) + - in: query + name: belongs_to + schema: + type: integer + - in: query + name: bom_item + schema: + type: integer + - in: query + name: build + schema: + type: integer + - in: query + name: cascade + schema: + type: boolean + description: If true, include items in child locations of the given location + - in: query + name: category + schema: + type: integer + - in: query + name: company + schema: + type: integer + - in: query + name: consumed + schema: + type: boolean + description: Consumed by Build Order + - in: query + name: consumed_by + schema: + type: integer + - in: query + name: created_after + schema: + type: string + format: date + description: Created after + - in: query + name: created_before + schema: + type: string + format: date + description: Created before + - in: query + name: customer + schema: + type: integer + - in: query + name: depleted + schema: + type: boolean + description: Depleted + - in: query + name: exclude_tree + schema: + type: number + description: Provide a StockItem PK to exclude that item and all its descendants + - in: query + name: expired + schema: + type: boolean + description: Expired + - in: query + name: expiry_after + schema: + type: string + format: date + description: Expiry date after + - in: query + name: expiry_before + schema: + type: string + format: date + description: Expiry date before + - in: query + name: external + schema: + type: boolean + description: External Location + - in: query + name: has_batch + schema: + type: boolean + description: Has batch code + - in: query + name: has_child_items + schema: + type: boolean + description: Has child items + - in: query + name: has_installed_items + schema: + type: boolean + description: Has installed items + - in: query + name: has_purchase_price + schema: + type: boolean + description: Has purchase price + - in: query + name: has_stocktake + schema: + type: boolean + description: Has Stocktake Date + - in: query + name: in_stock + schema: + type: boolean + description: In Stock + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: installed + schema: + type: boolean + description: Installed in other stock item + - in: query + name: is_building + schema: + type: boolean + description: In production + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Filter by numeric Location ID or the literal 'null' + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: manufacturer + schema: + type: integer + - in: query + name: manufacturer_part + schema: + type: integer + description: Manufacturer Part + - in: query + name: max_stock + schema: + type: number + description: Maximum stock + - in: query + name: min_stock + schema: + type: number + description: Minimum stock + - in: query + name: name + schema: + type: string + description: Part name (case insensitive) + - in: query + name: name_contains + schema: + type: string + description: Part name contains (case insensitive) + - in: query + name: name_regex + schema: + type: string + description: Part name (regex) + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - batch + - -batch + - location + - -location + - part + - -part + - part__name + - -part__name + - part__IPN + - -part__IPN + - updated + - -updated + - purchase_price + - -purchase_price + - creation_date + - -creation_date + - stocktake_date + - -stocktake_date + - expiry_date + - -expiry_date + - packaging + - -packaging + - quantity + - -quantity + - stock + - -stock + - status + - -status + - IPN + - -IPN + - SKU + - -SKU + - MPN + - -MPN + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: part_tree + schema: + type: integer + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: purchase_order + schema: + type: integer + - in: query + name: salable + schema: + type: boolean + description: Salable + - in: query + name: sales_order + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: batch, location__name, part__IPN, + part__description, part__name, serial, supplier_part__SKU, supplier_part__manufacturer_part__MPN, + supplier_part__manufacturer_part__manufacturer__name, supplier_part__supplier__name, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: sent_to_customer + schema: + type: boolean + description: Sent to customer + - in: query + name: serial + schema: + type: string + description: Serial number + - in: query + name: serial_gte + schema: + type: integer + description: Serial number GTE + - in: query + name: serial_lte + schema: + type: integer + description: Serial number LTE + - in: query + name: serialized + schema: + type: boolean + description: Has serial number + - in: query + name: stale + schema: + type: boolean + description: Stale + - in: query + name: status + schema: + type: integer + description: Status Code + - in: query + name: stocktake_after + schema: + type: string + format: date + description: Stocktake After + - in: query + name: stocktake_before + schema: + type: string + format: date + description: Stocktake Before + - in: query + name: supplier + schema: + type: integer + description: Supplier + - in: query + name: supplier_part + schema: + type: integer + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + - in: query + name: tests + schema: + type: boolean + default: false + - in: query + name: tracked + schema: + type: boolean + description: Tracked + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated after + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated before + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockItemList' + description: '' + post: + operationId: stock_create + description: |- + API endpoint for list view of Stock objects. + + - GET: Return a list of all StockItem objects (with optional query filters) + - POST: Create a new StockItem + - DELETE: Delete multiple StockItem objects + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:stock + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + put: + operationId: stock_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + patch: + operationId: stock_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + delete: + operationId: stock_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/stock/{id}/: + get: + operationId: stock_retrieve + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + - in: query + name: tests + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + put: + operationId: stock_update + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + patch: + operationId: stock_partial_update + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + delete: + operationId: stock_destroy + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock + responses: + '204': + description: No response body + /api/stock/{id}/convert/: + post: + operationId: stock_convert_create + description: API endpoint for converting a stock item to a variant part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConvertStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConvertStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConvertStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ConvertStockItem' + description: '' + /api/stock/{id}/install/: + post: + operationId: stock_install_create + description: |- + API endpoint for installing a particular stock item into this stock item. + + - stock_item.part must be in the BOM for this part + - stock_item must currently be "in stock" + - stock_item must be serialized (and not belong to another item) + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstallStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InstallStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/InstallStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/InstallStockItem' + description: '' + /api/stock/{id}/serial-numbers/: + get: + operationId: stock_serial_numbers_retrieve + description: |- + View extra serial number information for a given stock item. + + Provides information on the "previous" and "next" stock items, + based on the serial number of the given stock item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemSerialNumbers' + description: '' + /api/stock/{id}/serialize/: + post: + operationId: stock_serialize_create + description: API endpoint for serializing a stock item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SerializeStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SerializeStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SerializeStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/stock/{id}/uninstall/: + post: + operationId: stock_uninstall_create + description: API endpoint for removing (uninstalling) items from this item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UninstallStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UninstallStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/UninstallStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UninstallStockItem' + description: '' + /api/stock/add/: + post: + operationId: stock_add_create + description: Endpoint for adding a quantity of stock to an existing StockItem. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockAdd' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockAdd' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockAdd' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockAdd' + description: '' + /api/stock/assign/: + post: + operationId: stock_assign_create + description: API endpoint for assigning stock to a particular customer. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockAssignment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockAssignment' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockAssignment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockAssignment' + description: '' + /api/stock/change_status/: + post: + operationId: stock_change_status_create + description: API endpoint to change the status code of multiple StockItem objects. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockChangeStatus' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockChangeStatus' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockChangeStatus' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockChangeStatus' + description: '' + /api/stock/count/: + post: + operationId: stock_count_create + description: Endpoint for counting stock (performing a stocktake). + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockCount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockCount' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockCount' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockCount' + description: '' + /api/stock/location/: + get: + operationId: stock_location_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: cascade + schema: + type: boolean + description: Include sub-locations in filtered results + - in: query + name: depth + schema: + type: number + description: Filter by location depth + - in: query + name: external + schema: + type: boolean + - in: query + name: has_location_type + schema: + type: boolean + description: has_location_type + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location_type + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - pathstring + - -pathstring + - items + - -items + - level + - -level + - tree_id + - -tree_id + - lft + - -lft + - in: query + name: parent + schema: + type: integer + description: Filter by parent location + - in: query + name: path_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, pathstring, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: structural + schema: + type: boolean + - in: query + name: top_level + schema: + type: boolean + description: Filter by top-level locations + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLocationList' + description: '' + post: + operationId: stock_location_create + description: |- + API endpoint for list view of StockLocation objects. + + - GET: Return list of StockLocation objects + - POST: Create a new StockLocation + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:stock_location + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + put: + operationId: stock_location_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + patch: + operationId: stock_location_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + /api/stock/location-type/: + get: + operationId: stock_location_type_list + description: |- + API endpoint for a list of StockLocationType objects. + + - GET: Return a list of all StockLocationType objects + - POST: Create a StockLocationType + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - location_count + - -location_count + - icon + - -icon + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockLocationTypeList' + description: '' + post: + operationId: stock_location_type_create + description: |- + API endpoint for a list of StockLocationType objects. + + - GET: Return a list of all StockLocationType objects + - POST: Create a StockLocationType + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockLocationType' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:stock_location + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + /api/stock/location-type/{id}/: + get: + operationId: stock_location_type_retrieve + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + put: + operationId: stock_location_type_update + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockLocationType' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + patch: + operationId: stock_location_type_partial_update + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + delete: + operationId: stock_location_type_destroy + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock_location + responses: + '204': + description: No response body + /api/stock/location/{id}/: + get: + operationId: stock_location_retrieve + description: Custom get method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: path_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + put: + operationId: stock_location_update + description: Custom put method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + patch: + operationId: stock_location_partial_update + description: Custom patch method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + delete: + operationId: stock_location_destroy + description: Custom delete method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock_location + responses: + '204': + description: No response body + /api/stock/location/tree/: + get: + operationId: stock_location_tree_list + description: API endpoint for accessing a list of StockLocation objects, ready + for rendering as a tree. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - level + - -level + - name + - -name + - sublocations + - -sublocations + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLocationTreeList' + description: '' + /api/stock/merge/: + post: + operationId: stock_merge_create + description: API endpoint for merging multiple stock items. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockMerge' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockMerge' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockMerge' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockMerge' + description: '' + /api/stock/remove/: + post: + operationId: stock_remove_create + description: Endpoint for removing a quantity of stock from an existing StockItem. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockRemove' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockRemove' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockRemove' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockRemove' + description: '' + /api/stock/return/: + post: + operationId: stock_return_create + description: |- + API endpoint for returning items into stock. + + This API endpoint is for items that are initially considered "not in stock", + and the user wants to return them to stock, marking them as + "available" for further consumption or sale. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockReturn' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockReturn' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockReturn' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockReturn' + description: '' + /api/stock/status/: + get: + operationId: stock_status_retrieve + description: Retrieve information about a specific status code + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/stock/test/: + get: + operationId: stock_test_list + description: API endpoint for listing (and creating) a StockItemTestResult object. + parameters: + - in: query + name: build + schema: + type: integer + description: Build + - in: query + name: enabled + schema: + type: boolean + description: Enabled + - in: query + name: include_installed + schema: + type: boolean + description: If true, include test results for items installed underneath + the given stock item + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - date + - -date + - result + - -result + - started_datetime + - -started_datetime + - finished_datetime + - -finished_datetime + - test_station + - -test_station + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: required + schema: + type: boolean + description: Required + - in: query + name: result + schema: + type: boolean + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: stock_item + schema: + type: integer + description: Filter by numeric Stock Item ID + - in: query + name: template + schema: + type: integer + - in: query + name: template_detail + schema: + type: boolean + default: false + - in: query + name: test + schema: + type: string + description: Test name (case insensitive) + - in: query + name: user + schema: + type: integer + - in: query + name: user_detail + schema: + type: boolean + default: false + - in: query + name: value + schema: + type: string + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockItemTestResultList' + description: '' + post: + operationId: stock_test_create + description: API endpoint for listing (and creating) a StockItemTestResult object. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItemTestResult' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:stock + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + delete: + operationId: stock_test_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/stock/test/{id}/: + get: + operationId: stock_test_retrieve + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: template_detail + schema: + type: boolean + default: false + - in: query + name: user_detail + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + put: + operationId: stock_test_update + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItemTestResult' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + patch: + operationId: stock_test_partial_update + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + delete: + operationId: stock_test_destroy + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock + responses: + '204': + description: No response body + /api/stock/track/: + get: + operationId: stock_track_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: include_variants + schema: + type: boolean + description: Include Part Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Date before + - in: query + name: min_date + schema: + type: string + format: date + description: Date after + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - date + - -date + - in: query + name: part + schema: + type: integer + description: Part + - name: search + required: false + in: query + description: 'A search term. Searched fields: notes.' + schema: + type: string + - in: query + name: user + schema: + type: integer + - in: query + name: user_detail + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockTrackingList' + description: '' + /api/stock/track/{id}/: + get: + operationId: stock_track_retrieve + description: Detail API endpoint for StockItemTracking model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockTracking' + description: '' + /api/stock/track/status/: + get: + operationId: stock_track_status_retrieve + description: Retrieve information about a specific status code + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/stock/transfer/: + post: + operationId: stock_transfer_create + description: API endpoint for performing stock movements. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockTransfer' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockTransfer' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockTransfer' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockTransfer' + description: '' + /api/supplier/import/: + post: + operationId: supplier_import_create + description: Import a part by supplier. + tags: + - supplier + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ImportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ImportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ImportRequest' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + description: '' + /api/supplier/list/: + get: + operationId: supplier_list_list + description: List all available supplier plugins. + tags: + - supplier + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SupplierList' + description: '' + /api/supplier/search/: + get: + operationId: supplier_search_list + description: Search parts by supplier. + parameters: + - in: query + name: plugin + schema: + type: string + description: Plugin slug + required: true + - in: query + name: supplier + schema: + type: string + description: Supplier slug + required: true + - in: query + name: term + schema: + type: string + description: Search term + required: true + tags: + - supplier + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SearchResult' + description: '' + /api/system-internal/observability/end: + post: + operationId: system_internal_observability_end_create + description: Endpoint for observability tools. + tags: + - system-internal + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + multipart/form-data: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + description: '' + /api/system/health/: + get: + operationId: system_health_retrieve + description: |- + Simple health check endpoint for monitoring purposes. + + Use the root API endpoint for more detailed information (using an authenticated request). + tags: + - system + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/HealthCheckStatus' + description: InvenTree server health status + /api/units/: + get: + operationId: units_list + description: List view for custom units. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomUnitList' + description: '' + post: + operationId: units_create + description: List view for custom units. + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUnit' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + /api/units/{id}/: + get: + operationId: units_retrieve + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + put: + operationId: units_update + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUnit' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + patch: + operationId: units_partial_update + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + delete: + operationId: units_destroy + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/units/all/: + get: + operationId: units_all_retrieve + description: Return a list of all available units. + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllUnitListResponse' + description: '' + /api/user/: + get: + operationId: user_list + description: |- + List endpoint for detail on all users. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: query + name: is_active + schema: + type: boolean + - in: query + name: is_staff + schema: + type: boolean + - in: query + name: is_superuser + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - email + - -email + - username + - -username + - first_name + - -first_name + - last_name + - -last_name + - is_staff + - -is_staff + - is_superuser + - -is_superuser + - is_active + - -is_active + - name: search + required: false + in: query + description: 'A search term. Searched fields: first_name, last_name, username.' + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserCreateList' + description: '' + post: + operationId: user_create + description: |- + List endpoint for detail on all users. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreate' + description: '' + /api/user/{id}/: + get: + operationId: user_retrieve + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + put: + operationId: user_update + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ExtendedUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/ExtendedUser' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + patch: + operationId: user_partial_update + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + delete: + operationId: user_destroy + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/{id}/set-password/: + put: + operationId: user_set_password_update + description: Allows superusers to set the password for a user. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserSetPassword' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserSetPassword' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + description: '' + patch: + operationId: user_set_password_partial_update + description: Allows superusers to set the password for a user. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + description: '' + /api/user/group/: + get: + operationId: user_group_list + description: List endpoint for all auth groups. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - in: query + name: permission_detail + schema: + type: boolean + default: false + description: Include permission details + - in: query + name: role_detail + schema: + type: boolean + default: true + description: Include role details + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + - in: query + name: user_detail + schema: + type: boolean + default: false + description: Include user details + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGroupList' + description: '' + post: + operationId: user_group_create + description: List endpoint for all auth groups. + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Group' + multipart/form-data: + schema: + $ref: '#/components/schemas/Group' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + /api/user/group/{id}/: + get: + operationId: user_group_retrieve + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: permission_detail + schema: + type: boolean + default: false + description: Include permission details + - in: query + name: role_detail + schema: + type: boolean + default: true + description: Include role details + - in: query + name: user_detail + schema: + type: boolean + default: false + description: Include user details + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + put: + operationId: user_group_update + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Group' + multipart/form-data: + schema: + $ref: '#/components/schemas/Group' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + patch: + operationId: user_group_partial_update + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGroup' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGroup' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGroup' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + delete: + operationId: user_group_destroy + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/me/: + get: + operationId: user_me_retrieve + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + put: + operationId: user_me_update + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MeUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/MeUser' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + patch: + operationId: user_me_partial_update + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMeUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMeUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMeUser' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + delete: + operationId: user_me_destroy + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/user/me/profile/: + get: + operationId: user_me_profile_retrieve + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + put: + operationId: user_me_profile_update + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserProfile' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserProfile' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + patch: + operationId: user_me_profile_partial_update + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + /api/user/me/roles/: + get: + operationId: user_me_roles_retrieve + description: API endpoint which lists the available role permissions for the + current user. + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Role' + description: '' + /api/user/me/token/: + get: + operationId: user_me_token_retrieve + description: |- + Return an API token if the user is authenticated. + + - If the user already has a matching token, delete it and create a new one + - Existing tokens are *never* exposed again via the API + - Once the token is provided, it can be used for auth until it expires + parameters: + - in: query + name: name + schema: + type: string + description: Name of the token + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetAuthToken' + description: '' + /api/user/owner/: + get: + operationId: user_owner_list + description: |- + List API endpoint for Owner model. + + Cannot create a new Owner object via the API, but can view existing instances. + parameters: + - in: query + name: is_active + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOwnerList' + description: '' + /api/user/owner/{id}/: + get: + operationId: user_owner_retrieve + description: |- + Detail API endpoint for Owner model. + + Cannot edit or delete + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Owner' + description: '' + /api/user/ruleset/: + get: + operationId: user_ruleset_list + description: List endpoint for all RuleSet instances. + parameters: + - in: query + name: group + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + enum: + - admin + - bom + - build + - part + - part_category + - purchase_order + - repair_order + - return_order + - sales_order + - stock + - stock_location + - transfer_order + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRuleSetList' + description: '' + /api/user/ruleset/{id}/: + get: + operationId: user_ruleset_retrieve + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + put: + operationId: user_ruleset_update + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RuleSet' + multipart/form-data: + schema: + $ref: '#/components/schemas/RuleSet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + patch: + operationId: user_ruleset_partial_update + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + delete: + operationId: user_ruleset_destroy + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/tokens/: + get: + operationId: user_tokens_list + description: List of user tokens for current user. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - created + - -created + - expiry + - -expiry + - last_seen + - -last_seen + - user + - -user + - name + - -name + - revoked + - -revoked + - revoked + - -revoked + - in: query + name: revoked + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, name.' + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedApiTokenList' + description: '' + post: + operationId: user_tokens_create + description: List of user tokens for current user. + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApiToken' + multipart/form-data: + schema: + $ref: '#/components/schemas/ApiToken' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + description: '' + /api/user/tokens/{id}/: + get: + operationId: user_tokens_retrieve + description: Details for a user token. + parameters: + - in: query + name: all_users + schema: + type: boolean + description: Display tokens for all users (superuser only) + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + description: '' + delete: + operationId: user_tokens_destroy + description: Details for a user token. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/version/: + get: + operationId: version_retrieve + description: Return information about the InvenTree server. + tags: + - version + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/VersionView' + description: '' + /api/version-text: + get: + operationId: version_text_list + description: Simple JSON endpoint for InvenTree version text. + parameters: + - in: query + name: start_version + schema: + type: integer + description: First version to report. Defaults to return the latest {versions} + versions. + - in: query + name: versions + schema: + type: integer + default: 10 + description: Number of versions to return. + tags: + - version-text + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VersionInformation' + description: '' + /api/webhook/{endpoint}/: + post: + operationId: webhook_create + description: Process incoming webhook. + parameters: + - in: path + name: endpoint + schema: + type: string + required: true + tags: + - webhook + responses: + '200': + description: Any data can be posted to the endpoint - everything will be + passed to the WebhookEndpoint model. +components: + schemas: + APISearchView: + type: object + description: Serializer for the APISearchView. + properties: + search: + type: string + search_regex: + type: boolean + default: false + search_whole: + type: boolean + default: false + search_notes: + type: boolean + default: false + limit: + type: integer + default: 1 + offset: + type: integer + default: 0 + required: + - search + AcceptOverallocatedEnum: + enum: + - reject + - accept + - trim + type: string + description: |- + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + ActionPlugin: + type: object + description: Serializer for the ActionPluginView responses. + properties: + action: + type: string + data: + type: object + additionalProperties: {} + required: + - action + - data + ActionPluginError: + type: object + description: Serializer for the ActionPluginView error responses. + properties: + error: + type: string + action: + type: string + required: + - error + Address: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + description: Select company + title: + type: string + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: + type: boolean + title: Primary address + description: Set as primary address + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + link: + type: string + format: uri + description: Link to address information (external) + maxLength: 2000 + required: + - company + - pk + - title + AddressBrief: + type: object + description: Serializer for Address Model (limited). + properties: + pk: + type: integer + readOnly: true + title: ID + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + required: + - pk + AllUnitListResponse: + type: object + description: Serializer for the AllUnitList. + properties: + default_system: + type: string + available_systems: + type: array + items: + type: string + available_units: + type: object + additionalProperties: + $ref: '#/components/schemas/Unit' + required: + - available_systems + - available_units + - default_system + ApiToken: + type: object + description: Serializer for the ApiToken model. + properties: + created: + type: string + format: date-time + readOnly: true + expiry: + type: string + format: date + title: Expiry Date + description: Token expiry date + id: + type: integer + readOnly: true + last_seen: + type: string + format: date + nullable: true + description: Last time the token was used + name: + type: string + title: Token Name + description: Custom token name + maxLength: 100 + token: + type: string + description: |- + Provide a redacted version of the token. + + The *raw* key value should never be displayed anywhere! + readOnly: true + active: + type: boolean + description: Test if this token is active. + readOnly: true + revoked: + type: boolean + description: Token has been revoked + user: + type: integer + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + in_use: + type: boolean + description: Return True if the token is currently used to call the endpoint. + readOnly: true + required: + - active + - created + - id + - in_use + - token + - user_detail + Attachment: + type: object + description: Serializer class for the Attachment model. + properties: + pk: + type: integer + readOnly: true + title: ID + attachment: + type: string + format: uri + nullable: true + thumbnail: + type: string + format: uri + readOnly: true + nullable: true + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: + type: boolean + readOnly: true + description: True if this attachment is a valid image file + upload_date: + type: string + format: date + readOnly: true + upload_user: + type: integer + readOnly: true + nullable: true + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + required: + - file_size + - is_image + - model_id + - model_type + - pk + - upload_date + - user_detail + AttachmentModelTypeEnum: + enum: + - build + - company + - manufacturerpart + - supplierpart + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + type: string + description: |- + * `build` - Build Order + * `company` - Company + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + Barcode: + type: object + description: Generic serializer for receiving barcode data. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + required: + - barcode + BarcodeAssign: + type: object + description: Serializer class for linking a barcode to an internal model. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + required: + - barcode + BarcodeGenerate: + type: object + description: Serializer for generating a barcode. + properties: + model: + type: string + description: Model name to generate barcode for + pk: + type: integer + description: Primary key of model object to generate barcode for + required: + - model + - pk + BarcodePOAllocate: + type: object + description: |- + Serializer for allocating items against a purchase order. + + The scanned barcode could be a Part, ManufacturerPart or SupplierPart object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + purchase_order: + type: integer + description: Purchase Order to allocate items against + required: + - barcode + - purchase_order + BarcodePOReceive: + type: object + description: |- + Serializer for receiving items against a purchase order. + + The following additional fields may be specified: + + - purchase_order: PurchaseOrder object to receive items against + - location: Location to receive items into + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + supplier: + type: integer + nullable: true + description: Supplier to receive items from + purchase_order: + type: integer + nullable: true + description: PurchaseOrder to receive items against + location: + type: integer + nullable: true + description: Location to receive items into + line_item: + type: integer + nullable: true + description: Purchase order line item to receive items against + auto_allocate: + type: boolean + default: true + description: Automatically allocate stock items to the purchase order + required: + - barcode + BarcodeSOAllocate: + type: object + description: |- + Serializr for allocating stock items to a sales order. + + The scanned barcode must map to a StockItem object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + sales_order: + type: integer + description: Sales Order to allocate items against + line: + type: integer + nullable: true + description: Sales order line item to allocate items against + shipment: + type: integer + nullable: true + description: Sales order shipment to allocate items against + quantity: + type: integer + description: Quantity to allocate + required: + - barcode + - sales_order + BarcodeScanResult: + type: object + description: Serializer for barcode scan results. + properties: + pk: + type: integer + readOnly: true + title: ID + data: + type: string + readOnly: true + description: Barcode data + timestamp: + type: string + format: date-time + readOnly: true + description: Date and time of the barcode scan + endpoint: + type: string + readOnly: true + nullable: true + title: Path + description: URL endpoint which processed the barcode + context: + readOnly: true + nullable: true + description: Context data for the barcode scan + response: + readOnly: true + nullable: true + description: Response data from the barcode scan + result: + type: boolean + readOnly: true + description: Was the barcode scan successful? + user: + type: integer + readOnly: true + nullable: true + description: User who scanned the barcode + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + required: + - data + - pk + - result + - timestamp + - user_detail + BarcodeUnassign: + type: object + description: Serializer class for unlinking a barcode from an internal model. + properties: + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + BlankEnum: + enum: + - '' + BomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: + type: boolean + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID + validated: + type: boolean + description: This BOM item has been validated + available_stock: + type: number + format: double + readOnly: true + nullable: true + available_substitute_stock: + type: number + format: double + readOnly: true + nullable: true + available_variant_stock: + type: number + format: double + readOnly: true + nullable: true + external_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + title: In Production + can_build: + type: number + format: double + readOnly: true + nullable: true + required: + - part + - pk + - sub_part + BomItemSubstitute: + type: object + description: Serializer for the BomItemSubstitute class. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_item: + type: integer + description: Parent BOM item + part: + type: integer + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + required: + - bom_item + - part + - part_detail + - pk + BomItemValidation: + type: object + description: Simple serializer for passing a single boolean field. + properties: + valid: + type: boolean + default: false + BriefUserProfile: + type: object + description: Brief serializer for the UserProfile model. + properties: + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + Build: + type: object + description: Serializes a Build object. + properties: + pk: + type: integer + readOnly: true + title: ID + title: + type: string + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: + type: string + readOnly: true + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: + type: string + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: + type: string + format: date + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: + type: string + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer + nullable: true + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + default: false + reference: + type: string + sales_order: + type: integer + nullable: true + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: + type: string + format: date + nullable: true + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + target_date: + type: string + format: date + nullable: true + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: + type: integer + readOnly: true + nullable: true + description: User who issued this build order + issued_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + responsible: + type: integer + nullable: true + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + priority: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level + required: + - barcode_hash + - completed + - creation_date + - issued_by_detail + - level + - overdue + - part + - part_detail + - part_name + - pk + - quantity + - reference + - status + BuildAllocation: + type: object + description: Serializer for allocating stock items against a build order. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildAllocationItem' + required: + - items + BuildAllocationItem: + type: object + description: A serializer for allocating a single stock item against a build + order. + properties: + build_line: + type: integer + title: Build Line Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + output: + type: integer + nullable: true + title: Build Output + required: + - build_line + - quantity + - stock_item + BuildAutoAllocation: + type: object + description: DRF serializer for auto allocating stock items against a build + order. + properties: + location: + type: integer + nullable: true + title: Source Location + description: Stock location where parts are to be sourced (leave blank to + take from any location) + exclude_location: + type: integer + nullable: true + description: Exclude stock items from this selected location + interchangeable: + type: boolean + default: false + title: Interchangeable Stock + description: Stock items in multiple locations can be used interchangeably + substitutes: + type: boolean + default: true + title: Substitute Stock + description: Allow allocation of substitute parts + optional_items: + type: boolean + default: false + description: Allocate optional BOM items to build order + item_type: + allOf: + - $ref: '#/components/schemas/ItemTypeEnum' + default: untracked + description: |- + Select item type to auto-allocate + + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + build_lines: + type: array + items: + type: integer + title: Build Lines + description: Limit allocation to these build lines (leave blank to allocate + all lines) + BuildCancel: + type: object + description: Cancel an active BuildOrder. + properties: + remove_allocated_stock: + type: boolean + default: false + title: Consume Allocated Stock + description: Consume any stock which has already been allocated to this + build + remove_incomplete_outputs: + type: boolean + default: false + description: Delete any build outputs which have not been completed + BuildComplete: + type: object + description: DRF serializer for marking a BuildOrder as complete. + properties: + accept_overallocated: + allOf: + - $ref: '#/components/schemas/AcceptOverallocatedEnum' + default: reject + title: Overallocated Stock + description: |- + How do you want to handle extra stock items assigned to the build order + + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + accept_unallocated: + type: boolean + default: false + description: Accept that stock items have not been fully allocated to this + build order + accept_incomplete: + type: boolean + default: false + description: Accept that the required number of build outputs have not been + completed + BuildConsume: + type: object + description: |- + Serializer for consuming allocations against a BuildOrder. + + - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. + - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildConsumeAllocation' + lines: + type: array + items: + $ref: '#/components/schemas/BuildConsumeLineItem' + notes: + type: string + description: Optional notes for the stock consumption + BuildConsumeAllocation: + type: object + description: Serializer for an individual BuildItem to be consumed against a + BuildOrder. + properties: + build_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - build_item + - quantity + BuildConsumeLineItem: + type: object + description: Serializer for an individual BuildLine to be consumed against a + BuildOrder. + properties: + build_line: + type: integer + required: + - build_line + BuildItem: + type: object + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + build_line: + type: integer + nullable: true + install_into: + type: integer + nullable: true + description: Destination stock item + stock_item: + type: integer + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: + type: integer + readOnly: true + bom_reference: + type: string + readOnly: true + required: + - bom_reference + - build + - location + - pk + - quantity + - stock_item + BuildLine: + type: object + description: Serializer for a BuildItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + description: Build object + bom_item: + type: integer + readOnly: true + quantity: + type: number + format: double + consumed: + type: number + format: double + part: + type: integer + readOnly: true + build_reference: + type: string + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: + type: number + format: double + readOnly: true + in_production: + type: number + format: double + readOnly: true + scheduled_to_build: + type: number + format: double + readOnly: true + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: + type: number + format: double + readOnly: true + required: + - allocated + - allow_variants + - available_stock + - available_substitute_stock + - available_variant_stock + - bom_item + - build + - build_reference + - consumable + - consumed + - external_stock + - in_production + - inherited + - on_order + - optional + - part + - pk + - quantity + - reference + - scheduled_to_build + - testable + - trackable + BuildOutput: + type: object + description: |- + Serializer for a "BuildOutput". + + Note that a "BuildOutput" is really just a StockItem which is "in production"! + properties: + output: + type: integer + title: Build Output + required: + - output + BuildOutputComplete: + type: object + description: DRF serializer for completing one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: + type: integer + description: Location for completed build outputs + status_custom_key: + type: integer + description: Stock item status code + default: 10 + title: Status + accept_incomplete_allocation: + type: boolean + default: false + description: Complete outputs if stock has not been fully allocated + notes: + type: string + required: + - location + - outputs + BuildOutputCreate: + type: object + description: |- + Serializer for creating a new BuildOutput against a BuildOrder. + + URL pattern is "/api/build//create-output/", where is the PK of a Build. + + The Build object is provided to the serializer context. + properties: + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output + batch_code: + type: string + description: Batch code for this build output + serial_numbers: + type: string + description: Enter serial numbers for build outputs + location: + type: integer + nullable: true + description: Stock location for build output + auto_allocate: + type: boolean + nullable: true + default: false + title: Auto Allocate Serial Numbers + description: Automatically allocate required items with matching serial + numbers + required: + - quantity + BuildOutputDelete: + type: object + description: DRF serializer for deleting (cancelling) one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutput' + required: + - outputs + BuildOutputQuantity: + type: object + description: Build output with quantity field. + properties: + output: + type: integer + title: Build Output + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output + required: + - output + BuildOutputScrap: + type: object + description: Scrapping one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: + type: integer + description: Stock location for scrapped outputs + discard_allocations: + type: boolean + default: false + description: Discard any stock allocations for scrapped outputs + notes: + type: string + description: Reason for scrapping build output(s) + required: + - location + - notes + - outputs + BuildStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + BuildUnallocation: + type: object + description: |- + DRF serializer for unallocating stock from a BuildOrder. + + Allocated stock can be unallocated with a number of filters: + + - output: Filter against a particular build output (blank = untracked stock) + - bom_item: Filter against a particular BOM line item + properties: + build_line: + type: integer + nullable: true + output: + type: integer + nullable: true + title: Build output + BulkRequest: + type: object + description: Parameters for selecting items for bulk operations. + properties: + items: + type: array + items: + type: integer + title: A list of primary key values + filters: + type: object + additionalProperties: {} + title: A dictionary of filter values + Category: + type: object + description: Serializer for PartCategory. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + default_location: + type: integer + nullable: true + description: Default location for parts in this category + default_keywords: + type: string + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: + type: integer + readOnly: true + parent: + type: integer + nullable: true + title: Parent Category + description: Parent part category + part_count: + type: integer + readOnly: true + nullable: true + title: Parts + subcategories: + type: integer + readOnly: true + nullable: true + pathstring: + type: string + readOnly: true + title: Path + description: Path + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. + readOnly: true + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string + nullable: true + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer + readOnly: true + nullable: true + required: + - level + - name + - pathstring + - pk + - starred + CategoryParameterTemplate: + type: object + description: Serializer for the PartCategoryParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + category: + type: integer + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + template: + type: integer + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + default_value: + type: string + description: Default Parameter Value + maxLength: 500 + required: + - category + - pk + - template + - template_detail + CategoryTree: + type: object + description: Serializer for PartCategory tree. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + parent: + type: integer + nullable: true + icon: + type: string + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + subcategories: + type: integer + readOnly: true + required: + - name + - pk + - subcategories + ColorEnum: + enum: + - primary + - secondary + - success + - danger + - warning + - info + - dark + type: string + description: |- + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + Company: + type: object + description: Serializer for Company object (full detail). + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + website: + type: string + format: uri + description: Company website URL + maxLength: 2000 + phone: + type: string + title: Phone number + description: Contact phone number + maxLength: 50 + email: + type: string + format: email + nullable: true + default: '' + currency: + type: string + description: Default currency used for this supplier + contact: + type: string + description: Point of contact + maxLength: 100 + link: + type: string + format: uri + description: Link to external company information + maxLength: 2000 + image: + type: string + format: uri + nullable: true + active: + type: boolean + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + parts_supplied: + type: integer + readOnly: true + parts_manufactured: + type: integer + readOnly: true + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + required: + - currency + - name + - parts_manufactured + - parts_supplied + - pk + CompanyBrief: + type: object + description: Serializer for Company object (limited detail). + properties: + pk: + type: integer + readOnly: true + title: ID + active: + type: boolean + description: Is this company active? + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + image: + type: string + format: uri + readOnly: true + thumbnail: + type: string + readOnly: true + currency: + type: string + readOnly: true + description: Default currency used for this company + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + required: + - currency + - image + - name + - pk + - thumbnail + Config: + type: object + description: |- + Serializer for the InvenTree configuration. + + This is a read-only serializer. + properties: + key: + type: string + readOnly: true + env_var: + type: string + readOnly: true + nullable: true + config_key: + type: string + readOnly: true + nullable: true + source: + type: string + readOnly: true + accessed: + type: string + format: date-time + readOnly: true + required: + - accessed + - key + - source + ConfigTypeEnum: + enum: + - M + - D + type: string + description: |- + * `M` - Machine + * `D` - Driver + Contact: + type: object + description: Serializer class for the Contact model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + company_name: + type: string + readOnly: true + name: + type: string + maxLength: 100 + phone: + type: string + maxLength: 100 + email: + type: string + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + required: + - company + - company_name + - name + - pk + ContentType: + type: object + description: Serializer for ContentType models. + properties: + pk: + type: integer + readOnly: true + app_label: + type: string + readOnly: true + model: + type: string + readOnly: true + app_labeled_name: + type: string + readOnly: true + is_plugin: + type: boolean + description: Return True if the model is a plugin model. + readOnly: true + required: + - app_label + - app_labeled_name + - is_plugin + - model + - pk + ConvertStockItem: + type: object + description: DRF serializer class for converting a StockItem to a valid variant + part. + properties: + part: + type: integer + description: Select part to convert stock item into + required: + - part + CurrencyExchange: + type: object + description: |- + Serializer for a Currency Exchange request. + + It's only purpose is describing the results correctly in the API schema right now. + properties: + base_currency: + type: string + readOnly: true + exchange_rates: + type: object + additionalProperties: + type: number + format: double + updated: + type: string + format: date-time + readOnly: true + required: + - base_currency + - exchange_rates + - updated + CustomState: + type: object + description: Serializer for the custom state model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: + type: string + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: + type: integer + nullable: true + description: Model this state is associated with + model_name: + type: string + readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' + required: + - key + - label + - logical_key + - model_name + - name + - pk + - reference_status + CustomUnit: + type: object + description: DRF serializer for CustomUnit model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Unit name + maxLength: 50 + symbol: + type: string + description: Optional unit symbol + maxLength: 10 + definition: + type: string + description: Unit definition + maxLength: 50 + required: + - definition + - name + - pk + Customize: + type: object + description: Serializer for customize field. + properties: + logo: + type: string + splash: + type: string + login_message: + type: string + nullable: true + navbar_message: + type: string + nullable: true + disable_theme_storage: + type: boolean + default: false + required: + - login_message + - logo + - navbar_message + - splash + DataImportAcceptRow: + type: object + description: Serializer for accepting rows of data. + properties: + rows: + type: array + items: + type: integer + title: Rows + description: List of row IDs to accept + required: + - rows + DataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + column: + type: string + maxLength: 100 + field: + type: string + readOnly: true + label: + type: string + readOnly: true + description: + type: string + readOnly: true + required: + - description + - field + - label + - pk + - session + DataImportRow: + type: object + description: Serializer for the DataImportRow model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + row_index: + type: integer + readOnly: true + row_data: + readOnly: true + nullable: true + title: Original row data + data: + nullable: true + errors: + readOnly: true + nullable: true + valid: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + required: + - complete + - pk + - row_index + - session + - valid + DataImportSession: + type: object + description: Serializer for the DataImportSession model. + properties: + pk: + type: integer + readOnly: true + title: ID + timestamp: + type: string + format: date-time + readOnly: true + data_file: + type: string + format: uri + update_records: + type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' + readOnly: true + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + columns: + readOnly: true + nullable: true + column_mappings: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: + type: integer + readOnly: true + completed_row_count: + type: integer + readOnly: true + required: + - available_fields + - column_mappings + - completed_row_count + - data_file + - model_type + - pk + - row_count + - status + - timestamp + - user_detail + DataImportSessionModelTypeEnum: + enum: + - projectcode + - inventreecustomuserstatemodel + - customunit + - parametertemplate + - parameter + - partcategory + - parttesttemplate + - partsellpricebreak + - part + - bomitem + - partcategoryparametertemplate + - address + - company + - contact + - manufacturerpart + - supplierpart + - supplierpricebreak + - stockitemtestresult + - stockitem + - stocklocation + - stockitemtracking + - purchaseorder + - purchaseorderlineitem + - purchaseorderextraline + - salesorder + - salesorderlineitem + - salesordershipment + - salesorderextraline + - returnorder + - returnorderlineitem + - returnorderextraline + - transferorder + - transferorderlineitem + type: string + description: |- + * `projectcode` - Project Code + * `inventreecustomuserstatemodel` - Custom State + * `customunit` - Custom Unit + * `parametertemplate` - Parameter Template + * `parameter` - Parameter + * `partcategory` - Part Category + * `parttesttemplate` - Part Test Template + * `partsellpricebreak` - Part Sale Price Break + * `part` - Part + * `bomitem` - BOM Item + * `partcategoryparametertemplate` - Part Category Parameter Template + * `address` - Address + * `company` - Company + * `contact` - Contact + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `supplierpricebreak` - Supplier Price Break + * `stockitemtestresult` - Stock Item Test Result + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + * `stockitemtracking` - Stock Item Tracking + * `purchaseorder` - Purchase Order + * `purchaseorderlineitem` - Purchase Order Line Item + * `purchaseorderextraline` - Purchase Order Extra Line + * `salesorder` - Sales Order + * `salesorderlineitem` - Sales Order Line Item + * `salesordershipment` - Sales Order Shipment + * `salesorderextraline` - Sales Order Extra Line + * `returnorder` - Return Order + * `returnorderlineitem` - Return Order Line Item + * `returnorderextraline` - Return Order Extra Line + * `transferorder` - Transfer Order + * `transferorderlineitem` - Transfer Order Line Item + DataImportSessionStatusEnum: + enum: + - 0 + - 10 + - 20 + - 30 + - 40 + type: integer + description: |- + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + DataImporterModel: + type: object + description: Model references to map info that might get imported. + properties: + serializer: + type: string + readOnly: true + model_type: + type: string + readOnly: true + api_url: + type: string + format: uri + readOnly: true + nullable: true + required: + - model_type + - serializer + DataOutput: + type: object + description: Serializer for the DataOutput model. + properties: + pk: + type: integer + readOnly: true + title: ID + created: + type: string + format: date + readOnly: true + user: + type: integer + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + total: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + progress: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + complete: + type: boolean + output_type: + type: string + nullable: true + maxLength: 100 + template_name: + type: string + nullable: true + maxLength: 100 + plugin: + type: string + nullable: true + maxLength: 100 + output: + type: string + format: uri + readOnly: true + nullable: true + errors: + nullable: true + required: + - created + - pk + - user_detail + DefaultLocation: + type: object + description: |- + Brief serializer for a StockLocation object. + + Defined here, rather than stock.serializers, to negotiate circular imports. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + pathstring: + type: string + title: Path + description: Path + maxLength: 250 + required: + - name + - pk + DirectionEnum: + enum: + - I + - O + type: string + description: |- + * `I` - Inbound + * `O` - Outbound + DuplicateOrder: + type: object + description: Serializer for specifying options when duplicating an order. + properties: + order_id: + type: integer + description: ID of the order to duplicate + copy_lines: + type: boolean + default: true + description: Copy line items from the original order + copy_extra_lines: + type: boolean + default: true + description: Copy extra line items from the original order + copy_parameters: + type: boolean + default: true + description: Copy order parameters from the original order + required: + - order_id + DuplicatePart: + type: object + description: |- + Serializer for specifying options when duplicating a Part. + + The fields in this serializer control how the Part is duplicated. + properties: + part: + type: integer + title: Original Part + description: Select original part to duplicate + copy_image: + type: boolean + default: false + description: Copy image from original part + copy_bom: + type: boolean + default: false + description: Copy bill of materials from original part + copy_parameters: + type: boolean + default: false + description: Copy parameter data from original part + copy_notes: + type: boolean + default: true + description: Copy notes from original part + copy_tests: + type: boolean + default: false + description: Copy test templates from original part + required: + - part + EmailMessage: + type: object + description: Serializer for the EmailMessage model. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Global ID + description: Unique identifier for this message + global_id: + type: string + format: uuid + readOnly: true + description: Unique identifier for this message + message_id_key: + type: string + nullable: true + title: Message ID + description: Identifier for this message (might be supplied by external + system) + maxLength: 250 + thread_id_key: + type: string + nullable: true + title: Thread ID + description: Identifier for this message thread (might be supplied by external + system) + maxLength: 250 + thread: + type: string + format: uuid + description: Linked thread for this message + nullable: true + subject: + type: string + maxLength: 250 + body: + type: string + to: + type: string + format: email + maxLength: 254 + sender: + type: string + format: email + maxLength: 254 + status: + nullable: true + oneOf: + - $ref: '#/components/schemas/EmailMessageStatusEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + timestamp: + type: string + format: date-time + readOnly: true + headers: + nullable: true + full_message: + type: string + nullable: true + direction: + nullable: true + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + priority: + allOf: + - $ref: '#/components/schemas/PriorityEnum' + minimum: -9223372036854775808 + maximum: 9223372036854775807 + error_code: + type: string + nullable: true + maxLength: 50 + error_message: + type: string + nullable: true + error_timestamp: + type: string + format: date-time + nullable: true + delivery_options: + nullable: true + required: + - body + - global_id + - pk + - priority + - sender + - subject + - timestamp + - to + EmailMessageStatusEnum: + enum: + - A + - S + - F + - D + - R + - C + type: string + description: |- + * `A` - Announced + * `S` - Sent + * `F` - Failed + * `D` - Delivered + * `R` - Read + * `C` - Confirmed + ErrorMessage: + type: object + description: DRF serializer for server error messages. + properties: + when: + type: string + format: date-time + readOnly: true + info: + type: string + readOnly: true + data: + type: string + readOnly: true + nullable: true + path: + type: string + format: uri + readOnly: true + nullable: true + maxLength: 200 + pk: + type: integer + readOnly: true + title: ID + required: + - info + - pk + - when + ExtendedUser: + type: object + description: Serializer for a User with a bit more info. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + required: + - email + - first_name + - groups + - last_name + - pk + - profile + - username + FailedTask: + type: object + description: Serializer for an individual failed task object. + properties: + pk: + type: string + readOnly: true + name: + type: string + readOnly: true + description: Optional human-readable name for lookup and display. + func: + type: string + title: Function + description: Dotted import path to the callable, e.g. myapp.tasks.job. + maxLength: 256 + args: + type: string + readOnly: true + nullable: true + title: Arguments + description: Pickled positional arguments (tuple). + kwargs: + type: string + readOnly: true + nullable: true + title: Keyword arguments + description: Pickled keyword arguments (dict). + started: + type: string + format: date-time + readOnly: true + title: Started at + description: When the worker started executing the task. + stopped: + type: string + format: date-time + readOnly: true + title: Stopped at + description: When the worker finished (success or failure). + attempt_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: How many times execution was attempted. + result: + type: string + required: + - func + - name + - pk + - result + - started + - stopped + Flag: + type: object + description: Serializer for feature flags. + properties: + key: + type: string + readOnly: true + state: + type: string + readOnly: true + conditions: + type: array + items: + type: object + additionalProperties: {} + readOnly: true + nullable: true + required: + - key + - state + GenerateBatchCode: + type: object + description: |- + Serializer for generating a batch code. + + Any of the provided write-only fields can be used for additional context. + properties: + batch_code: + type: string + readOnly: true + description: Generated batch code + build_order: + type: integer + nullable: true + description: Select build order + item: + type: integer + nullable: true + title: Stock Item + description: Select stock item to generate batch code for + location: + type: integer + nullable: true + description: Select location to generate batch code for + part: + type: integer + nullable: true + description: Select part to generate batch code for + purchase_order: + type: integer + nullable: true + description: Select purchase order + quantity: + type: number + format: double + nullable: true + description: Enter quantity for batch code + required: + - batch_code + GenerateSerialNumber: + type: object + description: |- + Serializer for generating one or multiple serial numbers. + + Any of the provided write-only fields can be used for additional context. + + Note that in the case where multiple serial numbers are required, + the "serial_number" field will return a string with multiple serial numbers + separated by a comma. + properties: + serial_number: + type: string + readOnly: true + nullable: true + description: Generated serial number + part: + type: integer + nullable: true + description: Select part to generate serial number for + quantity: + type: integer + default: 1 + description: Quantity of serial numbers to generate + GenericStateClass: + type: object + description: API serializer for generic state class information. + properties: + status_class: + type: string + readOnly: true + title: Class + values: + type: object + additionalProperties: + $ref: '#/components/schemas/GenericStateValue' + required: + - status_class + - values + GenericStateValue: + type: object + description: API serializer for generic state information. + properties: + key: + type: integer + logical_key: + type: string + name: + type: string + label: + type: string + color: + type: string + custom: + type: boolean + required: + - key + - label + - name + GetAuthToken: + type: object + description: Serializer for the GetAuthToken API endpoint. + properties: + token: + type: string + readOnly: true + name: + type: string + expiry: + type: string + format: date + readOnly: true + required: + - expiry + - name + - token + GetSimpleLogin: + type: object + description: Serializer for the simple login view. + properties: + email: + type: string + required: + - email + GlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable + readOnly: true + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - read_only + - typ + - type + - units + - value + Group: + type: object + description: Serializer for a 'Group'. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + maxLength: 150 + required: + - name + - pk + HealthCheckStatus: + type: object + description: Status of the overall system health. + properties: + status: + allOf: + - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' + readOnly: true + default: ok + description: |- + Health status of the InvenTree server + + * `ok` - ok + * `loading` - loading + required: + - status + HealthCheckStatusStatusEnum: + enum: + - ok + - loading + type: string + description: |- + * `ok` - ok + * `loading` - loading + Icon: + type: object + description: Serializer for an icon. + properties: + name: + type: string + category: + type: string + tags: + type: array + items: + type: string + variants: + type: object + additionalProperties: + type: string + required: + - category + - name + - tags + - variants + IconPackage: + type: object + description: Serializer for a list of icons. + properties: + name: + type: string + prefix: + type: string + fonts: + type: object + additionalProperties: + type: string + icons: + type: object + additionalProperties: + $ref: '#/components/schemas/Icon' + required: + - fonts + - icons + - name + - prefix + ImportParameter: + type: object + description: Serializer for a ImportParameter. + properties: + name: + type: string + value: + type: string + parameter_template: + type: integer + nullable: true + description: Return the ID of the parameter template if available. + readOnly: true + on_category: + type: boolean + required: + - name + - on_category + - value + ImportRequest: + type: object + description: Serializer for the import request. + properties: + plugin: + type: string + supplier: + type: string + part_import_id: + type: string + category_id: + type: integer + nullable: true + part_id: + type: integer + nullable: true + required: + - part_import_id + - plugin + - supplier + ImportResult: + type: object + description: Serializer for the import result. + properties: + part_id: + type: integer + part_detail: + $ref: '#/components/schemas/Part' + manufacturer_part_id: + type: integer + supplier_part_id: + type: integer + pricing: + type: array + items: + type: array + items: + type: number + format: double + minLength: 2 + maxLength: 2 + description: Return the pricing data as a dictionary. + readOnly: true + parameters: + type: array + items: + $ref: '#/components/schemas/ImportParameter' + required: + - manufacturer_part_id + - parameters + - part_detail + - part_id + - pricing + - supplier_part_id + InfoApi: + type: object + description: InvenTree server information - some information might be blanked + if called without elevated credentials. + properties: + server: + type: string + readOnly: true + id: + type: string + readOnly: true + nullable: true + version: + type: string + readOnly: true + instance: + type: string + readOnly: true + apiVersion: + type: integer + readOnly: true + worker_running: + type: boolean + readOnly: true + worker_count: + type: integer + readOnly: true + worker_pending_tasks: + type: integer + readOnly: true + plugins_enabled: + type: boolean + readOnly: true + plugins_install_disabled: + type: boolean + readOnly: true + active_plugins: + readOnly: true + email_configured: + type: boolean + readOnly: true + debug_mode: + type: boolean + readOnly: true + docker_mode: + type: boolean + readOnly: true + default_locale: + type: string + readOnly: true + customize: + allOf: + - $ref: '#/components/schemas/Customize' + readOnly: true + system_health: + type: boolean + readOnly: true + database: + type: string + readOnly: true + platform: + type: string + readOnly: true + installer: + type: string + readOnly: true + target: + type: string + readOnly: true + nullable: true + django_admin: + type: string + readOnly: true + settings: + allOf: + - $ref: '#/components/schemas/Settings' + readOnly: true + required: + - active_plugins + - apiVersion + - customize + - database + - debug_mode + - default_locale + - django_admin + - docker_mode + - email_configured + - installer + - instance + - platform + - plugins_enabled + - plugins_install_disabled + - server + - settings + - system_health + - version + - worker_count + - worker_pending_tasks + - worker_running + InitialStock: + type: object + description: Serializer for creating initial stock quantity. + properties: + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + title: Initial Stock Quantity + description: Specify initial stock quantity for this Part. If quantity is + zero, no stock is added. + location: + type: integer + nullable: true + title: Initial Stock Location + description: Specify initial stock location for this Part + required: + - quantity + InitialSupplier: + type: object + description: Serializer for adding initial supplier / manufacturer information. + properties: + supplier: + type: integer + nullable: true + description: Select supplier (or leave blank to skip) + sku: + type: string + description: Supplier stock keeping unit + maxLength: 100 + manufacturer: + type: integer + nullable: true + description: Select manufacturer (or leave blank to skip) + mpn: + type: string + description: Manufacturer part number + maxLength: 100 + InstallStockItem: + type: object + description: Serializer for installing a stock item into a given part. + properties: + stock_item: + type: integer + description: Select stock item to install + quantity: + type: integer + minimum: 1 + default: 1 + title: Quantity to Install + description: Enter the quantity of items to install + note: + type: string + description: Add transaction note (optional) + required: + - stock_item + ItemTypeEnum: + enum: + - all + - untracked + - tracked + type: string + description: |- + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + LabelPrint: + type: object + description: Serializer class for printing a label. + properties: + template: + type: integer + description: Select label template + plugin: + type: string + title: Printing Plugin + description: Select plugin to use for label printing + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report + required: + - items + - template + LabelTemplate: + type: object + description: Serializer class for label template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm + required: + - description + - model_type + - name + - pk + - revision + - template + LicenseView: + type: object + description: Serializer for license information. + properties: + backend: + type: array + items: {} + readOnly: true + description: Backend licenses texts + frontend: + type: array + items: {} + readOnly: true + description: Frontend licenses texts + required: + - backend + - frontend + Link: + type: object + description: Serializer for all possible links. + properties: + doc: + type: string + format: uri + code: + type: string + format: uri + app: + type: string + format: uri + bug: + type: string + format: uri + required: + - app + - bug + - code + - doc + LocatePlugin: + type: object + description: Serializer for the LocatePluginView API endpoint. + properties: + plugin: + type: string + description: Plugin to use for location identification + item: + type: integer + description: StockItem to identify + location: + type: integer + description: StockLocation to identify + required: + - plugin + Location: + type: object + description: Detailed information about a stock location. + properties: + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + name: + type: string + description: Name + maxLength: 100 + level: + type: integer + readOnly: true + description: + type: string + description: Description (optional) + maxLength: 250 + parent: + type: integer + nullable: true + title: Parent Location + description: Parent stock location + pathstring: + type: string + readOnly: true + title: Path + description: Path + items: + type: integer + readOnly: true + title: Stock Items + sublocations: + type: integer + readOnly: true + owner: + type: integer + nullable: true + description: Select Owner + icon: + type: string + readOnly: true + custom_icon: + type: string + nullable: true + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: + type: integer + nullable: true + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' + readOnly: true + nullable: true + required: + - barcode_hash + - icon + - items + - level + - name + - pathstring + - pk + - sublocations + LocationBrief: + type: object + description: Provides a brief serializer for a StockLocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + pathstring: + type: string + title: Path + description: Path + maxLength: 250 + required: + - name + - pk + LocationTree: + type: object + description: Serializer for a simple tree view. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + parent: + type: integer + nullable: true + icon: + type: string + description: |- + Get the current icon used for this location. + + The icon field on this model takes precedences over the possibly assigned stock location type + readOnly: true + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + sublocations: + type: integer + readOnly: true + required: + - icon + - name + - pk + - sublocations + MachineConfig: + type: object + description: Serializer for a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + readOnly: true + description: Type of machine + driver: + type: string + readOnly: true + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + required: + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type + - name + - pk + - properties + - restart_required + - status + - status_text + MachineConfigCreate: + type: object + description: Serializer for creating a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + description: Type of machine + maxLength: 255 + driver: + type: string + description: Driver used for the machine + maxLength: 255 + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + required: + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type + - name + - pk + - properties + - restart_required + - status + - status_text + MachineDriver: + type: object + description: Machine drivers. + properties: + slug: + type: string + pattern: ^[-a-zA-Z0-9_]+$ + name: + type: string + description: + type: string + provider_file: + type: string + description: File that contains the class definition. + readOnly: true + provider_plugin: + type: object + additionalProperties: {} + nullable: true + description: Plugin(s) that contain(s) the class definition. + readOnly: true + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. + readOnly: true + machine_type: + type: string + readOnly: true + pattern: ^[-a-zA-Z0-9_]+$ + driver_errors: + type: array + items: + type: string + description: Errors registered against driver. + readOnly: true + required: + - description + - driver_errors + - is_builtin + - machine_type + - name + - provider_file + - slug + MachineProperty: + type: object + description: Machine Properties are set by the driver/machine to represent specific + state. + properties: + key: + type: string + description: Key of the property + value: + type: string + description: Value of the property + group: + type: string + description: Grouping of the property + type: + allOf: + - $ref: '#/components/schemas/MachinePropertyTypeEnum' + default: str + description: |- + Type of the property + + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + max_progress: + type: integer + nullable: true + description: Maximum value for progress type, required if type=progress + required: + - key + - value + MachinePropertyTypeEnum: + enum: + - str + - bool + - progress + - int + - float + type: string + description: |- + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + MachineRegistryError: + type: object + description: Machine registry error. + properties: + message: + type: string + required: + - message + MachineRegistryStatus: + type: object + description: Machine registry status, showing all errors that were registered. + properties: + registry_errors: + type: array + items: + $ref: '#/components/schemas/MachineRegistryError' + required: + - registry_errors + MachineRestart: + type: object + description: Serializer for the machine restart response. + properties: + ok: + type: boolean + required: + - ok + MachineSetting: + type: object + description: Serializer for the MachineSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + config_type: + allOf: + - $ref: '#/components/schemas/ConfigTypeEnum' + readOnly: true + required: + - choices + - config_type + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - required + - typ + - type + - units + - value + MachineType: + type: object + description: Available machine types. + properties: + slug: + type: string + pattern: ^[-a-zA-Z0-9_]+$ + name: + type: string + description: + type: string + provider_file: + type: string + description: File that contains the class definition. + readOnly: true + provider_plugin: + type: object + additionalProperties: {} + nullable: true + description: Plugin(s) that contain(s) the class definition. + readOnly: true + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. + readOnly: true + required: + - description + - is_builtin + - name + - provider_file + - slug + ManufacturerPart: + type: object + description: Serializer for ManufacturerPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + title: Base Part + description: Select part + manufacturer: + type: integer + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + description: + type: string + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number + maxLength: 100 + link: + type: string + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + required: + - manufacturer + - part + - pk + MeUser: + type: object + description: API serializer specifically for the 'me' endpoint. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + is_staff: + type: boolean + readOnly: true + title: Staff + description: Does this user have staff permissions + is_superuser: + type: boolean + readOnly: true + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + readOnly: true + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/UserProfile' + readOnly: true + required: + - email + - first_name + - groups + - is_active + - is_staff + - is_superuser + - last_name + - pk + - profile + - username + ModelTypeDf8Enum: + enum: + - build.build + - company.company + - company.manufacturerpart + - company.supplierpart + - order.purchaseorder + - order.returnorder + - order.salesorder + - order.salesordershipment + - order.transferorder + - part.part + - stock.stocklocation + type: string + description: |- + * `build.build` - Build Order + * `company.company` - Company + * `company.manufacturerpart` - Manufacturer Part + * `company.supplierpart` - Supplier Part + * `order.purchaseorder` - Purchase Order + * `order.returnorder` - Return Order + * `order.salesorder` - Sales Order + * `order.salesordershipment` - Sales Order Shipment + * `order.transferorder` - Transfer Order + * `part.part` - Part + * `stock.stocklocation` - Stock Location + NameEnum: + enum: + - admin + - part_category + - part + - bom + - stock_location + - stock + - build + - purchase_order + - sales_order + - return_order + - transfer_order + - repair_order + type: string + description: |- + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + NewsFeedEntry: + type: object + description: Serializer for the NewsFeedEntry model. + properties: + pk: + type: integer + readOnly: true + title: ID + feed_id: + type: string + title: Id + maxLength: 250 + title: + type: string + maxLength: 250 + link: + type: string + format: uri + maxLength: 250 + published: + type: string + format: date-time + author: + type: string + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean + required: + - author + - feed_id + - link + - pk + - published + - read + - summary + - title + NotesImage: + type: object + description: Serializer for the NotesImage model. + properties: + pk: + type: integer + readOnly: true + title: ID + image: + type: string + format: uri + user: + type: integer + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + model_type: + type: string + nullable: true + description: Target model type for this image + maxLength: 100 + model_id: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + nullable: true + description: Target model ID for this image + required: + - date + - image + - pk + NotificationMessage: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. + readOnly: true + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: + type: integer + readOnly: true + category: + type: string + readOnly: true + name: + type: string + readOnly: true + message: + type: string + readOnly: true + nullable: true + creation: + type: string + format: date-time + readOnly: true + age: + type: integer + description: Age of the message in seconds. + readOnly: true + age_human: + type: string + description: Humanized age. + readOnly: true + read: + type: boolean + required: + - age + - age_human + - category + - creation + - name + - pk + - read + - source + - target + - user + NullEnum: + enum: + - null + ObservabilityEnd: + type: object + description: Serializer for observability end endpoint. + properties: + traceid: + type: string + description: Trace ID to end + maxLength: 128 + service: + type: string + description: Service name + maxLength: 128 + required: + - service + - traceid + OutcomeEnum: + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + - 60 + type: integer + description: |- + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + Owner: + type: object + description: Serializer for an "Owner" (either a "user" or a "group"). + properties: + pk: + type: integer + readOnly: true + title: ID + owner_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + nullable: true + owner_model: + type: string + readOnly: true + name: + type: string + readOnly: true + label: + type: string + readOnly: true + required: + - label + - name + - owner_model + - pk + PageSizeEnum: + enum: + - A4 + - A3 + - Legal + - Letter + type: string + description: |- + * `A4` - A4 + * `A3` - A3 + * `Legal` - Legal + * `Letter` - Letter + PaginatedAddressList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Address' + PaginatedApiTokenList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ApiToken' + PaginatedAttachmentList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Attachment' + PaginatedBarcodeScanResultList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BarcodeScanResult' + PaginatedBomItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItem' + PaginatedBomItemSubstituteList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + PaginatedBuildItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BuildItem' + PaginatedBuildLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BuildLine' + PaginatedBuildList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Build' + PaginatedCategoryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Category' + PaginatedCategoryParameterTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryParameterTemplate' + PaginatedCategoryTreeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryTree' + PaginatedCompanyList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Company' + PaginatedContactList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Contact' + PaginatedContentTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ContentType' + PaginatedCustomStateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CustomState' + PaginatedCustomUnitList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CustomUnit' + PaginatedDataImportColumnMapList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + PaginatedDataImportRowList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportRow' + PaginatedDataImportSessionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportSession' + PaginatedDataOutputList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataOutput' + PaginatedEmailMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/EmailMessage' + PaginatedErrorMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ErrorMessage' + PaginatedFailedTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/FailedTask' + PaginatedGlobalSettingsList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/GlobalSettings' + PaginatedGroupList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Group' + PaginatedIconPackageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/IconPackage' + PaginatedLabelTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/LabelTemplate' + PaginatedLocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Location' + PaginatedLocationTreeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/LocationTree' + PaginatedMachineConfigList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/MachineConfig' + PaginatedManufacturerPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ManufacturerPart' + PaginatedNewsFeedEntryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NewsFeedEntry' + PaginatedNotesImageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NotesImage' + PaginatedNotificationMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NotificationMessage' + PaginatedOwnerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Owner' + PaginatedParameterList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Parameter' + PaginatedParameterTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ParameterTemplate' + PaginatedPartInternalPriceList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartInternalPrice' + PaginatedPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Part' + PaginatedPartRelationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartRelation' + PaginatedPartSalePriceList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' + PaginatedPartStocktakeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartStocktake' + PaginatedPartTestTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartTestTemplate' + PaginatedPartThumbList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartThumb' + PaginatedPendingTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PendingTask' + PaginatedPluginConfigList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PluginConfig' + PaginatedPluginSettingList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PluginSetting' + PaginatedProjectCodeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ProjectCode' + PaginatedPurchaseOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + PaginatedPurchaseOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItem' + PaginatedPurchaseOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrder' + PaginatedRepairOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrderAllocation' + PaginatedRepairOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrderLineItem' + PaginatedRepairOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrder' + PaginatedReportAssetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportAsset' + PaginatedReportSnippetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportSnippet' + PaginatedReportTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportTemplate' + PaginatedReturnOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrderExtraLine' + PaginatedReturnOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrderLineItem' + PaginatedReturnOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrder' + PaginatedRuleSetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RuleSet' + PaginatedSalesOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderAllocation' + PaginatedSalesOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderExtraLine' + PaginatedSalesOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderLineItem' + PaginatedSalesOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrder' + PaginatedSalesOrderShipmentList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderShipment' + PaginatedScheduledTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ScheduledTask' + PaginatedSelectionEntryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + PaginatedSelectionListList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SelectionList' + PaginatedStockItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockItem' + PaginatedStockItemTestResultList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' + PaginatedStockLocationTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockLocationType' + PaginatedStockTrackingList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockTracking' + PaginatedSupplierPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SupplierPart' + PaginatedSupplierPriceBreakList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreak' + PaginatedTransferOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrderAllocation' + PaginatedTransferOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrderLineItem' + PaginatedTransferOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrder' + PaginatedUserCreateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/UserCreate' + PaginatedUserSettingsList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/UserSettings' + Parameter: + type: object + description: Serializer for the Parameter model. + properties: + pk: + type: integer + readOnly: true + title: ID + template: + type: integer + description: Parameter template + model_type: + allOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + default: '' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: + type: string + description: Parameter Value + maxLength: 500 + minLength: 1 + data_numeric: + type: number + format: double + nullable: true + note: + type: string + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + updated_by: + type: integer + readOnly: true + nullable: true + title: Update By + description: User who last updated this object + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + required: + - data + - model_id + - pk + - template + - template_detail + ParameterTemplate: + type: object + description: Serializer for the ParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Parameter Name + maxLength: 100 + units: + type: string + description: Physical units for this parameter + maxLength: 25 + description: + type: string + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: + type: string + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + required: + - name + - pk + Part: + type: object + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. + properties: + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category: + type: integer + nullable: true + category_name: + type: string + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: + type: string + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + description: + type: string + description: Part description (optional) + maxLength: 250 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: + type: string + default: '' + maxLength: 100 + is_template: + type: boolean + description: Is this part a template part? + keywords: + type: string + nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: + type: string + description: Part name + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: + type: string + nullable: true + default: '' + maxLength: 100 + revision_of: + type: integer + nullable: true + description: Is this part a revision of another part? + revision_count: + type: integer + readOnly: true + nullable: true + title: Revisions + salable: + type: boolean + description: Can this part be sold to customers? + starred: + type: boolean + description: Return "true" if the part is starred by the current user. + readOnly: true + thumbnail: + type: string + readOnly: true + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + variant_of: + type: integer + nullable: true + description: Is this part a variant of another part? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + responsible: + type: integer + nullable: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + nullable: true + allocated_to_sales_orders: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true + nullable: true + description: Outstanding quantity of this part scheduled to be built + category_default_location: + type: integer + readOnly: true + nullable: true + in_stock: + type: number + format: double + readOnly: true + nullable: true + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: + type: integer + readOnly: true + nullable: true + required_for_sales_orders: + type: integer + readOnly: true + nullable: true + stock_item_count: + type: integer + readOnly: true + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double + readOnly: true + nullable: true + title: Total Stock + external_stock: + type: number + format: double + readOnly: true + nullable: true + unallocated_stock: + type: number + format: double + readOnly: true + nullable: true + variant_stock: + type: number + format: double + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + required: + - barcode_hash + - category_name + - full_name + - name + - pk + - starred + - thumbnail + PartBomValidate: + type: object + description: Serializer for Part BOM information. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_validated: + type: boolean + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: + type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true + nullable: true + bom_checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + bom_checked_date: + type: string + format: date + readOnly: true + nullable: true + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials + required: + - bom_checksum + - bom_validated + - pk + PartBrief: + type: object + description: Serializer for Part (brief detail). + properties: + pk: + type: integer + readOnly: true + title: ID + IPN: + type: string + nullable: true + description: Internal Part Number + maxLength: 100 + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category_default_location: + type: integer + readOnly: true + nullable: true + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + name: + type: string + description: Part name + maxLength: 100 + revision: + type: string + nullable: true + default: '' + maxLength: 100 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + description: + type: string + description: Part description (optional) + maxLength: 250 + image: + type: string + format: uri + readOnly: true + nullable: true + thumbnail: + type: string + readOnly: true + active: + type: boolean + description: Is this part active? + locked: + type: boolean + description: Locked parts cannot be edited + assembly: + type: boolean + description: Can this part be built from other parts? + component: + type: boolean + description: Can this part be used to build other parts? + minimum_stock: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Minimum allowed stock level + is_template: + type: boolean + description: Is this part a template part? + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + salable: + type: boolean + description: Can this part be sold to customers? + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + required: + - barcode_hash + - full_name + - name + - pk + - thumbnail + PartCopyBOM: + type: object + description: Serializer for copying a BOM from another part. + properties: + part: + type: integer + description: Select part to copy BOM from + remove_existing: + type: boolean + default: true + title: Remove Existing Data + description: Remove existing BOM items before copying + include_inherited: + type: boolean + default: false + description: Include BOM items which are inherited from templated parts + skip_invalid: + type: boolean + default: false + title: Skip Invalid Rows + description: Enable this option to skip invalid rows + copy_substitutes: + type: boolean + default: true + title: Copy Substitute Parts + description: Copy substitute parts when duplicate BOM items + required: + - part + PartInternalPrice: + type: object + description: Serializer for internal prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + required: + - part + - pk + - quantity + PartPricing: + type: object + description: Serializer for Part pricing information. + properties: + currency: + type: string + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + bom_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + override_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + overall_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + update: + type: boolean + writeOnly: true + nullable: true + default: false + description: Update pricing for this part + required: + - scheduled_for_update + PartRelation: + type: object + description: Serializer for a PartRelated model. + properties: + pk: + type: integer + readOnly: true + title: ID + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: + type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + note: + type: string + description: Note for this relationship + maxLength: 500 + required: + - part_1 + - part_1_detail + - part_2 + - part_2_detail + - pk + PartRequirements: + type: object + description: Serializer for Part requirements. + properties: + total_stock: + type: number + format: double + readOnly: true + unallocated_stock: + type: number + format: double + readOnly: true + title: Available Stock + can_build: + type: number + format: double + readOnly: true + ordering: + type: number + format: double + readOnly: true + title: On Order + building: + type: number + format: double + readOnly: true + title: In Production + scheduled_to_build: + type: integer + readOnly: true + required_for_build_orders: + type: number + format: double + readOnly: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + required_for_sales_orders: + type: number + format: double + readOnly: true + allocated_to_sales_orders: + type: number + format: double + description: Return the allocated sales order quantity. + readOnly: true + required: + - allocated_to_build_orders + - allocated_to_sales_orders + - building + - can_build + - ordering + - required_for_build_orders + - required_for_sales_orders + - scheduled_to_build + - total_stock + - unallocated_stock + PartSalePrice: + type: object + description: Serializer for sale prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + required: + - part + - pk + - quantity + PartSerialNumber: + type: object + description: Serializer for Part serial number information. + properties: + latest: + type: string + readOnly: true + nullable: true + next: + type: string + readOnly: true + required: + - next + PartStocktake: + type: object + description: Serializer for the PartStocktake model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Part for stocktake + part_name: + type: string + readOnly: true + part_ipn: + type: string + readOnly: true + nullable: true + part_description: + type: string + readOnly: true + nullable: true + date: + type: string + format: date + readOnly: true + description: Date stocktake was performed + item_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: Number of individual stock entries at time of stocktake + quantity: + type: number + format: double + cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_min_currency: + type: string + title: Currency + description: Select currency from available options + cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_max_currency: + type: string + title: Currency + description: Select currency from available options + required: + - date + - part + - part_name + - pk + - quantity + PartStocktakeGenerate: + type: object + description: Serializer for generating PartStocktake entries. + properties: + part: + type: integer + nullable: true + description: Select a part to generate stocktake information for that part + (and any variant parts) + category: + type: integer + nullable: true + description: Select a category to include all parts within that category + (and subcategories) + location: + type: integer + nullable: true + description: Select a location to include all parts with stock in that location + (including sub-locations) + generate_entry: + type: boolean + writeOnly: true + default: false + title: Generate Stocktake Entries + description: Save stocktake entries for the selected parts + generate_report: + type: boolean + writeOnly: true + default: false + description: Generate a stocktake report for the selected parts + output: + allOf: + - $ref: '#/components/schemas/DataOutput' + readOnly: true + required: + - output + PartTestTemplate: + type: object + description: Serializer for the PartTestTemplate class. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + part: + type: integer + test_name: + type: string + description: Enter a name for the test + maxLength: 100 + description: + type: string + nullable: true + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: + type: boolean + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer + readOnly: true + description: Number of results recorded against this template + choices: + type: string + description: Valid choices for this test (comma-separated) + maxLength: 5000 + required: + - key + - part + - pk + - results + - test_name + PartThumb: + type: object + description: |- + Serializer for the 'image' field of the Part model. + + Used to serve and display existing Part images. + properties: + image: + type: string + format: uri + readOnly: true + count: + type: integer + readOnly: true + required: + - count + - image + PartThumbSerializerUpdate: + type: object + description: Serializer for updating Part thumbnail. + properties: + image: + type: string + format: uri + required: + - image + PatchedAddress: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + description: Select company + title: + type: string + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: + type: boolean + title: Primary address + description: Set as primary address + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + link: + type: string + format: uri + description: Link to address information (external) + maxLength: 2000 + PatchedAttachment: + type: object + description: Serializer class for the Attachment model. + properties: + pk: + type: integer + readOnly: true + title: ID + attachment: + type: string + format: uri + nullable: true + thumbnail: + type: string + format: uri + readOnly: true + nullable: true + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: + type: boolean + readOnly: true + description: True if this attachment is a valid image file + upload_date: + type: string + format: date + readOnly: true + upload_user: + type: integer + readOnly: true + nullable: true + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + tags: + type: array + items: + type: string + PatchedBomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: + type: boolean + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID + validated: + type: boolean + description: This BOM item has been validated + available_stock: + type: number + format: double + readOnly: true + nullable: true + available_substitute_stock: + type: number + format: double + readOnly: true + nullable: true + available_variant_stock: + type: number + format: double + readOnly: true + nullable: true + external_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + title: In Production + can_build: + type: number + format: double + readOnly: true + nullable: true + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sub_part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Component + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + substitutes: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + readOnly: true + nullable: true + PatchedBomItemSubstitute: + type: object + description: Serializer for the BomItemSubstitute class. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_item: + type: integer + description: Parent BOM item + part: + type: integer + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + PatchedBomItemValidation: + type: object + description: Simple serializer for passing a single boolean field. + properties: + valid: + type: boolean + default: false + PatchedBuild: + type: object + description: Serializes a Build object. + properties: + pk: + type: integer + readOnly: true + title: ID + title: + type: string + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: + type: string + readOnly: true + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: + type: string + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: + type: string + format: date + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: + type: string + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer + nullable: true + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + default: false + reference: + type: string + sales_order: + type: integer + nullable: true + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: + type: string + format: date + nullable: true + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + target_date: + type: string + format: date + nullable: true + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: + type: integer + readOnly: true + nullable: true + description: User who issued this build order + issued_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + responsible: + type: integer + nullable: true + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + priority: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedBuildItem: + type: object + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + build_line: + type: integer + nullable: true + install_into: + type: integer + nullable: true + description: Destination stock item + stock_item: + type: integer + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: + type: integer + readOnly: true + bom_reference: + type: string + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + stock_item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Stock Item + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + install_into_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Install Into + PatchedBuildLine: + type: object + description: Serializer for a BuildItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + description: Build object + bom_item: + type: integer + readOnly: true + quantity: + type: number + format: double + consumed: + type: number + format: double + part: + type: integer + readOnly: true + build_reference: + type: string + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: + type: number + format: double + readOnly: true + in_production: + type: number + format: double + readOnly: true + scheduled_to_build: + type: number + format: double + readOnly: true + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: + type: number + format: double + readOnly: true + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true + nullable: true + title: BOM Item + assembly_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + allocations: + type: array + items: + $ref: '#/components/schemas/BuildItem' + readOnly: true + nullable: true + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + PatchedCategory: + type: object + description: Serializer for PartCategory. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + default_location: + type: integer + nullable: true + description: Default location for parts in this category + default_keywords: + type: string + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: + type: integer + readOnly: true + parent: + type: integer + nullable: true + title: Parent Category + description: Parent part category + part_count: + type: integer + readOnly: true + nullable: true + title: Parts + subcategories: + type: integer + readOnly: true + nullable: true + pathstring: + type: string + readOnly: true + title: Path + description: Path + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. + readOnly: true + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string + nullable: true + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer + readOnly: true + nullable: true + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + PatchedCategoryParameterTemplate: + type: object + description: Serializer for the PartCategoryParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + category: + type: integer + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + template: + type: integer + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + default_value: + type: string + description: Default Parameter Value + maxLength: 500 + PatchedCompany: + type: object + description: Serializer for Company object (full detail). + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + website: + type: string + format: uri + description: Company website URL + maxLength: 2000 + phone: + type: string + title: Phone number + description: Contact phone number + maxLength: 50 + email: + type: string + format: email + nullable: true + default: '' + currency: + type: string + description: Default currency used for this supplier + contact: + type: string + description: Point of contact + maxLength: 100 + link: + type: string + format: uri + description: Link to external company information + maxLength: 2000 + image: + type: string + format: uri + nullable: true + active: + type: boolean + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parts_supplied: + type: integer + readOnly: true + parts_manufactured: + type: integer + readOnly: true + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + primary_address: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedContact: + type: object + description: Serializer class for the Contact model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + company_name: + type: string + readOnly: true + name: + type: string + maxLength: 100 + phone: + type: string + maxLength: 100 + email: + type: string + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + PatchedCustomState: + type: object + description: Serializer for the custom state model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: + type: string + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: + type: integer + nullable: true + description: Model this state is associated with + model_name: + type: string + readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' + PatchedCustomUnit: + type: object + description: DRF serializer for CustomUnit model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Unit name + maxLength: 50 + symbol: + type: string + description: Optional unit symbol + maxLength: 10 + definition: + type: string + description: Unit definition + maxLength: 50 + PatchedDataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + column: + type: string + maxLength: 100 + field: + type: string + readOnly: true + label: + type: string + readOnly: true + description: + type: string + readOnly: true + PatchedDataImportRow: + type: object + description: Serializer for the DataImportRow model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + row_index: + type: integer + readOnly: true + row_data: + readOnly: true + nullable: true + title: Original row data + data: + nullable: true + errors: + readOnly: true + nullable: true + valid: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + PatchedDataImportSession: + type: object + description: Serializer for the DataImportSession model. + properties: + pk: + type: integer + readOnly: true + title: ID + timestamp: + type: string + format: date-time + readOnly: true + data_file: + type: string + format: uri + update_records: + type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' + readOnly: true + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + columns: + readOnly: true + nullable: true + column_mappings: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: + type: integer + readOnly: true + completed_row_count: + type: integer + readOnly: true + PatchedErrorMessage: + type: object + description: DRF serializer for server error messages. + properties: + when: + type: string + format: date-time + readOnly: true + info: + type: string + readOnly: true + data: + type: string + readOnly: true + nullable: true + path: + type: string + format: uri + readOnly: true + nullable: true + maxLength: 200 + pk: + type: integer + readOnly: true + title: ID + PatchedExtendedUser: + type: object + description: Serializer for a User with a bit more info. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + PatchedGlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable + readOnly: true + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + PatchedGroup: + type: object + description: Serializer for a 'Group'. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + maxLength: 150 + roles: + type: array + items: + $ref: '#/components/schemas/RuleSet' + readOnly: true + nullable: true + permissions: + type: object + additionalProperties: {} + description: Return a list of permissions associated with the group. + readOnly: true + nullable: true + users: + type: array + items: + $ref: '#/components/schemas/User' + readOnly: true + nullable: true + PatchedLabelTemplate: + type: object + description: Serializer class for label template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm + PatchedLocation: + type: object + description: Detailed information about a stock location. + properties: + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + name: + type: string + description: Name + maxLength: 100 + level: + type: integer + readOnly: true + description: + type: string + description: Description (optional) + maxLength: 250 + parent: + type: integer + nullable: true + title: Parent Location + description: Parent stock location + pathstring: + type: string + readOnly: true + title: Path + description: Path + items: + type: integer + readOnly: true + title: Stock Items + sublocations: + type: integer + readOnly: true + owner: + type: integer + nullable: true + description: Select Owner + icon: + type: string + readOnly: true + custom_icon: + type: string + nullable: true + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: + type: integer + nullable: true + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' + readOnly: true + nullable: true + tags: + type: array + items: + type: string + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedMachineConfig: + type: object + description: Serializer for a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + readOnly: true + description: Type of machine + driver: + type: string + readOnly: true + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + PatchedMachineSetting: + type: object + description: Serializer for the MachineSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + config_type: + allOf: + - $ref: '#/components/schemas/ConfigTypeEnum' + readOnly: true + PatchedManufacturerPart: + type: object + description: Serializer for ManufacturerPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + title: Base Part + description: Select part + manufacturer: + type: integer + description: + type: string + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number + maxLength: 100 + link: + type: string + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + pretty_name: + type: string + readOnly: true + nullable: true + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedMeUser: + type: object + description: API serializer specifically for the 'me' endpoint. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + is_staff: + type: boolean + readOnly: true + title: Staff + description: Does this user have staff permissions + is_superuser: + type: boolean + readOnly: true + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + readOnly: true + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/UserProfile' + readOnly: true + PatchedNewsFeedEntry: + type: object + description: Serializer for the NewsFeedEntry model. + properties: + pk: + type: integer + readOnly: true + title: ID + feed_id: + type: string + title: Id + maxLength: 250 + title: + type: string + maxLength: 250 + link: + type: string + format: uri + maxLength: 250 + published: + type: string + format: date-time + author: + type: string + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean + PatchedNotificationMessage: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. + readOnly: true + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: + type: integer + readOnly: true + category: + type: string + readOnly: true + name: + type: string + readOnly: true + message: + type: string + readOnly: true + nullable: true + creation: + type: string + format: date-time + readOnly: true + age: + type: integer + description: Age of the message in seconds. + readOnly: true + age_human: + type: string + description: Humanized age. + readOnly: true + read: + type: boolean + PatchedParameter: + type: object + description: Serializer for the Parameter model. + properties: + pk: + type: integer + readOnly: true + title: ID + template: + type: integer + description: Parameter template + model_type: + allOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + default: '' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: + type: string + description: Parameter Value + maxLength: 500 + minLength: 1 + data_numeric: + type: number + format: double + nullable: true + note: + type: string + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + updated_by: + type: integer + readOnly: true + nullable: true + title: Update By + description: User who last updated this object + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + PatchedParameterTemplate: + type: object + description: Serializer for the ParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Parameter Name + maxLength: 100 + units: + type: string + description: Physical units for this parameter + maxLength: 25 + description: + type: string + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: + type: string + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + PatchedPart: + type: object + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. + properties: + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category: + type: integer + nullable: true + category_name: + type: string + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: + type: string + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + description: + type: string + description: Part description (optional) + maxLength: 250 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: + type: string + default: '' + maxLength: 100 + is_template: + type: boolean + description: Is this part a template part? + keywords: + type: string + nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: + type: string + description: Part name + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: + type: string + nullable: true + default: '' + maxLength: 100 + revision_of: + type: integer + nullable: true + description: Is this part a revision of another part? + revision_count: + type: integer + readOnly: true + nullable: true + title: Revisions + salable: + type: boolean + description: Can this part be sold to customers? + starred: + type: boolean + description: Return "true" if the part is starred by the current user. + readOnly: true + thumbnail: + type: string + readOnly: true + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + variant_of: + type: integer + nullable: true + description: Is this part a variant of another part? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + responsible: + type: integer + nullable: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + nullable: true + allocated_to_sales_orders: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true + nullable: true + description: Outstanding quantity of this part scheduled to be built + category_default_location: + type: integer + readOnly: true + nullable: true + in_stock: + type: number + format: double + readOnly: true + nullable: true + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: + type: integer + readOnly: true + nullable: true + required_for_sales_orders: + type: integer + readOnly: true + nullable: true + stock_item_count: + type: integer + readOnly: true + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double + readOnly: true + nullable: true + title: Total Stock + external_stock: + type: number + format: double + readOnly: true + nullable: true + unallocated_stock: + type: number + format: double + readOnly: true + nullable: true + variant_stock: + type: number + format: double + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + price_breaks: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' + readOnly: true + nullable: true + default_location_detail: + allOf: + - $ref: '#/components/schemas/DefaultLocation' + readOnly: true + nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + category_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedPartBomValidate: + type: object + description: Serializer for Part BOM information. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_validated: + type: boolean + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: + type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true + nullable: true + bom_checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + bom_checked_date: + type: string + format: date + readOnly: true + nullable: true + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials + PatchedPartInternalPrice: + type: object + description: Serializer for internal prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + PatchedPartPricing: + type: object + description: Serializer for Part pricing information. + properties: + currency: + type: string + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + bom_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + override_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + overall_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + update: + type: boolean + writeOnly: true + nullable: true + default: false + description: Update pricing for this part + PatchedPartRelation: + type: object + description: Serializer for a PartRelated model. + properties: + pk: + type: integer + readOnly: true + title: ID + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: + type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + note: + type: string + description: Note for this relationship + maxLength: 500 + PatchedPartSalePrice: + type: object + description: Serializer for sale prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + PatchedPartStocktake: + type: object + description: Serializer for the PartStocktake model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Part for stocktake + part_name: + type: string + readOnly: true + part_ipn: + type: string + readOnly: true + nullable: true + part_description: + type: string + readOnly: true + nullable: true + date: + type: string + format: date + readOnly: true + description: Date stocktake was performed + item_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: Number of individual stock entries at time of stocktake + quantity: + type: number + format: double + cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_min_currency: + type: string + title: Currency + description: Select currency from available options + cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_max_currency: + type: string + title: Currency + description: Select currency from available options + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + PatchedPartTestTemplate: + type: object + description: Serializer for the PartTestTemplate class. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + part: + type: integer + test_name: + type: string + description: Enter a name for the test + maxLength: 100 + description: + type: string + nullable: true + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: + type: boolean + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer + readOnly: true + description: Number of results recorded against this template + choices: + type: string + description: Valid choices for this test (comma-separated) + maxLength: 5000 + PatchedPartThumbSerializerUpdate: + type: object + description: Serializer for updating Part thumbnail. + properties: + image: + type: string + format: uri + PatchedPluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: + active: + type: boolean + default: true + title: Activate Plugin + description: Activate this plugin + PatchedPluginSetting: + type: object + description: Serializer for the PluginSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + PatchedPluginUninstall: + type: object + description: Serializer for uninstalling a plugin. + properties: + delete_config: + type: boolean + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PatchedPluginUserSetting: + type: object + description: Serializer for the PluginUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + PatchedProjectCode: + type: object + description: Serializer for the ProjectCode model. + properties: + pk: + type: integer + readOnly: true + title: ID + code: + type: string + title: Project Code + description: Unique project code + maxLength: 50 + description: + type: string + description: Project description + maxLength: 200 + responsible: + type: integer + nullable: true + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + PatchedPurchaseOrder: + type: object + description: Serializer for a PurchaseOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + readOnly: true + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + complete_date: + type: string + format: date + readOnly: true + nullable: true + title: Completion Date + description: Date order was completed + supplier: + type: integer + nullable: true + description: Company from which the items are being ordered + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string + readOnly: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + destination: + type: integer + nullable: true + description: Destination for received items + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedPurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + PatchedPurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + minimum: 0 + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + part: + type: integer + nullable: true + title: Supplier Part + build_order: + type: integer + nullable: true + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean + readOnly: true + nullable: true + received: + type: number + format: double + readOnly: true + default: 0.0 + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + purchase_price_currency: + type: string + title: Currency + description: Purchase price currency + auto_pricing: + type: boolean + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer + nullable: true + description: Destination for received items + total_price: + type: number + format: double + readOnly: true + merge_items: + type: boolean + writeOnly: true + default: true + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string + readOnly: true + nullable: true + mpn: + type: string + readOnly: true + nullable: true + ipn: + type: string + readOnly: true + nullable: true + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: + type: string + readOnly: true + build_order_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + destination_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + PatchedRepairOrder: + type: object + description: Serializer for a RepairOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + reference: + type: string + description: Repair Order Reference + maxLength: 100 + customer: + type: integer + nullable: true + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: + allOf: + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: -9223372036854775808 + maximum: 9223372036854775807 + PatchedRepairOrderAllocation: + type: object + description: Serializer for a RepairOrderAllocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: integer + title: Line Item + item: + type: integer + title: Stock Item + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + PatchedRepairOrderLineItem: + type: object + description: Serializer for a RepairOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + title: Repair Order + part: + type: integer + nullable: true + description: Part to be consumed for repair + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + PatchedReportAsset: + type: object + description: Serializer class for the ReportAsset model. + properties: + pk: + type: integer + readOnly: true + title: ID + asset: + type: string + format: uri + description: + type: string + description: Asset file description + maxLength: 250 + PatchedReportSnippet: + type: object + description: Serializer class for the ReportSnippet model. + properties: + pk: + type: integer + readOnly: true + title: ID + snippet: + type: string + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + PatchedReportTemplate: + type: object + description: Serializer class for report template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: + type: boolean + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + PatchedReturnOrder: + type: object + description: Serializer for the ReturnOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedReturnOrderExtraLine: + type: object + description: Serializer for a ReturnOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + PatchedReturnOrderLineItem: + type: object + description: Serializer for a ReturnOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: + type: string + format: date + nullable: true + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Line price currency + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + PatchedRuleSet: + type: object + description: Serializer for a RuleSet. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: + type: string + description: Return the translated label for this ruleset. + readOnly: true + group: + type: integer + readOnly: true + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items + PatchedSalesOrder: + type: object + description: Serializer for the SalesOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedSalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + PatchedSalesOrderExtraLine: + type: object + description: Serializer for a SalesOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + PatchedSalesOrderLineItem: + type: object + description: Serializer for a SalesOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + sale_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + sale_price_currency: + type: string + title: Currency + description: Sale price currency + shipped: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + PatchedSalesOrderShipment: + type: object + description: Serializer for the SalesOrderShipment class. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + description: Sales Order + allocated_items: + type: integer + readOnly: true + nullable: true + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + checked_by: + type: integer + nullable: true + description: User who checked this shipment + reference: + type: string + default: '1' + title: Shipment + description: Shipment number + maxLength: 100 + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + shipment_address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedSelectionEntry: + type: object + description: Serializer for a selection entry. + properties: + id: + type: integer + readOnly: true + value: + type: string + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 + description: + type: string + description: Description of the selection list entry + maxLength: 250 + active: + type: boolean + description: Is this selection list entry active? + list: + type: integer + nullable: true + title: Selection List + description: Selection list to which this entry belongs + PatchedSelectionList: + type: object + description: Serializer for a selection list. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name of the selection list + maxLength: 100 + description: + type: string + description: Description of the selection list + maxLength: 250 + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: + type: integer + nullable: true + description: Plugin which provides the selection list + source_string: + type: string + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' + readOnly: true + nullable: true + created: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer + readOnly: true + PatchedStockItem: + type: object + description: |- + Serializer for a StockItem. + + - Includes serialization for the linked part + - Includes serialization for the item location + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Base Part + quantity: + type: number + format: double + serial: + type: string + nullable: true + title: Serial Number + description: Serial number for this item + maxLength: 100 + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + location: + type: integer + nullable: true + title: Stock Location + description: Where is this stock item located? + belongs_to: + type: integer + nullable: true + title: Installed In + description: Is this item installed in another item? + build: + type: integer + nullable: true + title: Source Build + description: Build for this stock item + consumed_by: + type: integer + nullable: true + description: Build order which consumed this stock item + customer: + type: integer + nullable: true + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: + type: string + format: date + nullable: true + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean + readOnly: true + is_building: + type: boolean + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: + type: integer + readOnly: true + nullable: true + title: Parent Item + description: Parent stock item + purchase_order: + type: integer + nullable: true + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: + type: string + readOnly: true + nullable: true + sales_order: + type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: + type: string + readOnly: true + nullable: true + status: + allOf: + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + nullable: true + title: Custom status key + description: Additional status information for this item + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: + type: string + readOnly: true + nullable: true + title: Supplier Part Number + MPN: + type: string + readOnly: true + nullable: true + title: Manufacturer Part Number + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true + nullable: true + description: Date that this stock item was created + stocktake_date: + type: string + format: date + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + use_pack_size: + type: boolean + writeOnly: true + nullable: true + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: + type: string + writeOnly: true + nullable: true + description: Enter serial numbers for new items + allocated: + type: number + format: double + readOnly: true + nullable: true + title: Allocated Quantity + expired: + type: boolean + readOnly: true + nullable: true + installed_items: + type: integer + readOnly: true + nullable: true + child_items: + type: integer + readOnly: true + nullable: true + stale: + type: boolean + readOnly: true + nullable: true + tracking_items: + type: integer + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tests: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' + readOnly: true + nullable: true + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + location_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + tags: + type: array + items: + type: string + PatchedStockItemTestResult: + type: object + description: Serializer for the StockItemTestResult model. + properties: + pk: + type: integer + readOnly: true + title: ID + stock_item: + type: integer + result: + type: boolean + description: Test result + value: + type: string + description: Test output value + maxLength: 500 + attachment: + type: string + format: uri + nullable: true + description: Test result attachment + notes: + type: string + description: Test notes + maxLength: 500 + test_station: + type: string + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: + type: string + format: date-time + nullable: true + title: Started + description: The timestamp of the test start + finished_datetime: + type: string + format: date-time + nullable: true + title: Finished + description: The timestamp of the test finish + user: + type: integer + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + template: + type: integer + nullable: true + title: Test template for this result + description: Template + template_detail: + allOf: + - $ref: '#/components/schemas/PartTestTemplate' + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + PatchedStockLocationType: + type: object + description: Serializer for StockLocationType model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + icon: + type: string + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: + type: integer + readOnly: true + nullable: true + PatchedSupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + available: + type: number + format: double + availability_updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Date of last update of availability data + description: + type: string + nullable: true + description: Supplier part description + maxLength: 250 + in_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + link: + type: string + format: uri + nullable: true + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_part: + type: integer + nullable: true + description: Select manufacturer part + MPN: + type: string + readOnly: true + nullable: true + note: + type: string + nullable: true + description: Notes + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + packaging: + type: string + nullable: true + description: Part packaging + maxLength: 50 + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: + type: number + format: double + readOnly: true + part: + type: integer + title: Base Part + description: Select part + SKU: + type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: + type: integer + updated: + type: string + format: date-time + readOnly: true + nullable: true + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + pretty_name: + type: string + readOnly: true + nullable: true + price_breaks: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true + manufacturer_part_detail: + allOf: + - $ref: '#/components/schemas/ManufacturerPart' + readOnly: true + nullable: true + title: Manufacturer Part + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Manufacturer + tags: + type: array + items: + type: string + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Supplier + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedSupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. + + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + PatchedTransferOrder: + type: object + description: Serializer for a TransferOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + take_from: + type: integer + nullable: true + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Destination for transferred items + destination_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + consume: + type: boolean + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedTransferOrderAllocation: + type: object + description: |- + Serializer for the TransferOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + PatchedTransferOrderLineItem: + type: object + description: Serializer for a TransferOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Transfer Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + transferred: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + PatchedUserProfile: + type: object + description: Serializer for the UserProfile model. + properties: + language: + type: string + nullable: true + description: Preferred language for the user + maxLength: 10 + theme: + nullable: true + description: Settings for the web UI as JSON - do not edit manually! + widgets: + nullable: true + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + PatchedUserSetPassword: + type: object + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + PatchedUserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + user: + type: integer + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + PendingTask: + type: object + description: Serializer for an individual pending task object. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + title: Cluster key + description: Name of the target cluster + maxLength: 100 + lock: + type: string + format: date-time + description: Lock time + task_id: + type: string + description: Unique task ID + name: + type: string + description: Task name + func: + type: string + title: Function + description: Function name + args: + type: string + title: Arguments + description: Task arguments + kwargs: + type: string + title: Keyword Arguments + description: Task keyword arguments + required: + - args + - func + - key + - kwargs + - lock + - name + - pk + - task_id + PluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: + active: + type: boolean + default: true + title: Activate Plugin + description: Activate this plugin + PluginAdminDetail: + type: object + description: Serializer for a PluginConfig with admin details. + properties: + source: + type: string + nullable: true + title: Source File + description: Path to the source file for admin integration + context: + nullable: true + description: Optional context data for the admin integration + required: + - context + - source + PluginConfig: + type: object + description: Serializer for a PluginConfig. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + description: Key of plugin + name: + type: string + nullable: true + description: Name of the plugin + maxLength: 255 + package_name: + type: string + nullable: true + description: Name of the installed package, if the plugin was installed + via PIP + maxLength: 255 + active: + type: boolean + description: Is the plugin active + meta: + type: object + additionalProperties: {} + readOnly: true + mixins: + type: object + additionalProperties: {} + readOnly: true + is_builtin: + type: boolean + description: Return True if this is a 'builtin' plugin. + readOnly: true + is_sample: + type: boolean + description: Is this plugin a sample app? + readOnly: true + is_installed: + type: boolean + description: |- + Simple check to determine if this plugin is installed. + + A plugin might not be installed if it has been removed from the system, + but the PluginConfig associated with it still exists. + readOnly: true + is_package: + type: boolean + description: Return True if this is a 'package' plugin. + readOnly: true + is_mandatory: + type: boolean + readOnly: true + required: + - is_builtin + - is_installed + - is_mandatory + - is_package + - is_sample + - key + - meta + - mixins + - pk + PluginConfigInstall: + type: object + description: Serializer for installing a new plugin. + properties: + url: + type: string + title: Source URL + description: Source for the package - this can be a custom registry or a + VCS path + packagename: + type: string + title: Package Name + description: Name for the Plugin Package - can also contain a version indicator + version: + type: string + description: Version specifier for the plugin. Leave blank for latest version. + confirm: + type: boolean + title: Confirm plugin installation + description: This will install this plugin now into the current instance. + The instance will go into maintenance. + required: + - confirm + PluginRegistryError: + type: object + description: Serializer for a plugin registry error. + properties: + stage: + type: string + name: + type: string + message: + type: string + required: + - message + - name + - stage + PluginRegistryStatus: + type: object + description: Serializer for plugin registry status. + properties: + active_plugins: + type: integer + readOnly: true + registry_errors: + type: array + items: + $ref: '#/components/schemas/PluginRegistryError' + required: + - active_plugins + - registry_errors + PluginReload: + type: object + description: Serializer for remotely forcing plugin registry reload. + properties: + full_reload: + type: boolean + default: false + description: Perform a full reload of the plugin registry + force_reload: + type: boolean + default: false + description: Force a reload of the plugin registry, even if it is already + loaded + collect_plugins: + type: boolean + default: false + description: Collect plugins and add them to the registry + PluginSetting: + type: object + description: Serializer for the PluginSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - value + PluginUIFeature: + type: object + description: Serializer for a plugin ui feature. + properties: + plugin_name: + type: string + feature_type: + type: string + key: + type: string + title: Feature Label + title: + type: string + title: Feature Title + description: + type: string + title: Feature Description + icon: + type: string + title: Feature Icon + options: + type: object + additionalProperties: {} + title: Feature Options + context: + type: object + additionalProperties: {} + title: Feature Context + source: + type: string + title: Feature Source (javascript) + required: + - feature_type + - key + - plugin_name + PluginUninstall: + type: object + description: Serializer for uninstalling a plugin. + properties: + delete_config: + type: boolean + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PluginUserSetting: + type: object + description: Serializer for the PluginUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - user + - value + PriorityEnum: + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + type: integer + description: |- + * `0` - None + * `1` - Very High + * `2` - High + * `3` - Normal + * `4` - Low + * `5` - Very Low + ProjectCode: + type: object + description: Serializer for the ProjectCode model. + properties: + pk: + type: integer + readOnly: true + title: ID + code: + type: string + title: Project Code + description: Unique project code + maxLength: 50 + description: + type: string + description: Project description + maxLength: 200 + responsible: + type: integer + nullable: true + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + required: + - code + - pk + PurchaseOrder: + type: object + description: Serializer for a PurchaseOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + readOnly: true + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + complete_date: + type: string + format: date + readOnly: true + nullable: true + title: Completion Date + description: Date order was completed + supplier: + type: integer + nullable: true + description: Company from which the items are being ordered + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string + readOnly: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + destination: + type: integer + nullable: true + description: Destination for received items + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + - supplier + - supplier_name + PurchaseOrderComplete: + type: object + description: Serializer for completing a purchase order. + properties: + accept_incomplete: + type: boolean + default: false + description: Allow order to be closed with incomplete line items + PurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + PurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + minimum: 0 + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + part: + type: integer + nullable: true + title: Supplier Part + build_order: + type: integer + nullable: true + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean + readOnly: true + nullable: true + received: + type: number + format: double + readOnly: true + default: 0.0 + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + purchase_price_currency: + type: string + title: Currency + description: Purchase price currency + auto_pricing: + type: boolean + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer + nullable: true + description: Destination for received items + total_price: + type: number + format: double + readOnly: true + merge_items: + type: boolean + writeOnly: true + default: true + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string + readOnly: true + nullable: true + mpn: + type: string + readOnly: true + nullable: true + ipn: + type: string + readOnly: true + nullable: true + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: + type: string + readOnly: true + build_order_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + destination_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + required: + - internal_part + - internal_part_name + - order + - part + - pk + - quantity + - received + - total_price + PurchaseOrderLineItemReceive: + type: object + description: A serializer for receiving a single purchase order line item against + a purchase order. + properties: + line_item: + type: integer + location: + type: integer + nullable: true + description: Select destination location for received items + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch_code: + type: string + default: '' + description: Enter batch code for incoming stock items + expiry_date: + type: string + format: date + nullable: true + description: Enter expiry date for incoming stock items + serial_numbers: + type: string + default: '' + description: Enter serial numbers for incoming stock items + status: + type: integer + description: Stock item status code + default: 10 + packaging: + type: string + default: '' + description: Override packaging information for incoming stock items + note: + type: string + default: '' + description: Additional note for incoming stock items + barcode: + type: string + nullable: true + default: '' + description: Scanned barcode + required: + - line_item + - quantity + PurchaseOrderReceive: + type: object + description: Serializer for receiving items against a PurchaseOrder. + properties: + items: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItemReceive' + location: + type: integer + nullable: true + description: Select destination location for received items + required: + - items + ReferenceStatusEnum: + enum: + - BuildStatus + - DataImportStatusCode + - MachineStatus + - PurchaseOrderStatus + - RepairOrderStatus + - ReturnOrderLineStatus + - ReturnOrderStatus + - SalesOrderStatus + - StockHistoryCode + - StockStatus + - TransferOrderStatus + type: string + description: |- + * `BuildStatus` - BuildStatus + * `DataImportStatusCode` - DataImportStatusCode + * `MachineStatus` - MachineStatus + * `PurchaseOrderStatus` - PurchaseOrderStatus + * `RepairOrderStatus` - RepairOrderStatus + * `ReturnOrderLineStatus` - ReturnOrderLineStatus + * `ReturnOrderStatus` - ReturnOrderStatus + * `SalesOrderStatus` - SalesOrderStatus + * `StockHistoryCode` - StockHistoryCode + * `StockStatus` - StockStatus + * `TransferOrderStatus` - TransferOrderStatus + RepairOrder: + type: object + description: Serializer for a RepairOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + reference: + type: string + description: Repair Order Reference + maxLength: 100 + customer: + type: integer + nullable: true + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: + allOf: + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: -9223372036854775808 + maximum: 9223372036854775807 + required: + - description + - pk + - reference + RepairOrderAllocation: + type: object + description: Serializer for a RepairOrderAllocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: integer + title: Line Item + item: + type: integer + title: Stock Item + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + required: + - item + - line + - pk + RepairOrderLineItem: + type: object + description: Serializer for a RepairOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + title: Repair Order + part: + type: integer + nullable: true + description: Part to be consumed for repair + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + required: + - order + - pk + RepairOrderStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + ReportAsset: + type: object + description: Serializer class for the ReportAsset model. + properties: + pk: + type: integer + readOnly: true + title: ID + asset: + type: string + format: uri + description: + type: string + description: Asset file description + maxLength: 250 + required: + - asset + - description + - pk + ReportPrint: + type: object + description: Serializer class for printing a report. + properties: + template: + type: integer + description: Select report template + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report + required: + - items + - template + ReportSnippet: + type: object + description: Serializer class for the ReportSnippet model. + properties: + pk: + type: integer + readOnly: true + title: ID + snippet: + type: string + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + required: + - description + - pk + - snippet + ReportTemplate: + type: object + description: Serializer class for report template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: + type: boolean + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + required: + - description + - model_type + - name + - pk + - revision + - template + ReturnOrder: + type: object + description: Serializer for the ReturnOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + ReturnOrderExtraLine: + type: object + description: Serializer for a ReturnOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + ReturnOrderLineItem: + type: object + description: Serializer for a ReturnOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: + type: string + format: date + nullable: true + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Line price currency + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + required: + - item + - order + - pk + - quantity + ReturnOrderLineItemReceive: + type: object + description: Serializer for receiving a single line item against a ReturnOrder. + properties: + item: + type: integer + title: Return order line item + status: + type: integer + description: Stock item status code + required: + - item + ReturnOrderReceive: + type: object + description: Serializer for receiving items against a ReturnOrder. + properties: + items: + type: array + items: + $ref: '#/components/schemas/ReturnOrderLineItemReceive' + location: + type: integer + description: Select destination location for received items + note: + type: string + default: '' + description: Additional note for incoming stock items + required: + - items + - location + Role: + type: object + description: Serializer for a roles associated with a given user. + properties: + user: + type: integer + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + roles: + type: object + additionalProperties: {} + description: Roles associated with the user. + readOnly: true + permissions: + type: object + additionalProperties: {} + description: Permissions associated with the user. + readOnly: true + nullable: true + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + required: + - roles + - user + - username + RuleSet: + type: object + description: Serializer for a RuleSet. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: + type: string + description: Return the translated label for this ruleset. + readOnly: true + group: + type: integer + readOnly: true + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items + required: + - group + - label + - name + - pk + SalesOrder: + type: object + description: Serializer for the SalesOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: Currency for this order (leave blank to use company default) + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + SalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' + readOnly: true + nullable: true + required: + - item + - line + - location + - order + - part + - pk + - quantity + SalesOrderAutoAllocation: + type: object + description: DRF serializer for auto-allocating stock items against a SalesOrder. + properties: + location: + type: integer + nullable: true + title: Source Location + description: Stock location where items are sourced (leave blank to use + any location) + exclude_location: + type: integer + nullable: true + description: Exclude stock items from this location + shipment: + type: integer + nullable: true + description: Assign allocations to this shipment + interchangeable: + type: boolean + default: true + title: Interchangeable Stock + description: Allow stock to be taken from multiple locations to fulfil a + single line item + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + serialized_stock: + allOf: + - $ref: '#/components/schemas/SerializedStockEnum' + default: any + description: |- + Control whether serialized stock items are included in auto-allocation + + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + line_items: + type: array + items: + type: integer + title: Line Items + description: Limit allocation to these line items (leave blank to allocate + all lines) + SalesOrderComplete: + type: object + description: DRF serializer for manually marking a sales order as complete. + properties: + accept_incomplete: + type: boolean + default: false + description: Allow order to be closed with incomplete line items + SalesOrderExtraLine: + type: object + description: Serializer for a SalesOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + SalesOrderLineItem: + type: object + description: Serializer for a SalesOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + sale_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + sale_price_currency: + type: string + title: Currency + description: Sale price currency + shipped: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + required: + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order + - pk + - quantity + - shipped + SalesOrderSerialAllocation: + type: object + description: DRF serializer for allocation of serial numbers against a sales + order / shipment. + properties: + line_item: + type: integer + quantity: + type: integer + minimum: 1 + serial_numbers: + type: string + description: Enter serial numbers to allocate + shipment: + type: integer + nullable: true + required: + - line_item + - quantity + - serial_numbers + SalesOrderShipment: + type: object + description: Serializer for the SalesOrderShipment class. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + description: Sales Order + allocated_items: + type: integer + readOnly: true + nullable: true + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + checked_by: + type: integer + nullable: true + description: User who checked this shipment + reference: + type: string + default: '1' + title: Shipment + description: Shipment number + maxLength: 100 + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + shipment_address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + required: + - order + - pk + SalesOrderShipmentAllocation: + type: object + description: DRF serializer for allocation of stock items against a sales order + / shipment. + properties: + items: + type: array + items: + $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' + shipment: + type: integer + nullable: true + required: + - items + SalesOrderShipmentAllocationItem: + type: object + description: A serializer for allocating a single stock-item against a SalesOrder + shipment. + properties: + line_item: + type: integer + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - line_item + - quantity + - stock_item + SalesOrderShipmentComplete: + type: object + description: Serializer for completing (shipping) a SalesOrderShipment. + properties: + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + ScheduleTypeEnum: + enum: + - O + - I + - H + - D + - W + - BW + - M + - BM + - Q + - Y + - C + type: string + description: |- + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + ScheduledTask: + type: object + description: Serializer for an individual scheduled task object. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + nullable: true + description: Optional label to identify this schedule in the admin. + maxLength: 100 + func: + type: string + title: Function + description: e.g. module.tasks.function + maxLength: 256 + args: + type: string + nullable: true + title: Arguments + description: e.g. 1, 2, 'John' + kwargs: + type: string + nullable: true + title: Keyword arguments + description: e.g. x=1, y=2, name='John' + schedule_type: + allOf: + - $ref: '#/components/schemas/ScheduleTypeEnum' + description: |- + How often this task should be enqueued. + + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + repeats: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: n = n times, -1 = forever + last_run: + type: string + format: date-time + next_run: + type: string + format: date-time + nullable: true + description: When this schedule runs next (stored in UTC). + success: + type: boolean + task: + type: string + readOnly: true + nullable: true + title: Last task id + description: Id of the last task spawned from this schedule (read-only). + required: + - func + - last_run + - pk + - success + SearchResult: + type: object + description: Serializer for a search result. + properties: + id: + type: string + sku: + type: string + name: + type: string + exact: + type: boolean + description: + type: string + price: + type: string + link: + type: string + image_url: + type: string + existing_part_id: + type: integer + nullable: true + description: Return the ID of the existing part if available. + readOnly: true + required: + - description + - exact + - id + - image_url + - link + - name + - price + - sku + SelectionEntry: + type: object + description: Serializer for a selection entry. + properties: + id: + type: integer + readOnly: true + value: + type: string + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 + description: + type: string + description: Description of the selection list entry + maxLength: 250 + active: + type: boolean + description: Is this selection list entry active? + list: + type: integer + nullable: true + title: Selection List + description: Selection list to which this entry belongs + required: + - id + - label + - value + SelectionList: + type: object + description: Serializer for a selection list. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name of the selection list + maxLength: 100 + description: + type: string + description: Description of the selection list + maxLength: 250 + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: + type: integer + nullable: true + description: Plugin which provides the selection list + source_string: + type: string + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' + readOnly: true + nullable: true + created: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer + readOnly: true + required: + - created + - entry_count + - last_updated + - name + - pk + SerializeStockItem: + type: object + description: |- + A DRF serializer for "serializing" a StockItem. + + (Sorry for the confusing naming...) + + Here, "serializing" means splitting out a single StockItem, + into multiple single-quantity items with an assigned serial number + + Note: The base StockItem object is provided to the serializer context + properties: + quantity: + type: integer + minimum: 0 + description: Enter number of stock items to serialize + serial_numbers: + type: string + description: Enter serial numbers for new items + destination: + type: integer + title: Location + description: Destination stock location + notes: + type: string + description: Optional note field + required: + - destination + - quantity + - serial_numbers + SerializedStockEnum: + enum: + - any + - serialized + - unserialized + type: string + description: |- + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + Settings: + type: object + description: Serializer for InfoApiSerializer. + properties: + sso_registration: + type: boolean + registration_enabled: + type: boolean + password_forgotten_enabled: + type: boolean + required: + - password_forgotten_enabled + - registration_enabled + - sso_registration + StockAdd: + type: object + description: Serializer for adding stock to stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + required: + - items + StockAdjustmentItem: + type: object + description: |- + Serializer for a single StockItem within a stock adjustment request. + + Required Fields: + - item: StockItem object + - quantity: Numerical quantity + + Optional Fields (may be used by external tools) + - status: Change StockItem status code + - packaging: Change StockItem packaging + - batch: Change StockItem batch code + + The optional fields can be used to adjust values for individual stock items + properties: + pk: + type: integer + title: stock_item + description: StockItem primary key value + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch: + type: string + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + status: + type: integer + description: Stock item status code + packaging: + type: string + description: Packaging this stock item is stored in + maxLength: 50 + required: + - pk + - quantity + StockAssignment: + type: object + description: |- + Serializer for assigning one (or more) stock items to a customer. + + This is a manual assignment process, separate for (for example) a Sales Order + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAssignmentItem' + customer: + type: integer + description: Customer to assign stock items + notes: + type: string + description: Stock assignment notes + required: + - customer + - items + StockAssignmentItem: + type: object + description: |- + Serializer for a single StockItem with in StockAssignment request. + + Here, the particular StockItem is being assigned (manually) to a customer + + Fields: + - item: StockItem object + properties: + item: + type: integer + title: Stock Item + required: + - item + StockChangeStatus: + type: object + description: Serializer for changing status of multiple StockItem objects. + properties: + items: + type: array + items: + type: integer + title: Stock Items + title: Stock Items + description: Select stock items to change status + status: + type: integer + description: Stock item status code + default: 10 + note: + type: string + title: Notes + description: Add transaction note (optional) + required: + - items + StockCount: + type: object + description: Serializer for counting stock items. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + nullable: true + description: Set stock location for counted items (optional) + required: + - items + StockItem: + type: object + description: |- + Serializer for a StockItem. + + - Includes serialization for the linked part + - Includes serialization for the item location + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Base Part + quantity: + type: number + format: double + serial: + type: string + nullable: true + title: Serial Number + description: Serial number for this item + maxLength: 100 + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + location: + type: integer + nullable: true + title: Stock Location + description: Where is this stock item located? + belongs_to: + type: integer + nullable: true + title: Installed In + description: Is this item installed in another item? + build: + type: integer + nullable: true + title: Source Build + description: Build for this stock item + consumed_by: + type: integer + nullable: true + description: Build order which consumed this stock item + customer: + type: integer + nullable: true + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: + type: string + format: date + nullable: true + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean + readOnly: true + is_building: + type: boolean + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: + type: integer + readOnly: true + nullable: true + title: Parent Item + description: Parent stock item + purchase_order: + type: integer + nullable: true + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: + type: string + readOnly: true + nullable: true + sales_order: + type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: + type: string + readOnly: true + nullable: true + status: + allOf: + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + nullable: true + title: Custom status key + description: Additional status information for this item + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: + type: string + readOnly: true + nullable: true + title: Supplier Part Number + MPN: + type: string + readOnly: true + nullable: true + title: Manufacturer Part Number + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true + nullable: true + description: Date that this stock item was created + stocktake_date: + type: string + format: date + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: + type: string + title: Currency + description: Purchase currency of this stock item + use_pack_size: + type: boolean + writeOnly: true + nullable: true + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: + type: string + writeOnly: true + nullable: true + description: Enter serial numbers for new items + allocated: + type: number + format: double + readOnly: true + nullable: true + title: Allocated Quantity + expired: + type: boolean + readOnly: true + nullable: true + installed_items: + type: integer + readOnly: true + nullable: true + child_items: + type: integer + readOnly: true + nullable: true + stale: + type: boolean + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tracking_items: + type: integer + readOnly: true + nullable: true + required: + - barcode_hash + - in_stock + - part + - pk + - quantity + StockItemSerialNumbers: + type: object + description: Serializer for extra serial number information about a stock item. + properties: + next: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Next Serial Number + previous: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Previous Serial Number + required: + - next + - previous + StockItemStatusEnum: + enum: + - 10 + - 50 + - 55 + - 60 + - 65 + - 70 + - 75 + - 85 + type: integer + description: |- + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + StockItemTestResult: + type: object + description: Serializer for the StockItemTestResult model. + properties: + pk: + type: integer + readOnly: true + title: ID + stock_item: + type: integer + result: + type: boolean + description: Test result + value: + type: string + description: Test output value + maxLength: 500 + attachment: + type: string + format: uri + nullable: true + description: Test result attachment + notes: + type: string + description: Test notes + maxLength: 500 + test_station: + type: string + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: + type: string + format: date-time + nullable: true + title: Started + description: The timestamp of the test start + finished_datetime: + type: string + format: date-time + nullable: true + title: Finished + description: The timestamp of the test finish + user: + type: integer + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + template: + type: integer + nullable: true + title: Test template for this result + description: Template + required: + - date + - pk + - stock_item + StockLocationType: + type: object + description: Serializer for StockLocationType model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + icon: + type: string + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: + type: integer + readOnly: true + nullable: true + required: + - name + - pk + StockMerge: + type: object + description: Serializer for merging two (or more) stock items together. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockMergeItem' + location: + type: integer + description: Destination stock location + notes: + type: string + description: Stock merging notes + allow_mismatched_suppliers: + type: boolean + description: Allow stock items with different supplier parts to be merged + allow_mismatched_status: + type: boolean + description: Allow stock items with different status codes to be merged + required: + - items + - location + StockMergeItem: + type: object + description: |- + Serializer for a single StockItem within the StockMergeSerializer class. + + Here, the individual StockItem is being checked for merge compatibility. + properties: + item: + type: integer + title: Stock Item + required: + - item + StockRemove: + type: object + description: Serializer for removing stock from stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + required: + - items + StockReturn: + type: object + description: Serializer class for returning stock item(s) into stock. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + description: Destination stock location + merge: + type: boolean + default: false + title: Merge into existing stock + description: Merge returned items into existing stock items if possible + required: + - items + - location + StockSortByEnum: + enum: + - updated + - -updated + - quantity + - -quantity + - expiry_date + type: string + description: |- + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + StockTracking: + type: object + description: Serializer for StockItemTracking model. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + nullable: true + part: + type: integer + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + deltas: + readOnly: true + label: + type: string + readOnly: true + notes: + type: string + nullable: true + description: Entry notes + maxLength: 512 + tracking_type: + type: integer + readOnly: true + user: + type: integer + readOnly: true + nullable: true + required: + - date + - deltas + - label + - pk + - tracking_type + StockTransfer: + type: object + description: Serializer for transferring (moving) stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + description: Destination stock location + required: + - items + - location + SupplierList: + type: object + description: Serializer for a supplier plugin. + properties: + plugin_slug: + type: string + supplier_slug: + type: string + supplier_name: + type: string + required: + - plugin_slug + - supplier_name + - supplier_slug + SupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + description: + type: string + nullable: true + description: Supplier part description + maxLength: 250 + in_stock: + type: number + format: double + readOnly: true + nullable: true + link: + type: string + format: uri + nullable: true + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_part: + type: integer + nullable: true + description: Select manufacturer part + MPN: + type: string + readOnly: true + nullable: true + note: + type: string + nullable: true + description: Notes + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + packaging: + type: string + nullable: true + description: Part packaging + maxLength: 50 + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: + type: number + format: double + readOnly: true + part: + type: integer + title: Base Part + description: Select part + SKU: + type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: + type: integer + updated: + type: string + format: date-time + readOnly: true + nullable: true + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + required: + - SKU + - barcode_hash + - pack_quantity_native + - part + - pk + - supplier + SupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. + + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - part + - pk + - price + - quantity + - supplier + SupplierPriceBreakBrief: + type: object + description: |- + Brief serializer for SupplierPriceBreak object. + + Used to provide a list of price breaks against the SupplierPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: Select currency from available options + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - part + - pk + - price + - quantity + - supplier + TaskDetail: + type: object + description: Serializer for a background task detail. + properties: + task_id: + type: string + readOnly: true + exists: + type: boolean + readOnly: true + pending: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + success: + type: boolean + readOnly: true + http_status: + type: integer + readOnly: true + required: + - complete + - exists + - http_status + - pending + - success + - task_id + TaskOverview: + type: object + description: Serializer for background task overview. + properties: + is_running: + type: boolean + readOnly: true + description: Boolean value to indicate if the background worker process + is running. + pending_tasks: + type: integer + readOnly: true + description: Number of active background tasks + scheduled_tasks: + type: integer + readOnly: true + description: Number of scheduled background tasks + failed_tasks: + type: integer + readOnly: true + description: Number of failed background tasks + required: + - failed_tasks + - is_running + - pending_tasks + - scheduled_tasks + TemplateModelTypeEnum: + enum: + - build + - buildline + - company + - purchaseorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + - stocklocation + type: string + description: |- + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + TestEmail: + type: object + description: Serializer to send a test email. + properties: + email: + type: string + format: email + required: + - email + TransferOrder: + type: object + description: Serializer for a TransferOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: Additional status information for this item + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + take_from: + type: integer + nullable: true + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Destination for transferred items + destination_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + consume: + type: boolean + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + required: + - barcode_hash + - created_by + - pk + - reference + - status + TransferOrderAllocation: + type: object + description: |- + Serializer for the TransferOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + required: + - item + - line + - location + - order + - part + - pk + - quantity + TransferOrderAllocationItem: + type: object + description: A serializer for allocating a single stock-item against a TransferOrder + line item. + properties: + line_item: + type: integer + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - line_item + - quantity + - stock_item + TransferOrderComplete: + type: object + description: Serializer for completing a transfer order. + properties: + accept_incomplete_allocation: + type: boolean + default: false + description: Allow order to complete with incomplete allocations + TransferOrderLineItem: + type: object + description: Serializer for a TransferOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Transfer Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + transferred: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + required: + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order + - pk + - quantity + - transferred + TransferOrderLineItemAllocation: + type: object + description: DRF serializer for allocation of stock items against a transfer + order line item. + properties: + items: + type: array + items: + $ref: '#/components/schemas/TransferOrderAllocationItem' + required: + - items + TransferOrderSerialAllocation: + type: object + description: DRF serializer for allocation of serial numbers against a transfer + order. + properties: + line_item: + type: integer + quantity: + type: integer + minimum: 1 + serial_numbers: + type: string + description: Enter serial numbers to allocate + required: + - line_item + - quantity + - serial_numbers + TreePath: + type: object + description: Serializer field for representing a tree path. + properties: + pk: + type: integer + readOnly: true + name: + type: string + readOnly: true + required: + - name + - pk + UninstallStockItem: + type: object + description: API serializers for uninstalling an installed item from a stock + item. + properties: + location: + type: integer + description: Destination location for uninstalled item + note: + type: string + title: Notes + description: Add transaction note (optional) + required: + - location + Unit: + type: object + description: Serializer for the AllUnitListResponseSerializer. + properties: + name: + type: string + is_alias: + type: boolean + compatible_units: + type: array + items: + type: string + isdimensionless: + type: boolean + required: + - compatible_units + - is_alias + - isdimensionless + - name + User: + type: object + description: Serializer for a User. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + required: + - email + - first_name + - last_name + - pk + - username + UserCreate: + type: object + description: Serializer for creating a new User. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + required: + - email + - first_name + - groups + - last_name + - pk + - profile + - username + UserProfile: + type: object + description: Serializer for the UserProfile model. + properties: + language: + type: string + nullable: true + description: Preferred language for the user + maxLength: 10 + theme: + nullable: true + description: Settings for the web UI as JSON - do not edit manually! + widgets: + nullable: true + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + UserSetPassword: + type: object + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + required: + - password + UserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + user: + type: integer + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - typ + - type + - units + - user + - value + UserTypeEnum: + enum: + - bot + - internal + - external + - guest + type: string + description: |- + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + Version: + type: object + description: Serializer for server version. + properties: + server: + type: string + api: + type: integer + commit_hash: + type: string + commit_date: + type: string + commit_branch: + type: string + nullable: true + python: + type: string + django: + type: string + required: + - api + - commit_branch + - commit_date + - commit_hash + - django + - python + - server + VersionInformation: + type: object + description: Serializer for a single version. + properties: + version: + type: string + date: + type: string + format: date + gh: + type: string + nullable: true + text: + type: array + items: + type: string + latest: + type: boolean + required: + - date + - gh + - latest + - text + - version + VersionView: + type: object + description: Serializer for a single version. + properties: + dev: + type: boolean + up_to_date: + type: boolean + version: + $ref: '#/components/schemas/Version' + links: + $ref: '#/components/schemas/Link' + required: + - dev + - links + - up_to_date + - version + securitySchemes: + basicAuth: + type: http + scheme: basic + cookieAuth: + type: apiKey + in: cookie + name: sessionid + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: /o/authorize/ + tokenUrl: /o/token/ + refreshUrl: /o/revoke_token/ + scopes: + g:read: General Read scope + openid: OpenID Connect scope + a:staff: User Role Staff + a:superuser: User Role Superuser + r:view:admin: GET for Role Admin + r:view:part_category: GET for Role Part Categories + r:view:part: GET for Role Parts + r:view:stock_location: GET for Role Stock Locations + r:view:stock: GET for Role Stock Items + r:view:bom: GET for Role Bills of Material + r:view:build: GET for Role Build Orders + r:view:purchase_order: GET for Role Purchase Orders + r:view:sales_order: GET for Role Sales Orders + r:view:return_order: GET for Role Return Orders + r:view:transfer_order: GET for Role Transfer Orders + r:view:repair_order: GET for Role Repair Orders + r:add:admin: POST for Role Admin + r:add:part_category: POST for Role Part Categories + r:add:part: POST for Role Parts + r:add:stock_location: POST for Role Stock Locations + r:add:stock: POST for Role Stock Items + r:add:bom: POST for Role Bills of Material + r:add:build: POST for Role Build Orders + r:add:purchase_order: POST for Role Purchase Orders + r:add:sales_order: POST for Role Sales Orders + r:add:return_order: POST for Role Return Orders + r:add:transfer_order: POST for Role Transfer Orders + r:add:repair_order: POST for Role Repair Orders + r:change:admin: PUT / PATCH for Role Admin + r:change:part_category: PUT / PATCH for Role Part Categories + r:change:part: PUT / PATCH for Role Parts + r:change:stock_location: PUT / PATCH for Role Stock Locations + r:change:stock: PUT / PATCH for Role Stock Items + r:change:bom: PUT / PATCH for Role Bills of Material + r:change:build: PUT / PATCH for Role Build Orders + r:change:purchase_order: PUT / PATCH for Role Purchase Orders + r:change:sales_order: PUT / PATCH for Role Sales Orders + r:change:return_order: PUT / PATCH for Role Return Orders + r:change:transfer_order: PUT / PATCH for Role Transfer Orders + r:change:repair_order: PUT / PATCH for Role Repair Orders + r:delete:admin: DELETE for Role Admin + r:delete:part_category: DELETE for Role Part Categories + r:delete:part: DELETE for Role Parts + r:delete:stock_location: DELETE for Role Stock Locations + r:delete:stock: DELETE for Role Stock Items + r:delete:bom: DELETE for Role Bills of Material + r:delete:build: DELETE for Role Build Orders + r:delete:purchase_order: DELETE for Role Purchase Orders + r:delete:sales_order: DELETE for Role Sales Orders + r:delete:return_order: DELETE for Role Return Orders + r:delete:transfer_order: DELETE for Role Transfer Orders + r:delete:repair_order: DELETE for Role Repair Orders + clientCredentials: + tokenUrl: /o/token/ + refreshUrl: /o/revoke_token/ + scopes: + g:read: General Read scope + openid: OpenID Connect scope + a:staff: User Role Staff + a:superuser: User Role Superuser + r:view:admin: GET for Role Admin + r:view:part_category: GET for Role Part Categories + r:view:part: GET for Role Parts + r:view:stock_location: GET for Role Stock Locations + r:view:stock: GET for Role Stock Items + r:view:bom: GET for Role Bills of Material + r:view:build: GET for Role Build Orders + r:view:purchase_order: GET for Role Purchase Orders + r:view:sales_order: GET for Role Sales Orders + r:view:return_order: GET for Role Return Orders + r:view:transfer_order: GET for Role Transfer Orders + r:view:repair_order: GET for Role Repair Orders + r:add:admin: POST for Role Admin + r:add:part_category: POST for Role Part Categories + r:add:part: POST for Role Parts + r:add:stock_location: POST for Role Stock Locations + r:add:stock: POST for Role Stock Items + r:add:bom: POST for Role Bills of Material + r:add:build: POST for Role Build Orders + r:add:purchase_order: POST for Role Purchase Orders + r:add:sales_order: POST for Role Sales Orders + r:add:return_order: POST for Role Return Orders + r:add:transfer_order: POST for Role Transfer Orders + r:add:repair_order: POST for Role Repair Orders + r:change:admin: PUT / PATCH for Role Admin + r:change:part_category: PUT / PATCH for Role Part Categories + r:change:part: PUT / PATCH for Role Parts + r:change:stock_location: PUT / PATCH for Role Stock Locations + r:change:stock: PUT / PATCH for Role Stock Items + r:change:bom: PUT / PATCH for Role Bills of Material + r:change:build: PUT / PATCH for Role Build Orders + r:change:purchase_order: PUT / PATCH for Role Purchase Orders + r:change:sales_order: PUT / PATCH for Role Sales Orders + r:change:return_order: PUT / PATCH for Role Return Orders + r:change:transfer_order: PUT / PATCH for Role Transfer Orders + r:change:repair_order: PUT / PATCH for Role Repair Orders + r:delete:admin: DELETE for Role Admin + r:delete:part_category: DELETE for Role Part Categories + r:delete:part: DELETE for Role Parts + r:delete:stock_location: DELETE for Role Stock Locations + r:delete:stock: DELETE for Role Stock Items + r:delete:bom: DELETE for Role Bills of Material + r:delete:build: DELETE for Role Build Orders + r:delete:purchase_order: DELETE for Role Purchase Orders + r:delete:sales_order: DELETE for Role Sales Orders + r:delete:return_order: DELETE for Role Return Orders + r:delete:transfer_order: DELETE for Role Transfer Orders + r:delete:repair_order: DELETE for Role Repair Orders + tokenAuth: + type: apiKey + in: header + name: Authorization + description: Token-based authentication with required prefix "Token" +servers: +- url: http://localhost:8000 +externalDocs: + description: More information about InvenTree in the official docs + url: https://docs.inventree.org From a0806b0b21177271ad1e3ef208173e8baa746ad1 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 09:32:42 +0530 Subject: [PATCH 11/27] Fix: Regenerate API schema with exact CI formatting to resolve EOFError --- src/backend/InvenTree/schema.yml | 238 +++++++++++++++---------------- 1 file changed, 119 insertions(+), 119 deletions(-) diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml index 9235fca80d4b..16dcb4f40a71 100644 --- a/src/backend/InvenTree/schema.yml +++ b/src/backend/InvenTree/schema.yml @@ -30413,24 +30413,18 @@ components: format: double readOnly: true nullable: true - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true sub_part_detail: allOf: - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true title: Component - category_detail: - allOf: - - $ref: '#/components/schemas/Category' + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - title: Category part_detail: allOf: - $ref: '#/components/schemas/PartBrief' @@ -30443,6 +30437,12 @@ components: $ref: '#/components/schemas/BomItemSubstitute' readOnly: true nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category PatchedBomItemSubstitute: type: object description: Serializer for the BomItemSubstitute class. @@ -30675,12 +30675,6 @@ components: bom_reference: type: string readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part stock_item_detail: allOf: - $ref: '#/components/schemas/StockItem' @@ -30693,6 +30687,12 @@ components: readOnly: true nullable: true title: Build + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part location_detail: allOf: - $ref: '#/components/schemas/LocationBrief' @@ -30791,42 +30791,42 @@ components: type: number format: double readOnly: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' - readOnly: true - nullable: true - title: BOM Item - assembly_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly allocations: type: array items: $ref: '#/components/schemas/BuildItem' readOnly: true nullable: true + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true + nullable: true + title: BOM Item build_detail: allOf: - $ref: '#/components/schemas/Build' readOnly: true nullable: true title: Build + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part category_detail: allOf: - $ref: '#/components/schemas/Category' readOnly: true nullable: true title: Category - part_detail: + assembly_detail: allOf: - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - title: Part + title: Assembly PatchedCategory: type: object description: Serializer for PartCategory. @@ -31000,17 +31000,17 @@ components: type: string description: Company Tax ID maxLength: 50 - primary_address: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true + primary_address: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true PatchedContact: type: object description: Serializer class for the Contact model. @@ -31518,10 +31518,6 @@ components: - $ref: '#/components/schemas/StockLocationType' readOnly: true nullable: true - tags: - type: array - items: - type: string path: type: array items: @@ -31534,6 +31530,10 @@ components: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true + tags: + type: array + items: + type: string PatchedMachineConfig: type: object description: Serializer for a MachineConfig. @@ -31694,14 +31694,14 @@ components: nullable: true description: Markdown notes (optional) maxLength: 50000 - part_detail: + manufacturer_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - manufacturer_detail: + part_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true pretty_name: @@ -32191,6 +32191,12 @@ components: writeOnly: true default: true description: Copy parameter templates from selected part category + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true price_breaks: type: array items: @@ -32207,20 +32213,14 @@ components: - $ref: '#/components/schemas/Category' readOnly: true nullable: true - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true tags: type: array items: type: string - parameters: + category_path: type: array items: - $ref: '#/components/schemas/Parameter' + $ref: '#/components/schemas/TreePath' readOnly: true nullable: true PatchedPartBomValidate: @@ -33133,14 +33133,14 @@ components: - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - part_detail: + order_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/PurchaseOrder' readOnly: true nullable: true - order_detail: + part_detail: allOf: - - $ref: '#/components/schemas/PurchaseOrder' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true PatchedRepairOrder: @@ -33466,17 +33466,17 @@ components: readOnly: true nullable: true description: Timestamp of last update - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true PatchedReturnOrderExtraLine: type: object description: Serializer for a ReturnOrderExtraLine object. @@ -33632,14 +33632,14 @@ components: - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true - part_detail: + order_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/ReturnOrder' readOnly: true nullable: true - order_detail: + part_detail: allOf: - - $ref: '#/components/schemas/ReturnOrder' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true PatchedRuleSet: @@ -33859,17 +33859,17 @@ components: readOnly: true nullable: true description: Timestamp of last update - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true PatchedSalesOrderAllocation: type: object description: |- @@ -33922,6 +33922,11 @@ components: - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true customer_detail: allOf: - $ref: '#/components/schemas/CompanyBrief' @@ -33932,11 +33937,6 @@ components: - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true PatchedSalesOrderExtraLine: type: object description: Serializer for a SalesOrderExtraLine object. @@ -34097,9 +34097,9 @@ components: type: number format: double readOnly: true - customer_detail: + order_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/SalesOrder' readOnly: true nullable: true part_detail: @@ -34107,9 +34107,9 @@ components: - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - order_detail: + customer_detail: allOf: - - $ref: '#/components/schemas/SalesOrder' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true PatchedSalesOrderShipment: @@ -34189,17 +34189,17 @@ components: - $ref: '#/components/schemas/SalesOrder' readOnly: true nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true PatchedSelectionEntry: type: object description: Serializer for a selection entry. @@ -34491,12 +34491,6 @@ components: readOnly: true nullable: true title: Part - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - readOnly: true - nullable: true supplier_part_detail: allOf: - $ref: '#/components/schemas/SupplierPart' @@ -34509,16 +34503,22 @@ components: $ref: '#/components/schemas/TreePath' readOnly: true nullable: true + tags: + type: array + items: + type: string location_detail: allOf: - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true title: Location - tags: + tests: type: array items: - type: string + $ref: '#/components/schemas/StockItemTestResult' + readOnly: true + nullable: true PatchedStockItemTestResult: type: object description: Serializer for the StockItemTestResult model. @@ -34707,40 +34707,40 @@ components: type: string readOnly: true nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' - readOnly: true - nullable: true - manufacturer_part_detail: + manufacturer_detail: allOf: - - $ref: '#/components/schemas/ManufacturerPart' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - title: Manufacturer Part - manufacturer_detail: + title: Manufacturer + supplier_detail: allOf: - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - title: Manufacturer - tags: + title: Supplier + price_breaks: type: array items: - type: string + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true part_detail: allOf: - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true title: Part - supplier_detail: + tags: + type: array + items: + type: string + manufacturer_part_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/ManufacturerPart' readOnly: true nullable: true - title: Supplier + title: Manufacturer Part parameters: type: array items: @@ -34782,14 +34782,14 @@ components: readOnly: true nullable: true description: Timestamp of last update - part_detail: + supplier_detail: allOf: - - $ref: '#/components/schemas/SupplierPart' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - supplier_detail: + part_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true PatchedTransferOrder: @@ -34985,14 +34985,14 @@ components: location: type: integer readOnly: true - part_detail: + order_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/TransferOrder' readOnly: true nullable: true - order_detail: + part_detail: allOf: - - $ref: '#/components/schemas/TransferOrder' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true item_detail: @@ -35087,14 +35087,14 @@ components: type: number format: double readOnly: true - part_detail: + order_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/TransferOrder' readOnly: true nullable: true - order_detail: + part_detail: allOf: - - $ref: '#/components/schemas/TransferOrder' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true PatchedUserProfile: From 53b4db8579c7d93ee760d9cf9389a94045931f6d Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 09:50:23 +0530 Subject: [PATCH 12/27] Fix: Regenerate API schema using invoke task to match CI expectations --- src/backend/InvenTree/schema.yml | 26912 +++++++++++++++++------------ 1 file changed, 15847 insertions(+), 11065 deletions(-) diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml index 16dcb4f40a71..43d7011ca1f5 100644 --- a/src/backend/InvenTree/schema.yml +++ b/src/backend/InvenTree/schema.yml @@ -7619,7 +7619,11 @@ paths: - r:view:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' put: operationId: metadata_update description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ @@ -7642,6 +7646,18 @@ paths: required: true tags: - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Metadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/Metadata' + required: true security: - tokenAuth: [] - basicAuth: [] @@ -7661,7 +7677,11 @@ paths: - r:change:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' patch: operationId: metadata_partial_update description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ @@ -7684,6 +7704,17 @@ paths: required: true tags: - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMetadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMetadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMetadata' security: - tokenAuth: [] - basicAuth: [] @@ -7703,7 +7734,11 @@ paths: - r:change:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' /api/metadata/{model}/{id}/: get: operationId: metadata_pk_retrieve @@ -7740,7 +7775,11 @@ paths: - r:view:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' put: operationId: metadata_pk_update description: Perform a PUT request to update metadata for the given object. @@ -7757,6 +7796,18 @@ paths: required: true tags: - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Metadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/Metadata' + required: true security: - tokenAuth: [] - basicAuth: [] @@ -7776,7 +7827,11 @@ paths: - r:change:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' patch: operationId: metadata_pk_partial_update description: Perform a PATCH request to partially update metadata for the given @@ -7794,6 +7849,17 @@ paths: required: true tags: - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMetadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMetadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMetadata' security: - tokenAuth: [] - basicAuth: [] @@ -7813,7 +7879,11 @@ paths: - r:change:repair_order responses: '200': - description: No response body + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' /api/news/: get: operationId: news_list @@ -23177,4119 +23247,7458 @@ paths: '200': description: Any data can be posted to the endpoint - everything will be passed to the WebhookEndpoint model. -components: - schemas: - APISearchView: - type: object - description: Serializer for the APISearchView. - properties: - search: - type: string - search_regex: - type: boolean - default: false - search_whole: - type: boolean - default: false - search_notes: - type: boolean - default: false - limit: - type: integer - default: 1 - offset: - type: integer - default: 0 - required: - - search - AcceptOverallocatedEnum: - enum: - - reject - - accept - - trim - type: string - description: |- - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - ActionPlugin: - type: object - description: Serializer for the ActionPluginView responses. - properties: - action: - type: string - data: - type: object - additionalProperties: {} - required: - - action - - data - ActionPluginError: - type: object - description: Serializer for the ActionPluginView error responses. - properties: - error: - type: string - action: - type: string - required: - - error - Address: - type: object - description: Serializer for the Address Model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - link: - type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - required: - - company - - pk - - title - AddressBrief: - type: object - description: Serializer for Address Model (limited). - properties: - pk: - type: integer - readOnly: true - title: ID - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - required: - - pk - AllUnitListResponse: - type: object - description: Serializer for the AllUnitList. - properties: - default_system: - type: string - available_systems: - type: array - items: - type: string - available_units: - type: object - additionalProperties: - $ref: '#/components/schemas/Unit' - required: - - available_systems - - available_units - - default_system - ApiToken: - type: object - description: Serializer for the ApiToken model. - properties: + /api/auth/v1/config: + get: + summary: Get configuration + tags: + - Configuration + description: | + There are many configuration options that alter the functionality + and behavior of django-allauth, some of which can also impact the + frontend. Therefore, relevant configuration options are exposed via + this endpoint. The data returned is not user/authentication + dependent. Hence, it suffices to only fetch this data once at boot + time of your application. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Configuration' + operationId: allauth_config_get + /api/auth/v1/auth/login: + post: + tags: + - 'Authentication: Account' + summary: Login + description: | + Login using a username-password or email-password combination. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Login' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + password_mismatch: + $ref: '#/components/examples/allauth.PasswordMismatch' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + '409': + description: | + Conflict. For example, when logging in when a user is already logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_login_post + /api/auth/v1/auth/signup: + post: + tags: + - 'Authentication: Account' + summary: Signup + description: | + Whether or not `username`, `email`, `phone` or combination of those are + required depends on the configuration of django-allauth. Additionally, + if a custom signup form is used there may be other custom properties + required. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Signup' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. For example, when signing up while user is logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_signup_post + /api/auth/v1/auth/email/verify: + get: + tags: + - 'Authentication: Account' + summary: Get email verification information + description: | + Obtain email verification information, given the token that was sent to + the user by email. + parameters: + - $ref: '#/components/parameters/allauth.EmailVerificationKey' + responses: + '200': + $ref: '#/components/responses/allauth.EmailVerificationInfo' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_email_verify_get + post: + tags: + - 'Authentication: Account' + summary: Verify an email + description: | + Complete the email verification process. Depending on the configuration, + email addresses are either verified by opening a link that is sent to + their email address, or, by inputting a code that is sent. On the API, + both cases are handled identically. Meaning, the required key is either + the one from the link, or, the code itself. + + Note that a status code of 401 does not imply failure. It indicates that + the email verification was successful, yet, the user is still not signed + in. For example, in case `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` is set to + `False`, a 401 is returned when verifying as part of login/signup. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.VerifyEmail' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_email_verify_post + /api/auth/v1/auth/email/verify/resend: + post: + tags: + - 'Authentication: Account' + summary: Resend email verification code + description: | + Requests a new email verification code. + Requires `ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True`. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + '429': + $ref: '#/components/responses/allauth.TooManyRequests' + operationId: allauth_auth_email_verify_resend_post + /api/auth/v1/auth/phone/verify: + post: + tags: + - 'Authentication: Account' + summary: Verify a phone number + description: | + Complete the phone number verification process. Note that a status code + of 401 does not imply failure. It merely indicates that the phone number + verification was successful, yet, the user is still not signed in. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.VerifyPhone' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + '409': + description: | + Conflict. The phone verification flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_phone_verify_post + /api/auth/v1/auth/phone/verify/resend: + post: + tags: + - 'Authentication: Account' + summary: Resend phone number verification code + description: | + Requests a new phone number verification code. + Requires `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True`. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '409': + description: | + Conflict. The phone verification flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + '429': + $ref: '#/components/responses/allauth.TooManyRequests' + operationId: allauth_auth_phone_verify_resend_post + /api/auth/v1/auth/reauthenticate: + post: + tags: + - 'Authentication: Account' + summary: Reauthenticate + description: | + In order to safeguard the account, some actions require the user to be + recently authenticated. If you try to perform such an action without + having been recently authenticated, a `401` status is returned, listing + flows that can be performed to reauthenticate. One such flow is the flow + with ID `reauthenticate`, which allows for the user to input the + password. This is the endpoint related towards that flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Reauthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.IncorrectPassword' + operationId: allauth_auth_reauthenticate_post + /api/auth/v1/auth/password/request: + post: + summary: Request password + description: | + Initiates the password reset procedure. Depending on whether or not + `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED` is `True`, the procedure is + either stateless or stateful. + + In case codes are used, it is stateful, and a new + `password_reset_by_code` flow is started. In this case, on a successful + password reset request, you will receive a 401 indicating the pending + status of this flow. + + In case password reset is configured to use (stateless) links, you will + receive a 200 on a successful password reset request. + tags: + - 'Authentication: Password Reset' + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.RequestPassword' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_password_request_post + /api/auth/v1/auth/password/reset: + get: + summary: Get password reset information + description: | + Used to obtain information on and validate a password reset key. The + key passed is either the key encoded in the password reset URL that the + user has received per email, or, the password reset code in case of + `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED`. Note that in case of a code, + the number of requests you can make is limited (by + `ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS`). + tags: + - 'Authentication: Password Reset' + parameters: + - $ref: '#/components/parameters/allauth.PasswordResetKey' + responses: + '200': + $ref: '#/components/responses/allauth.PasswordResetInfo' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + password_reset_key_invalid: + $ref: '#/components/examples/allauth.InvalidPasswordResetKey' + '409': + description: | + Conflict. There is no password reset (by code) flow pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_password_reset_get + post: + summary: Reset password + description: | + Perform the password reset, by handing over the password reset key and + the new password. After successfully completing the password reset, the + user is either logged in (in case `ACCOUNT_LOGIN_ON_PASSWORD_RESET` is + `True`), or, the user will need to proceed to the login page. In case + of the former, a `200` status code is returned, in case of the latter a + 401. + tags: + - 'Authentication: Password Reset' + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ResetPassword' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.Authentication' + '409': + description: | + Conflict. There is no password reset (by code) flow pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_password_reset_post + /api/auth/v1/auth/provider/redirect: + post: + tags: + - 'Authentication: Providers' + summary: Provider redirect + description: | + Initiates the third-party provider authentication redirect flow. As calling + this endpoint results in a user facing redirect (302), this call is only + available in a browser, and must be called in a synchronous (non-XHR) + manner. + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderRedirect' + responses: + '302': + description: The provider authorization URL to which the client should be + redirected. + headers: + location: + schema: + type: string + description: The redirect URL. + operationId: allauth_auth_provider_redirect_post + /api/auth/v1/auth/provider/token: + post: + tags: + - 'Authentication: Providers' + summary: Provider token + description: | + Authenticates with a third-party provider using provider tokens received + by other means. For example, in case of a mobile app, the authentication + flow runs completely on the device itself, without any interaction with + the API. Then, when the (device) authentication completes and the mobile + app receives an access and/or ID token, it can hand over these tokens + via this endpoint to authenticate on the server. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderToken' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_token: + $ref: '#/components/examples/allauth.InvalidProviderToken' + '401': + description: Not authenticated, more steps are required to be completed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + operationId: allauth_auth_provider_token_post + /api/auth/v1/auth/provider/signup: + get: + tags: + - 'Authentication: Providers' + summary: Provider signup information + description: | + If, while signing up using a third-party provider account, there is + insufficient information received from the provider to automatically + complete the signup process, an additional step is needed to complete + the missing data before the user is fully signed up and authenticated. + The information available so far, such as the pending provider account, + can be retrieved via this endpoint. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.ProviderSignup' + '409': + description: | + Conflict. The provider signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_provider_signup_get + post: + tags: + - 'Authentication: Providers' + summary: Provider signup + description: | + If, while signing up using a third-party provider account, there is + insufficient information received from the provider to automatically + complete the signup process, an additional step is needed to complete + the missing data before the user is fully signed up and authenticated. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderSignup' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: Not authenticated, more steps are required to be completed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. The provider signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_provider_signup_post + /api/auth/v1/auth/2fa/authenticate: + post: + tags: + - 'Authentication: 2FA' + summary: Two-factor authentication + description: | + If, during authentication, a response with status 401 is encountered where one of the pending + flows has ID `mfa_authenticate`, that indicates that the Two-Factor Authentication stage needs to + be completed. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFAAuthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_2fa_authenticate_post + /api/auth/v1/auth/2fa/reauthenticate: + post: + tags: + - 'Authentication: 2FA' + summary: Reauthenticate using 2FA + description: | + In order to safeguard the account, some actions require the user to be + recently authenticated. If you try to perform such an action without + having been recently authenticated, a `401` status is returned, listing + flows that can be performed to reauthenticate. One such flow is the flow + with ID `mfa_reauthenticate`, which allows for the user to input an + authenticator code (e.g. TOTP or recovery code). This is the endpoint + related towards that flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFAAuthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + operationId: allauth_auth_2fa_reauthenticate_post + /api/auth/v1/auth/2fa/trust: + post: + tags: + - 'Authentication: 2FA' + summary: Trust this browser + description: | + If "Trust this browser?" is enabled (`MFA_TRUST_ENABLED`), the + `mfa_trust` flow activates after the user completes the MFA + authentication flow, offering to skip MFA for this particular + browser. This endpoint is used to complete the `mfa_trust` flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFATrust' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_2fa_trust_post + /api/auth/v1/auth/webauthn/authenticate: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for 2FA + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_authenticate_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Perform 2FA using WebAuthn + parameters: [] + description: | + Perform Two-Factor Authentication using a WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.AuthenticateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_webauthn_authenticate_post + /api/auth/v1/auth/webauthn/reauthenticate: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for reauthentication + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_reauthenticate_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Reauthenticate using WebAuthn + parameters: [] + description: | + Reauthenticate the user using a WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.ReauthenticateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_webauthn_reauthenticate_post + /api/auth/v1/auth/webauthn/login: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for login + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_login_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Login using WebAuthn + parameters: [] + description: | + Login using a WebAuthn credential (Passkey). Both 200 and 401 can be + expected after a successful request. The 401 can, for example, occur + when the credential passed was valid, but the email attached to the + account still requires verification. + requestBody: + $ref: '#/components/requestBodies/allauth.LoginWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + operationId: allauth_auth_webauthn_login_post + /api/auth/v1/auth/webauthn/signup: + post: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Initiate the passkey signup flow + parameters: [] + description: | + You initiate the passkey signup flow by inputting (`POST`) the required properties (e.g. email) + similar to the regular account signup, except that the `password` is to be left out. + The user will then be required to verify the email address, after which WebAuthn credential + creation options can be retrieved (`GET`) and used to actually complete (`PUT`) the flow. + requestBody: + $ref: '#/components/requestBodies/allauth.PasskeySignup' + responses: + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated, email verification pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. For example, when signing up while user is logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_post + get: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Get passkey credential request options + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + '409': + description: | + Conflict. For example, when the passkey signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_get + put: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Complete the passkey signup flow + parameters: [] + description: | + Complete the passkey signup flow by handing over the WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '409': + description: | + Conflict. For example, when the passkey signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_put + /api/auth/v1/auth/code/request: + post: + tags: + - 'Authentication: Login By Code' + summary: Request login code + description: | + Request a "special" login code that is sent to the user by email. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.RequestLoginCode' + responses: + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_login_by_code: + $ref: '#/components/examples/allauth.UnauthenticatedPendingLoginByCode' + operationId: allauth_auth_code_request_post + /api/auth/v1/auth/code/confirm: + post: + tags: + - 'Authentication: Login By Code' + summary: Confirm login code + description: | + Use this endpoint to pass along the received "special" login code. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ConfirmLoginCode' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByCode' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + '409': + description: | + Conflict. The "login by code" flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_code_confirm_post + /api/auth/v1/account/providers: + get: + tags: + - 'Account: Providers' + summary: List the connected third-party provider accounts + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.ProviderAccounts' + operationId: allauth_account_providers_get + delete: + tags: + - 'Account: Providers' + summary: | + Disconnect a third-party provider account + description: | + Disconnect a third-party provider account, returning the remaining + accounts that are still connected. The disconnect is not allowed if it + would leave the account unusable. For example, if no password was + set up yet. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderAccount' + responses: + '200': + $ref: '#/components/responses/allauth.ProviderAccounts' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + no_password: + $ref: '#/components/examples/allauth.DisconnectNotAllowedNoPassword' + no_email: + $ref: '#/components/examples/allauth.DisconnectNotAllowedNoVerifiedEmail' + operationId: allauth_account_providers_delete + /api/auth/v1/account/email: + get: + tags: + - 'Account: Email' + summary: List email addresses + description: | + Retrieves the list of email addresses of the account. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_email_get + post: + tags: + - 'Account: Email' + summary: | + Add/Change email address + description: | + The following functionality is available: + + - Adding a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = False`). + - Change to a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = True`). + - Change to a new email address during the email verification process at signup (`ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True`). + + In all cases, an email verification mail will be sent containing a link or code that needs to be verified. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' + '409': + description: | + Conflict. For example, when no user is authenticated and no email verification flow is pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_account_email_post + put: + tags: + - 'Account: Email' + summary: Request email verification + description: | + Requests for (another) email verification email to be sent. Note that + sending emails is rate limited, so when you send too many requests the + email will not be sent. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + '403': + description: | + Too many email verification mails were already sent. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + operationId: allauth_account_email_put + patch: + tags: + - 'Account: Email' + summary: Change primary email address + description: | + Used to change primary email address to a different one. Note that only verified email addresses + can be marked as primary. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MarkPrimaryEmail' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + operationId: allauth_account_email_patch + delete: + tags: + - 'Account: Email' + summary: Remove an email address + description: | + Used to remove an email address. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + operationId: allauth_account_email_delete + /api/auth/v1/account/phone: + get: + tags: + - 'Account: Phone' + summary: Get the phone number + description: | + Retrieves the phone number of the account, if any. Note that while the + endpoint returns a list of phone numbers, at most one entry is returned. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.PhoneNumbers' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_phone_get + post: + tags: + - 'Account: Phone' + summary: | + Change the phone number + description: | + The following functionality is available: + + - Initiate the phone number change process for signed in users. + - Change to a new phone number during the phone number verification + process at signup for unauthenticated users. Note that this requires: + `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True`. + + In both cases, after posting a new phone number, proceed with the phone + verification endpoint to confirm the change of the phone number by + posting the verification code. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Phone' + responses: + '202': + description: Phone number change process initiated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PhoneNumberChangeResponse' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' + '409': + description: | + Conflict. For example, when no user is authenticated and no phone verification flow is pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_account_phone_post + /api/auth/v1/account/authenticators: + get: + tags: + - 'Account: 2FA' + summary: List authenticators + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Authenticators' + '401': + $ref: '#/components/responses/allauth.Authentication' + '410': + $ref: '#/components/responses/allauth.SessionGone' + operationId: allauth_account_authenticators_get + /api/auth/v1/account/authenticators/totp: + get: + tags: + - 'Account: 2FA' + summary: TOTP authenticator status + description: | + Retrieve the information about the current TOTP authenticator, if any. + parameters: [] + responses: + '404': + $ref: '#/components/responses/allauth.TOTPAuthenticatorNotFound' + '200': + $ref: '#/components/responses/allauth.TOTPAuthenticator' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_totp_get + post: + tags: + - 'Account: 2FA' + summary: Activate TOTP + description: | + The code should be provided from the consuming TOTP authenticator + application which was generated using the TOTP authenticator secret + retrieved from the TOTP authenticator status endpoint. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.SetupTOTP' + responses: + '200': + $ref: '#/components/responses/allauth.TOTPAuthenticator' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_totp_post + delete: + tags: + - 'Account: 2FA' + summary: Deactivate TOTP + description: | + Deactivates TOTP authentication. If the user authentication is not + sufficiently recent, a reauthentication flow (`401`) will is presented. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_totp_delete + /api/auth/v1/account/authenticators/recovery-codes: + get: + tags: + - 'Account: 2FA' + summary: List recovery codes + description: | + List recovery codes. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.RecoveryCodes' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '404': + $ref: '#/components/responses/allauth.NotFound' + operationId: allauth_account_authenticators_recovery-codes_get + post: + tags: + - 'Account: 2FA' + summary: Regenerate recovery codes + parameters: [] + responses: + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.CannotGenerateRecoveryCodes' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_recovery-codes_post + /api/auth/v1/account/authenticators/webauthn: + get: + tags: + - 'Account: WebAuthn' + summary: | + Get WebAuthn credential creation options + parameters: + - $ref: '#/components/parameters/allauth.PasswordLess' + description: | + Returns the WebAuthn credential creation options, that can be + processed using `parseCreationOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnCreationOptionsResponse' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_webauthn_get + put: + tags: + - 'Account: WebAuthn' + summary: | + Rename a WebAuthn credential + description: | + You can alter the name of a WebAuthn credential by PUT'ting the ID and + name of the authenticator representing that credential. You can obtain + the credentials via the "List authenticators" endpoint. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.UpdateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnAuthenticator' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_webauthn_put + delete: + tags: + - 'Account: WebAuthn' + summary: | + Delete a WebAuthn credential + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.DeleteWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_webauthn_delete + post: + tags: + - 'Account: WebAuthn' + summary: | + Add a WebAuthn credential + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' + responses: + '200': + $ref: '#/components/responses/allauth.AddWebAuthnAuthenticator' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_webauthn_post + /api/auth/v1/auth/session: + get: + tags: + - 'Authentication: Current Session' + summary: | + Get authentication status + description: | + Retrieve information about the authentication status for the current + session. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '401': + $ref: '#/components/responses/allauth.Authentication' + '410': + $ref: '#/components/responses/allauth.SessionGone' + operationId: allauth_auth_session_get + delete: + tags: + - 'Authentication: Current Session' + summary: Logout + description: | + Logs out the user from the current session. + parameters: [] + responses: + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + operationId: allauth_auth_session_delete + /api/auth/v1/tokens/refresh: + post: + tags: + - Tokens + summary: | + Refresh the access token + description: | + Used to retrieve a new access token. Depending on `settings.HEADLESS_JWT_ROTATE_REFRESH_TOKEN`, + a new refresh token is returned as well. + requestBody: + $ref: '#/components/requestBodies/allauth.RefreshToken' + responses: + '200': + $ref: '#/components/responses/allauth.RefreshToken' + '400': + description: The refresh token is invalid or expired. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_tokens_refresh_post + /api/auth/v1/account/password/change: + post: + tags: + - 'Account: Password' + summary: Change password + description: | + In order to change the password of an account, the current and new + password must be provider. However, accounts that were created by + signing up using a third-party provider do not have a password set. In + that case, the current password is not required. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ChangePassword' + responses: + '400': + $ref: '#/components/responses/allauth.Error' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_password_change_post + /api/auth/v1/auth/sessions: + get: + tags: + - Sessions + summary: List sessions + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Sessions' + operationId: allauth_auth_sessions_get + delete: + tags: + - Sessions + summary: End one or more sessions + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.EndSessions' + responses: + '200': + $ref: '#/components/responses/allauth.Sessions' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_sessions_delete +components: + examples: + allauth.AuthenticatedByCode: + summary: | + Authenticated by code. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: code + at: 1711555057.065702 + email: email@domain.org + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AuthenticatedByPassword: + summary: | + Authenticated by password. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AuthenticatedByPasswordAnd2FA: + summary: | + Fully authenticated using by password and 2FA. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.CannotGenerateRecoveryCodes: + summary: | + Unable to generate recovery codes. + value: + status: 400 + errors: + - message: | + You cannot deactivate two-factor authentication. + code: cannot_generate_recovery_codes + allauth.DisconnectNotAllowedNoPassword: + summary: Account without a password. + value: + status: 400 + errors: + - message: Your account has no password set up. + code: no_password + param: account + allauth.DisconnectNotAllowedNoVerifiedEmail: + summary: Account without a verified email. + value: + status: 400 + errors: + - message: Your account has no verified email address. + code: no_verified_email + param: account + allauth.IncorrectPassword: + value: + status: 400 + errors: + - message: Incorrect password. + param: password + code: incorrect_password + allauth.InvalidAuthenticatorCode: + summary: | + An error response indicating that the provided code is incorrect. + value: + status: 400 + errors: + - message: Incorrect code. + code: incorrect_code + param: code + allauth.InvalidEmail: + value: + status: 400 + errors: + - message: Enter a valid email address. + code: invalid + param: email + allauth.InvalidEmailVerificationKey: + summary: | + Email verification key invalid. + value: + status: 400 + errors: + - message: Invalid or expired key. + code: invalid + param: key + allauth.InvalidPasswordResetKey: + summary: | + Password reset key invalid. + value: + status: 400 + errors: + - message: The password reset token was invalid. + code: token_invalid + param: key + allauth.InvalidProviderToken: + summary: | + Provider token invalid. + value: + status: 400 + errors: + - message: The token was invalid. + code: invalid + param: token + allauth.PasswordMismatch: + value: + status: 400 + errors: + - message: The email address and/or password you specified are not correct. + code: email_password_mismatch + param: password + allauth.ReauthenticationRequired: + summary: | + Reauthentication required + value: + status: 401 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + flows: + - id: reauthenticate + - id: mfa_reauthenticate + meta: + is_authenticated: true + allauth.UnauthenticatedInitial: + summary: | + Unauthenticated: Initial + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + meta: + is_authenticated: false + allauth.UnauthenticatedPending2FA: + summary: | + Unauthenticated: pending 2FA + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: mfa_authenticate + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingEmailVerification: + summary: | + Unauthenticated: pending email verification + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: verify_email + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingLoginByCode: + summary: | + Unauthenticated: pending login by code + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: mfa_authenticate + - id: login_by_code + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingProviderSignup: + summary: | + Unauthenticated: pending provider signup + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: provider_signup + provider: + id: google + name: Google + client_id: 123.apps.googleusercontent.com + flows: + - provider_redirect + - provider_token + is_pending: true + meta: + is_authenticated: false + allauth.User: + value: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + parameters: + allauth.EmailVerificationKey: + in: header + name: X-Email-Verification-Key + schema: + type: string + required: true + description: The email verification key + allauth.PasswordLess: + in: query + name: passwordless + required: false + schema: + type: boolean + allowEmptyValue: true + description: | + When present (regardless of its value), enables passwordless sign-in via a WebAuthn credential (Passkey), + but may enforce additional multi-factor authentication (MFA) requirements. Omit the parameter to disable. + allauth.PasswordResetKey: + in: header + name: X-Password-Reset-Key + schema: + type: string + required: true + description: The password reset key + requestBodies: + allauth.AddWebAuthnAuthenticator: + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: Master key + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.AuthenticateWebAuthn: + description: Authenticate using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.ChangePassword: + content: + application/json: + schema: + type: object + properties: + current_password: + $ref: '#/components/schemas/allauth.Password' + new_password: + type: string + description: | + The current password. + example: Aberto! + required: + - new_password + allauth.ConfirmLoginCode: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConfirmLoginCode' + allauth.DeleteWebAuthn: + content: + application/json: + schema: + type: object + properties: + authenticators: + description: | + The IDs of the authenticator that are to be deleted. + type: array + items: + $ref: '#/components/schemas/allauth.AuthenticatorID' + required: + - authenticators + allauth.Email: + content: + application/json: + schema: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.EndSessions: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.EndSessions' + allauth.Login: + description: Login. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Login' + allauth.LoginWebAuthn: + description: Login using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.MFAAuthenticate: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.MFAAuthenticate' + allauth.MFATrust: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.MFATrust' + allauth.MarkPrimaryEmail: + content: + application/json: + schema: + type: object + properties: + email: + type: string + description: | + An email address. + example: email@domain.org + primary: + type: boolean + enum: + - true + description: | + Primary flag. + required: + - email + - primary + allauth.PasskeySignup: + description: Signup using a passkey + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PasskeySignup' + allauth.Phone: + content: + application/json: + schema: + type: object + properties: + phone: + type: string + example: '+314159265359' + required: + - phone + allauth.ProviderAccount: + content: + application/json: + schema: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + account: + $ref: '#/components/schemas/allauth.ProviderAccountID' + required: + - account + - provider + allauth.ProviderRedirect: + required: true + description: | + Initiate the provider redirect flow. + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/allauth.ProviderRedirect' + allauth.ProviderSignup: + description: Provider signup. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ProviderSignup' + allauth.ProviderToken: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ProviderToken' + allauth.Reauthenticate: + description: Reauthenticate. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Reauthenticate' + allauth.ReauthenticateWebAuthn: + description: Reauthenticate using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.RefreshToken: + content: + application/json: + schema: + type: object + properties: + refresh_token: + $ref: '#/components/schemas/allauth.RefreshToken' + required: + - refresh_token + allauth.RequestLoginCode: + description: Request a login code. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.RequestLoginCode' + allauth.RequestPassword: + description: Request password. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.RequestPassword' + allauth.ResetPassword: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ResetPassword' + allauth.SetupTOTP: + content: + application/json: + schema: + type: object + properties: + code: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - code + allauth.Signup: + description: Signup + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Signup' + allauth.UpdateWebAuthn: + content: + application/json: + schema: + type: object + properties: + id: + $ref: '#/components/schemas/allauth.AuthenticatorID' + name: + type: string + example: Master key + allauth.VerifyEmail: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.VerifyEmail' + allauth.VerifyPhone: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.VerifyPhone' + responses: + allauth.AddAuthenticatorConflict: + description: | + The account prohibits adding an authenticator, e.g. because of an unverified email address. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + allauth.AddWebAuthnAuthenticator: + description: A WebAuthn authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + meta: + type: object + properties: + recovery_codes_generated: + type: boolean + description: | + Whether or not recovery codes where generated automatically. + required: + - status + - data + - meta + allauth.Authenticated: + description: The user is authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + allauth.AuthenticatedByCode: + description: | + Authenticated by code. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByCode' + allauth.AuthenticatedByPassword: + description: | + Authenticated by password. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByPassword' + allauth.AuthenticatedByPasswordAnd2FA: + description: | + Authenticated by password and 2FA. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByPasswordAnd2FA' + allauth.Authentication: + description: Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_initial: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + unauthenticated_pending_provider_signup: + $ref: '#/components/examples/allauth.UnauthenticatedPendingProviderSignup' + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + reauthentication_required: + $ref: '#/components/examples/allauth.ReauthenticationRequired' + allauth.AuthenticationOrReauthentication: + description: | + The response indicates authentication or re-authentication is required. + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/allauth.AuthenticationResponse' + - $ref: '#/components/schemas/allauth.ReauthenticationResponse' + allauth.Authenticators: + description: | + List of authenticators. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.AuthenticatorList' + required: + - status + - data + allauth.Configuration: + description: | + The django-allauth configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConfigurationResponse' + allauth.EmailAddresses: + description: | + List of email addresses. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.EmailAddress' + required: + - status + - data + allauth.EmailVerificationInfo: + description: Email verification information. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.EmailVerificationInfo' + allauth.Error: + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + allauth.Forbidden: + description: | + A forbidden response. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + allauth.NotFound: + description: | + Not found. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 404 + required: + - status + allauth.PasswordResetInfo: + description: Information about the password reset key. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + user: + $ref: '#/components/schemas/allauth.User' + required: + - status + - data + allauth.PhoneNumbers: + description: | + List of phone numbers. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PhoneNumbersResponse' + allauth.ProviderAccounts: + description: | + List of third-party provider accounts. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.ProviderAccount' + required: + - status + - data + allauth.ProviderSignup: + description: | + Information relating to the pending provider signup. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + email: + type: array + items: + $ref: '#/components/schemas/allauth.EmailAddress' + account: + $ref: '#/components/schemas/allauth.ProviderAccount' + user: + $ref: '#/components/schemas/allauth.User' + required: + - email + - account + - user + required: + - status + - data + allauth.ReauthenticationRequired: + description: | + The response indicates reauthentication is required. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ReauthenticationResponse' + examples: + reauthentication_required: + summary: | + Reauthentication required + value: + status: 401 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + flows: + - id: reauthenticate + - id: mfa_reauthenticate + meta: + is_authenticated: true + allauth.RecoveryCodes: + description: | + Information on the recovery codes. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.SensitiveRecoveryCodesAuthenticator' + required: + - status + - data + allauth.RefreshToken: + description: A new access token (and optionally new refresh token). + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + access_token: + $ref: '#/components/schemas/allauth.AccessToken' + refresh_token: + $ref: '#/components/schemas/allauth.RefreshToken' + required: + - access_token + required: + - data + - status + allauth.SessionGone: + description: | + The response indicates session is invalid or no longer exists. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.SessionGoneResponse' + examples: + unauth: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + allauth.Sessions: + description: | + List of sessions. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.Session' + required: + - status + - data + allauth.StatusOK: + description: | + A success response. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + required: + - status + allauth.TOTPAuthenticator: + description: | + Information on the TOTP authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + meta: + properties: + recovery_codes_generated: + description: Whether or not recovery codes where generated automatically. + type: boolean + type: object + data: + $ref: '#/components/schemas/allauth.TOTPAuthenticator' + required: + - status + - data + allauth.TOTPAuthenticatorNotFound: + description: | + No TOTP authenticator has been set up. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 404 + meta: + type: object + properties: + secret: + type: string + description: | + A TOTP secret that can be used to setup a new authenticator. + example: J4ZKKXTK7NOVU7EPUVY23LCDV4T2QZYM + totp_url: + type: string + description: | + otpauth URI from which a QR code can be generated and scanned by OTP clients. + example: otpauth://totp/Example:alice@fsf.org?secret=JBSWY3DPEHPK3PXP&issuer=Example + required: + - secret + - totp_url + required: + - status + - meta + allauth.TooManyRequests: + description: | + Too many requests. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 429 + required: + - status + allauth.Unauthenticated: + description: | + There is no authenticated session. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauth: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + allauth.WebAuthnAuthenticator: + description: A WebAuthn authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + required: + - status + - data + allauth.WebAuthnCreationOptionsResponse: + description: WebAuthn credential creation options. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnCredentialCreationOptions' + required: + - status + - data + allauth.WebAuthnRequestOptionsResponse: + description: WebAuthn credential request options. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnCredentialRequestOptions' + required: + - status + - data + schemas: + APISearchView: + type: object + description: Serializer for the APISearchView. + properties: + search: + type: string + search_regex: + type: boolean + default: false + search_whole: + type: boolean + default: false + search_notes: + type: boolean + default: false + limit: + type: integer + default: 1 + offset: + type: integer + default: 0 + required: + - search + AcceptOverallocatedEnum: + enum: + - reject + - accept + - trim + type: string + description: |- + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + ActionPlugin: + type: object + description: Serializer for the ActionPluginView responses. + properties: + action: + type: string + data: + type: object + additionalProperties: {} + required: + - action + - data + ActionPluginError: + type: object + description: Serializer for the ActionPluginView error responses. + properties: + error: + type: string + action: + type: string + required: + - error + Address: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + description: Select company + title: + type: string + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: + type: boolean + title: Primary address + description: Set as primary address + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + link: + type: string + format: uri + description: Link to address information (external) + maxLength: 2000 + required: + - company + - pk + - title + AddressBrief: + type: object + description: Serializer for Address Model (limited). + properties: + pk: + type: integer + readOnly: true + title: ID + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + required: + - pk + AllUnitListResponse: + type: object + description: Serializer for the AllUnitList. + properties: + default_system: + type: string + available_systems: + type: array + items: + type: string + available_units: + type: object + additionalProperties: + $ref: '#/components/schemas/Unit' + required: + - available_systems + - available_units + - default_system + Allauth.AuthenticationMethodMethodEnum: + type: string + enum: + - password + Allauth.ConflictResponseStatusEnum: + type: integer + enum: + - 409 + Allauth.ErrorResponseStatusEnum: + type: integer + enum: + - 400 + Allauth.ForbiddenResponseStatusEnum: + type: integer + enum: + - 403 + Allauth.RecoveryCodesAuthenticatorTypeEnum: + type: string + enum: + - recovery_codes + Allauth.SessionGoneResponseStatusEnum: + type: integer + enum: + - 410 + Allauth.TOTPAuthenticatorTypeEnum: + type: string + enum: + - totp + Allauth.WebAuthnAuthenticatorTypeEnum: + type: string + enum: + - webauthn + ApiToken: + type: object + description: Serializer for the ApiToken model. + properties: created: type: string format: date-time readOnly: true - expiry: - type: string - format: date - title: Expiry Date - description: Token expiry date - id: + expiry: + type: string + format: date + title: Expiry Date + description: Token expiry date + id: + type: integer + readOnly: true + last_seen: + type: string + format: date + nullable: true + description: Last time the token was used + name: + type: string + title: Token Name + description: Custom token name + maxLength: 100 + token: + type: string + description: |- + Provide a redacted version of the token. + + The *raw* key value should never be displayed anywhere! + readOnly: true + active: + type: boolean + description: Test if this token is active. + readOnly: true + revoked: + type: boolean + description: Token has been revoked + user: + type: integer + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + in_use: + type: boolean + description: Return True if the token is currently used to call the endpoint. + readOnly: true + required: + - active + - created + - id + - in_use + - token + - user_detail + Attachment: + type: object + description: Serializer class for the Attachment model. + properties: + pk: + type: integer + readOnly: true + title: ID + attachment: + type: string + format: uri + nullable: true + thumbnail: + type: string + format: uri + readOnly: true + nullable: true + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: + type: boolean + readOnly: true + description: True if this attachment is a valid image file + upload_date: + type: string + format: date + readOnly: true + upload_user: + type: integer + readOnly: true + nullable: true + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + tags: + type: array + items: + type: string + required: + - file_size + - is_image + - model_id + - model_type + - pk + - upload_date + - user_detail + AttachmentModelTypeEnum: + enum: + - build + - company + - manufacturerpart + - supplierpart + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + type: string + description: |- + * `build` - Build Order + * `company` - Company + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + Barcode: + type: object + description: Generic serializer for receiving barcode data. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + required: + - barcode + BarcodeAssign: + type: object + description: Serializer class for linking a barcode to an internal model. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + required: + - barcode + BarcodeGenerate: + type: object + description: Serializer for generating a barcode. + properties: + model: + type: string + description: Model name to generate barcode for + pk: + type: integer + description: Primary key of model object to generate barcode for + required: + - model + - pk + BarcodePOAllocate: + type: object + description: |- + Serializer for allocating items against a purchase order. + + The scanned barcode could be a Part, ManufacturerPart or SupplierPart object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + purchase_order: + type: integer + description: Purchase Order to allocate items against + required: + - barcode + - purchase_order + BarcodePOReceive: + type: object + description: |- + Serializer for receiving items against a purchase order. + + The following additional fields may be specified: + + - purchase_order: PurchaseOrder object to receive items against + - location: Location to receive items into + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + supplier: + type: integer + nullable: true + description: Supplier to receive items from + purchase_order: + type: integer + nullable: true + description: PurchaseOrder to receive items against + location: + type: integer + nullable: true + description: Location to receive items into + line_item: + type: integer + nullable: true + description: Purchase order line item to receive items against + auto_allocate: + type: boolean + default: true + description: Automatically allocate stock items to the purchase order + required: + - barcode + BarcodeSOAllocate: + type: object + description: |- + Serializr for allocating stock items to a sales order. + + The scanned barcode must map to a StockItem object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + sales_order: + type: integer + description: Sales Order to allocate items against + line: + type: integer + nullable: true + description: Sales order line item to allocate items against + shipment: + type: integer + nullable: true + description: Sales order shipment to allocate items against + quantity: + type: integer + description: Quantity to allocate + required: + - barcode + - sales_order + BarcodeScanResult: + type: object + description: Serializer for barcode scan results. + properties: + pk: + type: integer + readOnly: true + title: ID + data: + type: string + readOnly: true + description: Barcode data + timestamp: + type: string + format: date-time + readOnly: true + description: Date and time of the barcode scan + endpoint: + type: string + readOnly: true + nullable: true + title: Path + description: URL endpoint which processed the barcode + context: + readOnly: true + nullable: true + description: Context data for the barcode scan + response: + readOnly: true + nullable: true + description: Response data from the barcode scan + result: + type: boolean + readOnly: true + description: Was the barcode scan successful? + user: + type: integer + readOnly: true + nullable: true + description: User who scanned the barcode + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + required: + - data + - pk + - result + - timestamp + - user_detail + BarcodeUnassign: + type: object + description: Serializer class for unlinking a barcode from an internal model. + properties: + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + BlankEnum: + enum: + - '' + BomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: + type: boolean + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_min_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + substitutes: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + readOnly: true + nullable: true + validated: + type: boolean + description: This BOM item has been validated + available_stock: + type: number + format: double + readOnly: true + nullable: true + available_substitute_stock: + type: number + format: double + readOnly: true + nullable: true + available_variant_stock: + type: number + format: double + readOnly: true + nullable: true + external_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + title: In Production + can_build: + type: number + format: double + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + sub_part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Component + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + required: + - part + - pk + - sub_part + BomItemSubstitute: + type: object + description: Serializer for the BomItemSubstitute class. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_item: + type: integer + description: Parent BOM item + part: type: integer + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true - last_seen: + required: + - bom_item + - part + - part_detail + - pk + BomItemValidation: + type: object + description: Simple serializer for passing a single boolean field. + properties: + valid: + type: boolean + default: false + BriefUserProfile: + type: object + description: Brief serializer for the UserProfile model. + properties: + displayname: type: string - format: date nullable: true - description: Last time the token was used - name: + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: type: string - title: Token Name - description: Custom token name - maxLength: 100 - token: + nullable: true + description: Main job title or position + maxLength: 255 + status: type: string - description: |- - Provide a redacted version of the token. - - The *raw* key value should never be displayed anywhere! - readOnly: true + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 active: type: boolean - description: Test if this token is active. - readOnly: true - revoked: - type: boolean - description: Token has been revoked - user: - type: integer - user_detail: + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: allOf: - - $ref: '#/components/schemas/User' - readOnly: true - in_use: - type: boolean - description: Return True if the token is currently used to call the endpoint. - readOnly: true - required: - - active - - created - - id - - in_use - - token - - user_detail - Attachment: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + Build: type: object - description: Serializer class for the Attachment model. + description: Serializes a Build object. properties: pk: type: integer readOnly: true title: ID - attachment: + title: type: string - format: uri - nullable: true - thumbnail: + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: type: string - format: uri readOnly: true + batch: + type: string nullable: true - filename: + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: type: string - link: + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: type: string - format: uri + format: date + readOnly: true nullable: true - description: Link to external URL - maxLength: 2000 - comment: + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: type: string - description: Attachment comment - maxLength: 250 - is_image: + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer + nullable: true + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: type: boolean readOnly: true - description: True if this attachment is a valid image file - upload_date: + default: false + reference: + type: string + sales_order: + type: integer + nullable: true + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: + type: string + format: date + nullable: true + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + target_date: + type: string + format: date + nullable: true + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + notes: type: string - format: date - readOnly: true - upload_user: + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: type: integer readOnly: true nullable: true - title: User - description: User - user_detail: + description: User who issued this build order + issued_by_detail: allOf: - $ref: '#/components/schemas/User' readOnly: true - file_size: + responsible: type: integer + nullable: true + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + priority: type: integer maximum: 9223372036854775807 minimum: 0 format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level required: - - file_size - - is_image - - model_id - - model_type - - pk - - upload_date - - user_detail - AttachmentModelTypeEnum: - enum: - - build - - company - - manufacturerpart - - supplierpart - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - transferorder + - barcode_hash + - completed + - creation_date + - issued_by_detail + - level + - overdue - part - - stockitem - type: string + - part_detail + - part_name + - pk + - quantity + - reference + - status + BuildAllocation: + type: object + description: Serializer for allocating stock items against a build order. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildAllocationItem' + required: + - items + BuildAllocationItem: + type: object + description: A serializer for allocating a single stock item against a build + order. + properties: + build_line: + type: integer + title: Build Line Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + output: + type: integer + nullable: true + title: Build Output + required: + - build_line + - quantity + - stock_item + BuildAutoAllocation: + type: object + description: DRF serializer for auto allocating stock items against a build + order. + properties: + location: + type: integer + nullable: true + title: Source Location + description: Stock location where parts are to be sourced (leave blank to + take from any location) + exclude_location: + type: integer + nullable: true + description: Exclude stock items from this selected location + interchangeable: + type: boolean + default: false + title: Interchangeable Stock + description: Stock items in multiple locations can be used interchangeably + substitutes: + type: boolean + default: true + title: Substitute Stock + description: Allow allocation of substitute parts + optional_items: + type: boolean + default: false + description: Allocate optional BOM items to build order + item_type: + allOf: + - $ref: '#/components/schemas/ItemTypeEnum' + default: untracked + description: |- + Select item type to auto-allocate + + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + build_lines: + type: array + items: + type: integer + title: Build Lines + description: Limit allocation to these build lines (leave blank to allocate + all lines) + BuildCancel: + type: object + description: Cancel an active BuildOrder. + properties: + remove_allocated_stock: + type: boolean + default: false + title: Consume Allocated Stock + description: Consume any stock which has already been allocated to this + build + remove_incomplete_outputs: + type: boolean + default: false + description: Delete any build outputs which have not been completed + BuildComplete: + type: object + description: DRF serializer for marking a BuildOrder as complete. + properties: + accept_overallocated: + allOf: + - $ref: '#/components/schemas/AcceptOverallocatedEnum' + default: reject + title: Overallocated Stock + description: |- + How do you want to handle extra stock items assigned to the build order + + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + accept_unallocated: + type: boolean + default: false + description: Accept that stock items have not been fully allocated to this + build order + accept_incomplete: + type: boolean + default: false + description: Accept that the required number of build outputs have not been + completed + BuildConsume: + type: object description: |- - * `build` - Build Order - * `company` - Company - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - Barcode: + Serializer for consuming allocations against a BuildOrder. + + - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. + - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildConsumeAllocation' + lines: + type: array + items: + $ref: '#/components/schemas/BuildConsumeLineItem' + notes: + type: string + description: Optional notes for the stock consumption + BuildConsumeAllocation: type: object - description: Generic serializer for receiving barcode data. + description: Serializer for an individual BuildItem to be consumed against a + BuildOrder. properties: - barcode: + build_item: + type: integer + quantity: type: string - description: Scanned barcode data - maxLength: 4095 + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - build_item + - quantity + BuildConsumeLineItem: + type: object + description: Serializer for an individual BuildLine to be consumed against a + BuildOrder. + properties: + build_line: + type: integer required: - - barcode - BarcodeAssign: + - build_line + BuildItem: type: object - description: Serializer class for linking a barcode to an internal model. + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 + pk: + type: integer + readOnly: true + title: ID build: type: integer - nullable: true - title: Build Order - manufacturerpart: + readOnly: true + build_line: type: integer nullable: true - title: Manufacturer Part - supplierpart: + install_into: type: integer nullable: true - title: Supplier Part - purchaseorder: + description: Destination stock item + stock_item: type: integer - nullable: true - title: Purchase Order - returnorder: + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: type: integer + readOnly: true + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true nullable: true - title: Return Order - salesorder: - type: integer + title: Build + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true nullable: true - title: Sales Order - salesordershipment: - type: integer + title: Location + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - title: Sales Order Shipment - transferorder: + title: Part + stock_item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Stock Item + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + install_into_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Install Into + bom_reference: + type: string + readOnly: true + required: + - bom_reference + - build + - location + - pk + - quantity + - stock_item + BuildLine: + type: object + description: Serializer for a BuildItem object. + properties: + pk: type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + description: Build object + bom_item: + type: integer + readOnly: true + quantity: + type: number + format: double + consumed: + type: number + format: double + allocations: + type: array + items: + $ref: '#/components/schemas/BuildItem' + readOnly: true nullable: true - title: Transfer Order part: type: integer + readOnly: true + build_reference: + type: string + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: + type: number + format: double + readOnly: true + in_production: + type: number + format: double + readOnly: true + scheduled_to_build: + type: number + format: double + readOnly: true + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: + type: number + format: double + readOnly: true + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true nullable: true - stockitem: - type: integer + title: BOM Item + assembly_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - title: Stock Item - stocklocation: - type: integer + title: Assembly + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - title: Stock Location + title: Part + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build required: - - barcode - BarcodeGenerate: + - allocated + - allow_variants + - available_stock + - available_substitute_stock + - available_variant_stock + - bom_item + - build + - build_reference + - consumable + - consumed + - external_stock + - in_production + - inherited + - on_order + - optional + - part + - pk + - quantity + - reference + - scheduled_to_build + - testable + - trackable + BuildOutput: type: object - description: Serializer for generating a barcode. + description: |- + Serializer for a "BuildOutput". + + Note that a "BuildOutput" is really just a StockItem which is "in production"! properties: - model: - type: string - description: Model name to generate barcode for - pk: + output: type: integer - description: Primary key of model object to generate barcode for + title: Build Output required: - - model - - pk - BarcodePOAllocate: + - output + BuildOutputComplete: type: object - description: |- - Serializer for allocating items against a purchase order. + description: DRF serializer for completing one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: + type: integer + description: Location for completed build outputs + status_custom_key: + type: integer + description: |- + Stock item status code - The scanned barcode could be a Part, ManufacturerPart or SupplierPart object - properties: - barcode: + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + title: Status + accept_incomplete_allocation: + type: boolean + default: false + description: Complete outputs if stock has not been fully allocated + notes: type: string - description: Scanned barcode data - maxLength: 4095 - purchase_order: - type: integer - description: Purchase Order to allocate items against required: - - barcode - - purchase_order - BarcodePOReceive: + - location + - outputs + BuildOutputCreate: type: object description: |- - Serializer for receiving items against a purchase order. + Serializer for creating a new BuildOutput against a BuildOrder. - The following additional fields may be specified: + URL pattern is "/api/build//create-output/", where is the PK of a Build. - - purchase_order: PurchaseOrder object to receive items against - - location: Location to receive items into + The Build object is provided to the serializer context. properties: - barcode: + quantity: type: string - description: Scanned barcode data - maxLength: 4095 - supplier: - type: integer - nullable: true - description: Supplier to receive items from - purchase_order: - type: integer - nullable: true - description: PurchaseOrder to receive items against + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output + batch_code: + type: string + description: Batch code for this build output + serial_numbers: + type: string + description: Enter serial numbers for build outputs location: type: integer nullable: true - description: Location to receive items into - line_item: - type: integer - nullable: true - description: Purchase order line item to receive items against + description: Stock location for build output auto_allocate: type: boolean - default: true - description: Automatically allocate stock items to the purchase order + nullable: true + default: false + title: Auto Allocate Serial Numbers + description: Automatically allocate required items with matching serial + numbers required: - - barcode - BarcodeSOAllocate: + - quantity + BuildOutputDelete: type: object - description: |- - Serializr for allocating stock items to a sales order. - - The scanned barcode must map to a StockItem object + description: DRF serializer for deleting (cancelling) one or more build outputs. properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - sales_order: - type: integer - description: Sales Order to allocate items against - line: - type: integer - nullable: true - description: Sales order line item to allocate items against - shipment: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutput' + required: + - outputs + BuildOutputQuantity: + type: object + description: Build output with quantity field. + properties: + output: type: integer - nullable: true - description: Sales order shipment to allocate items against + title: Build Output quantity: - type: integer - description: Quantity to allocate + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output required: - - barcode - - sales_order - BarcodeScanResult: + - output + BuildOutputScrap: type: object - description: Serializer for barcode scan results. + description: Scrapping one or more build outputs. properties: - pk: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: type: integer - readOnly: true - title: ID - data: - type: string - readOnly: true - description: Barcode data - timestamp: - type: string - format: date-time - readOnly: true - description: Date and time of the barcode scan - endpoint: - type: string - readOnly: true - nullable: true - title: Path - description: URL endpoint which processed the barcode - context: - readOnly: true - nullable: true - description: Context data for the barcode scan - response: - readOnly: true - nullable: true - description: Response data from the barcode scan - result: + description: Stock location for scrapped outputs + discard_allocations: type: boolean - readOnly: true - description: Was the barcode scan successful? - user: - type: integer - readOnly: true - nullable: true - description: User who scanned the barcode - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true + default: false + description: Discard any stock allocations for scrapped outputs + notes: + type: string + description: Reason for scrapping build output(s) required: - - data - - pk - - result - - timestamp - - user_detail - BarcodeUnassign: + - location + - notes + - outputs + BuildStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + BuildUnallocation: type: object - description: Serializer class for unlinking a barcode from an internal model. + description: |- + DRF serializer for unallocating stock from a BuildOrder. + + Allocated stock can be unallocated with a number of filters: + + - output: Filter against a particular build output (blank = untracked stock) + - bom_item: Filter against a particular BOM line item properties: - build: - type: integer - nullable: true - title: Build Order - manufacturerpart: - type: integer - nullable: true - title: Manufacturer Part - supplierpart: - type: integer - nullable: true - title: Supplier Part - purchaseorder: - type: integer - nullable: true - title: Purchase Order - returnorder: - type: integer - nullable: true - title: Return Order - salesorder: - type: integer - nullable: true - title: Sales Order - salesordershipment: - type: integer - nullable: true - title: Sales Order Shipment - transferorder: - type: integer - nullable: true - title: Transfer Order - part: - type: integer - nullable: true - stockitem: + build_line: type: integer nullable: true - title: Stock Item - stocklocation: + output: type: integer nullable: true - title: Stock Location - BlankEnum: - enum: - - '' - BomItem: + title: Build output + BulkRequest: + type: object + description: Parameters for selecting items for bulk operations. + properties: + items: + type: array + items: + type: integer + title: A list of primary key values + filters: + type: object + additionalProperties: {} + title: A dictionary of filter values + Category: type: object - description: Serializer for BomItem object. + description: Serializer for PartCategory. properties: - part: - type: integer - title: Assembly - description: Select the parent assembly - sub_part: + pk: type: integer - title: Component - description: Select the component part - reference: + readOnly: true + title: ID + name: type: string - description: BOM item reference - maxLength: 5000 - raw_amount: + description: Name + maxLength: 100 + description: type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: - type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: - type: boolean - description: This BOM item is optional - consumable: - type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double + description: Description (optional) + maxLength: 250 + default_location: + type: integer nullable: true - note: + description: Default location for parts in this category + default_keywords: type: string - description: BOM item notes - maxLength: 500 - pk: + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: type: integer readOnly: true - title: ID - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double - readOnly: true + parent: + type: integer nullable: true - available_substitute_stock: - type: number - format: double + title: Parent Category + description: Parent part category + part_count: + type: integer readOnly: true nullable: true - available_variant_stock: - type: number - format: double + title: Parts + subcategories: + type: integer readOnly: true nullable: true - external_stock: - type: number - format: double + pathstring: + type: string readOnly: true - nullable: true - on_order: - type: number - format: double + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' readOnly: true nullable: true - building: - type: number - format: double + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. readOnly: true + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string nullable: true - title: In Production - can_build: - type: number - format: double + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer readOnly: true nullable: true required: - - part + - level + - name + - pathstring - pk - - sub_part - BomItemSubstitute: + - starred + CategoryParameterTemplate: type: object - description: Serializer for the BomItemSubstitute class. + description: Serializer for the PartCategoryParameterTemplate model. properties: pk: type: integer readOnly: true title: ID - bom_item: + category: type: integer - description: Parent BOM item - part: + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + template: type: integer - description: Substitute part - part_detail: + template_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/ParameterTemplate' readOnly: true + default_value: + type: string + description: Default Parameter Value + maxLength: 500 required: - - bom_item - - part - - part_detail + - category - pk - BomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - BriefUserProfile: + - template + - template_detail + CategoryTree: type: object - description: Brief serializer for the UserProfile model. + description: Serializer for PartCategory tree. properties: - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: + pk: + type: integer + readOnly: true + title: ID + name: type: string + description: Name + maxLength: 100 + parent: + type: integer nullable: true - description: User status message - maxLength: 2000 - location: + icon: type: string - nullable: true - description: User location information - maxLength: 2000 - active: + description: Icon (optional) + maxLength: 100 + structural: type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + subcategories: type: integer - nullable: true - description: Primary group for the user - Build: + readOnly: true + required: + - name + - pk + - subcategories + ColorEnum: + enum: + - primary + - secondary + - success + - danger + - warning + - info + - dark + type: string + description: |- + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + Company: type: object - description: Serializes a Build object. + description: Serializer for Company object (full detail). properties: pk: type: integer readOnly: true title: ID - title: + name: type: string - title: Description - description: Brief description of the build (optional) + title: Company name + description: Company name maxLength: 100 - barcode_hash: + description: type: string - readOnly: true - batch: + title: Company description + description: Description of the company + maxLength: 500 + website: type: string + format: uri + description: Company website URL + maxLength: 2000 + phone: + type: string + title: Phone number + description: Contact phone number + maxLength: 50 + email: + type: string + format: email nullable: true - title: Batch Code - description: Batch code for this build output + default: '' + currency: + type: string + description: |- + Default currency used for this supplier + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + contact: + type: string + description: Point of contact maxLength: 100 - creation_date: + link: type: string - format: date - readOnly: true - completed: - type: integer - readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: + format: uri + description: Link to external company information + maxLength: 2000 + image: type: string - format: date - readOnly: true - nullable: true - destination: - type: integer + format: uri nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: + active: type: boolean - title: External Build - description: This build order is fulfilled externally - parent: - type: integer + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + notes: + type: string nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: + description: Markdown notes (optional) + maxLength: 50000 + parts_supplied: type: integer - description: Select part to build - part_name: - type: string readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: + parts_manufactured: type: integer - nullable: true - description: Project code for this build order - project_code_label: - type: string readOnly: true - nullable: true - project_code_detail: + primary_address: allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - overdue: - type: boolean + - $ref: '#/components/schemas/AddressBrief' readOnly: true - default: false - reference: - type: string - sales_order: - type: integer nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: + tax_id: type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' + description: Company Tax ID + maxLength: 50 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string nullable: true - readOnly: true - status_custom_key: + required: + - currency + - name + - parts_manufactured + - parts_supplied + - pk + CompanyBrief: + type: object + description: Serializer for Company object (limited detail). + properties: + pk: type: integer readOnly: true - nullable: true - title: Custom status key - description: Additional status information for this item - target_date: + title: ID + active: + type: boolean + description: Is this company active? + name: type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: - type: integer - nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - link: + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + image: type: string format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer - readOnly: true - nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' readOnly: true - responsible: - type: integer - nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' + thumbnail: + type: string readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer + currency: + type: string readOnly: true - title: Build Level - required: - - barcode_hash - - completed - - creation_date - - issued_by_detail - - level - - overdue - - part - - part_detail - - part_name - - pk - - quantity - - reference - - status - BuildAllocation: - type: object - description: Serializer for allocating stock items against a build order. - properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildAllocationItem' - required: - - items - BuildAllocationItem: + description: Default currency used for this company + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + required: + - currency + - image + - name + - pk + - thumbnail + Config: type: object - description: A serializer for allocating a single stock item against a build - order. + description: |- + Serializer for the InvenTree configuration. + + This is a read-only serializer. properties: - build_line: - type: integer - title: Build Line Item - stock_item: - type: integer - quantity: + key: type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - output: - type: integer + readOnly: true + env_var: + type: string + readOnly: true nullable: true - title: Build Output + config_key: + type: string + readOnly: true + nullable: true + source: + type: string + readOnly: true + accessed: + type: string + format: date-time + readOnly: true required: - - build_line - - quantity - - stock_item - BuildAutoAllocation: + - accessed + - key + - source + ConfigTypeEnum: + enum: + - M + - D + type: string + description: |- + * `M` - Machine + * `D` - Driver + Contact: type: object - description: DRF serializer for auto allocating stock items against a build - order. + description: Serializer class for the Contact model. properties: - location: + pk: type: integer - nullable: true - title: Source Location - description: Stock location where parts are to be sourced (leave blank to - take from any location) - exclude_location: + readOnly: true + title: ID + company: type: integer - nullable: true - description: Exclude stock items from this selected location - interchangeable: - type: boolean - default: false - title: Interchangeable Stock - description: Stock items in multiple locations can be used interchangeably - substitutes: - type: boolean - default: true - title: Substitute Stock - description: Allow allocation of substitute parts - optional_items: - type: boolean - default: false - description: Allocate optional BOM items to build order - item_type: - allOf: - - $ref: '#/components/schemas/ItemTypeEnum' - default: untracked - description: |- - Select item type to auto-allocate - - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - build_lines: - type: array - items: - type: integer - title: Build Lines - description: Limit allocation to these build lines (leave blank to allocate - all lines) - BuildCancel: + company_name: + type: string + readOnly: true + name: + type: string + maxLength: 100 + phone: + type: string + maxLength: 100 + email: + type: string + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + required: + - company + - company_name + - name + - pk + ContentType: type: object - description: Cancel an active BuildOrder. + description: Serializer for ContentType models. properties: - remove_allocated_stock: - type: boolean - default: false - title: Consume Allocated Stock - description: Consume any stock which has already been allocated to this - build - remove_incomplete_outputs: + pk: + type: integer + readOnly: true + app_label: + type: string + readOnly: true + model: + type: string + readOnly: true + app_labeled_name: + type: string + readOnly: true + is_plugin: type: boolean - default: false - description: Delete any build outputs which have not been completed - BuildComplete: + description: Return True if the model is a plugin model. + readOnly: true + required: + - app_label + - app_labeled_name + - is_plugin + - model + - pk + ConvertStockItem: type: object - description: DRF serializer for marking a BuildOrder as complete. + description: DRF serializer class for converting a StockItem to a valid variant + part. properties: - accept_overallocated: - allOf: - - $ref: '#/components/schemas/AcceptOverallocatedEnum' - default: reject - title: Overallocated Stock - description: |- - How do you want to handle extra stock items assigned to the build order - - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - accept_unallocated: - type: boolean - default: false - description: Accept that stock items have not been fully allocated to this - build order - accept_incomplete: - type: boolean - default: false - description: Accept that the required number of build outputs have not been - completed - BuildConsume: + part: + type: integer + description: Select part to convert stock item into + required: + - part + CurrencyExchange: type: object description: |- - Serializer for consuming allocations against a BuildOrder. + Serializer for a Currency Exchange request. - - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. - - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. + It's only purpose is describing the results correctly in the API schema right now. properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildConsumeAllocation' - lines: - type: array - items: - $ref: '#/components/schemas/BuildConsumeLineItem' - notes: + base_currency: type: string - description: Optional notes for the stock consumption - BuildConsumeAllocation: - type: object - description: Serializer for an individual BuildItem to be consumed against a - BuildOrder. - properties: - build_item: - type: integer - quantity: + readOnly: true + exchange_rates: + type: object + additionalProperties: + type: number + format: double + updated: type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - build_item - - quantity - BuildConsumeLineItem: - type: object - description: Serializer for an individual BuildLine to be consumed against a - BuildOrder. - properties: - build_line: - type: integer + format: date-time + readOnly: true required: - - build_line - BuildItem: + - base_currency + - exchange_rates + - updated + CustomState: type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. + description: Serializer for the custom state model. properties: pk: type: integer readOnly: true title: ID - build: + key: type: integer - readOnly: true - build_line: + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: + type: string + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: type: integer - nullable: true - install_into: + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: type: integer nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer - readOnly: true - bom_reference: + description: Model this state is associated with + model_name: type: string readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' required: - - bom_reference - - build - - location + - key + - label + - logical_key + - model_name + - name - pk - - quantity - - stock_item - BuildLine: + - reference_status + CustomUnit: type: object - description: Serializer for a BuildItem object. + description: DRF serializer for CustomUnit model. properties: pk: type: integer readOnly: true title: ID - build: - type: integer - readOnly: true - description: Build object - bom_item: + name: + type: string + description: Unit name + maxLength: 50 + symbol: + type: string + description: Optional unit symbol + maxLength: 10 + definition: + type: string + description: Unit definition + maxLength: 50 + required: + - definition + - name + - pk + Customize: + type: object + description: Serializer for customize field. + properties: + logo: + type: string + splash: + type: string + login_message: + type: string + nullable: true + navbar_message: + type: string + nullable: true + disable_theme_storage: + type: boolean + default: false + required: + - login_message + - logo + - navbar_message + - splash + DataImportAcceptRow: + type: object + description: Serializer for accepting rows of data. + properties: + rows: + type: array + items: + type: integer + title: Rows + description: List of row IDs to accept + required: + - rows + DataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: type: integer readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - part: + title: ID + session: type: integer readOnly: true - build_reference: + title: Import Session + column: type: string - readOnly: true - reference: + maxLength: 100 + field: type: string readOnly: true - consumable: - type: boolean - readOnly: true - optional: - type: boolean - readOnly: true - testable: - type: boolean - readOnly: true - trackable: - type: boolean - readOnly: true - inherited: - type: boolean - readOnly: true - allow_variants: - type: boolean - readOnly: true - allocated: - type: number - format: double - readOnly: true - in_production: - type: number - format: double - readOnly: true - scheduled_to_build: - type: number - format: double - readOnly: true - on_order: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_substitute_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double + label: + type: string readOnly: true - external_stock: - type: number - format: double + description: + type: string readOnly: true required: - - allocated - - allow_variants - - available_stock - - available_substitute_stock - - available_variant_stock - - bom_item - - build - - build_reference - - consumable - - consumed - - external_stock - - in_production - - inherited - - on_order - - optional - - part + - description + - field + - label - pk - - quantity - - reference - - scheduled_to_build - - testable - - trackable - BuildOutput: + - session + DataImportRow: type: object - description: |- - Serializer for a "BuildOutput". - - Note that a "BuildOutput" is really just a StockItem which is "in production"! + description: Serializer for the DataImportRow model. properties: - output: + pk: type: integer - title: Build Output - required: - - output - BuildOutputComplete: - type: object - description: DRF serializer for completing one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: + readOnly: true + title: ID + session: type: integer - description: Location for completed build outputs - status_custom_key: + readOnly: true + title: Import Session + row_index: type: integer - description: Stock item status code - default: 10 - title: Status - accept_incomplete_allocation: + readOnly: true + row_data: + readOnly: true + nullable: true + title: Original row data + data: + nullable: true + errors: + readOnly: true + nullable: true + valid: type: boolean - default: false - description: Complete outputs if stock has not been fully allocated - notes: - type: string + readOnly: true + complete: + type: boolean + readOnly: true required: - - location - - outputs - BuildOutputCreate: + - complete + - pk + - row_index + - session + - valid + DataImportSession: type: object - description: |- - Serializer for creating a new BuildOutput against a BuildOrder. - - URL pattern is "/api/build//create-output/", where is the PK of a Build. - - The Build object is provided to the serializer context. + description: Serializer for the DataImportSession model. properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - batch_code: + pk: + type: integer + readOnly: true + title: ID + timestamp: type: string - description: Batch code for this build output - serial_numbers: + format: date-time + readOnly: true + data_file: type: string - description: Enter serial numbers for build outputs - location: + format: uri + update_records: + type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' + readOnly: true + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: type: integer + readOnly: true nullable: true - description: Stock location for build output - auto_allocate: - type: boolean + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + columns: + readOnly: true nullable: true - default: false - title: Auto Allocate Serial Numbers - description: Automatically allocate required items with matching serial - numbers - required: - - quantity - BuildOutputDelete: - type: object - description: DRF serializer for deleting (cancelling) one or more build outputs. - properties: - outputs: + column_mappings: type: array items: - $ref: '#/components/schemas/BuildOutput' - required: - - outputs - BuildOutputQuantity: - type: object - description: Build output with quantity field. - properties: - output: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: type: integer - title: Build Output - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - required: - - output - BuildOutputScrap: - type: object - description: Scrapping one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: + readOnly: true + completed_row_count: type: integer - description: Stock location for scrapped outputs - discard_allocations: - type: boolean - default: false - description: Discard any stock allocations for scrapped outputs - notes: - type: string - description: Reason for scrapping build output(s) + readOnly: true required: - - location - - notes - - outputs - BuildStatusEnum: + - available_fields + - column_mappings + - completed_row_count + - data_file + - model_type + - pk + - row_count + - status + - timestamp + - user_detail + DataImportSessionModelTypeEnum: + enum: + - projectcode + - inventreecustomuserstatemodel + - customunit + - parametertemplate + - parameter + - partcategory + - parttesttemplate + - partsellpricebreak + - part + - bomitem + - partcategoryparametertemplate + - address + - company + - contact + - manufacturerpart + - supplierpart + - supplierpricebreak + - stockitemtestresult + - stockitem + - stocklocation + - stockitemtracking + - purchaseorder + - purchaseorderlineitem + - purchaseorderextraline + - salesorder + - salesorderlineitem + - salesordershipment + - salesorderextraline + - returnorder + - returnorderlineitem + - returnorderextraline + - transferorder + - transferorderlineitem + type: string + description: |- + * `projectcode` - Project Code + * `inventreecustomuserstatemodel` - Custom State + * `customunit` - Custom Unit + * `parametertemplate` - Parameter Template + * `parameter` - Parameter + * `partcategory` - Part Category + * `parttesttemplate` - Part Test Template + * `partsellpricebreak` - Part Sale Price Break + * `part` - Part + * `bomitem` - BOM Item + * `partcategoryparametertemplate` - Part Category Parameter Template + * `address` - Address + * `company` - Company + * `contact` - Contact + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `supplierpricebreak` - Supplier Price Break + * `stockitemtestresult` - Stock Item Test Result + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + * `stockitemtracking` - Stock Item Tracking + * `purchaseorder` - Purchase Order + * `purchaseorderlineitem` - Purchase Order Line Item + * `purchaseorderextraline` - Purchase Order Extra Line + * `salesorder` - Sales Order + * `salesorderlineitem` - Sales Order Line Item + * `salesordershipment` - Sales Order Shipment + * `salesorderextraline` - Sales Order Extra Line + * `returnorder` - Return Order + * `returnorderlineitem` - Return Order Line Item + * `returnorderextraline` - Return Order Extra Line + * `transferorder` - Transfer Order + * `transferorderlineitem` - Transfer Order Line Item + DataImportSessionStatusEnum: enum: + - 0 - 10 - 20 - - 25 - 30 - 40 type: integer description: |- - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data * `40` - Complete - BuildUnallocation: - type: object - description: |- - DRF serializer for unallocating stock from a BuildOrder. - - Allocated stock can be unallocated with a number of filters: - - - output: Filter against a particular build output (blank = untracked stock) - - bom_item: Filter against a particular BOM line item - properties: - build_line: - type: integer - nullable: true - output: - type: integer - nullable: true - title: Build output - BulkRequest: + DataImporterModel: type: object - description: Parameters for selecting items for bulk operations. + description: Model references to map info that might get imported. properties: - items: - type: array - items: - type: integer - title: A list of primary key values - filters: - type: object - additionalProperties: {} - title: A dictionary of filter values - Category: + serializer: + type: string + readOnly: true + model_type: + type: string + readOnly: true + api_url: + type: string + format: uri + readOnly: true + nullable: true + required: + - model_type + - serializer + DataOutput: type: object - description: Serializer for PartCategory. + description: Serializer for the DataOutput model. properties: pk: type: integer readOnly: true title: ID - name: + created: type: string - description: Name + format: date + readOnly: true + user: + type: integer + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + total: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + progress: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + complete: + type: boolean + output_type: + type: string + nullable: true maxLength: 100 - description: + template_name: type: string - description: Description (optional) - maxLength: 250 - default_location: - type: integer nullable: true - description: Default location for parts in this category - default_keywords: + maxLength: 100 + plugin: type: string nullable: true - description: Default keywords for parts in this category - maxLength: 250 - level: - type: integer + maxLength: 100 + output: + type: string + format: uri readOnly: true - parent: - type: integer nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer - readOnly: true + errors: nullable: true - title: Parts - subcategories: + required: + - created + - pk + - user_detail + DefaultLocation: + type: object + description: |- + Brief serializer for a StockLocation object. + + Defined here, rather than stock.serializers, to negotiate circular imports. + properties: + pk: type: integer readOnly: true - nullable: true + title: ID + name: + type: string + description: Name + maxLength: 100 pathstring: type: string - readOnly: true title: Path description: Path - starred: + maxLength: 250 + required: + - name + - pk + DirectionEnum: + enum: + - I + - O + type: string + description: |- + * `I` - Inbound + * `O` - Outbound + DuplicateOrder: + type: object + description: Serializer for specifying options when duplicating an order. + properties: + order_id: + type: integer + description: ID of the order to duplicate + copy_lines: type: boolean - description: Return True if the category is directly "starred" by the current - user. - readOnly: true - structural: + default: true + description: Copy line items from the original order + copy_extra_lines: type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: - type: string - nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: + default: true + description: Copy extra line items from the original order + copy_parameters: + type: boolean + default: true + description: Copy order parameters from the original order + required: + - order_id + DuplicatePart: + type: object + description: |- + Serializer for specifying options when duplicating a Part. + + The fields in this serializer control how the Part is duplicated. + properties: + part: type: integer - readOnly: true - nullable: true + title: Original Part + description: Select original part to duplicate + copy_image: + type: boolean + default: false + description: Copy image from original part + copy_bom: + type: boolean + default: false + description: Copy bill of materials from original part + copy_parameters: + type: boolean + default: false + description: Copy parameter data from original part + copy_notes: + type: boolean + default: true + description: Copy notes from original part + copy_tests: + type: boolean + default: false + description: Copy test templates from original part required: - - level - - name - - pathstring - - pk - - starred - CategoryParameterTemplate: + - part + EmailMessage: type: object - description: Serializer for the PartCategoryParameterTemplate model. + description: Serializer for the EmailMessage model. properties: pk: - type: integer + type: string + format: uuid readOnly: true - title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' + title: Global ID + description: Unique identifier for this message + global_id: + type: string + format: uuid readOnly: true + description: Unique identifier for this message + message_id_key: + type: string nullable: true - template: - type: integer - template_detail: + title: Message ID + description: Identifier for this message (might be supplied by external + system) + maxLength: 250 + thread_id_key: + type: string + nullable: true + title: Thread ID + description: Identifier for this message thread (might be supplied by external + system) + maxLength: 250 + thread: + type: string + format: uuid + description: Linked thread for this message + nullable: true + subject: + type: string + maxLength: 250 + body: + type: string + to: + type: string + format: email + maxLength: 254 + sender: + type: string + format: email + maxLength: 254 + status: + nullable: true + oneOf: + - $ref: '#/components/schemas/EmailMessageStatusEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + timestamp: + type: string + format: date-time + readOnly: true + headers: + nullable: true + full_message: + type: string + nullable: true + direction: + nullable: true + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + priority: allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: + - $ref: '#/components/schemas/PriorityEnum' + minimum: -9223372036854775808 + maximum: 9223372036854775807 + error_code: type: string - description: Default Parameter Value - maxLength: 500 - required: - - category - - pk - - template - - template_detail - CategoryTree: - type: object - description: Serializer for PartCategory tree. - properties: - pk: - type: integer - readOnly: true - title: ID - name: + nullable: true + maxLength: 50 + error_message: type: string - description: Name - maxLength: 100 - parent: - type: integer nullable: true - icon: + error_timestamp: type: string - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - subcategories: - type: integer - readOnly: true + format: date-time + nullable: true + delivery_options: + nullable: true required: - - name + - body + - global_id - pk - - subcategories - ColorEnum: + - priority + - sender + - subject + - timestamp + - to + EmailMessageStatusEnum: enum: - - primary - - secondary - - success - - danger - - warning - - info - - dark + - A + - S + - F + - D + - R + - C type: string description: |- - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - Company: + * `A` - Announced + * `S` - Sent + * `F` - Failed + * `D` - Delivered + * `R` - Read + * `C` - Confirmed + ErrorMessage: type: object - description: Serializer for Company object (full detail). + description: DRF serializer for server error messages. properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - website: + when: type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: + format: date-time + readOnly: true + info: type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: + readOnly: true + data: type: string - format: email + readOnly: true nullable: true - default: '' - currency: - type: string - description: Default currency used for this supplier - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: + path: type: string format: uri - nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - parts_supplied: - type: integer readOnly: true - parts_manufactured: + nullable: true + maxLength: 200 + pk: type: integer readOnly: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 + title: ID required: - - currency - - name - - parts_manufactured - - parts_supplied + - info - pk - CompanyBrief: + - when + ExtendedUser: type: object - description: Serializer for Company object (limited detail). + description: Serializer for a User with a bit more info. properties: pk: type: integer readOnly: true title: ID - active: - type: boolean - description: Is this company active? - name: + username: type: string - title: Company name - description: Company name - maxLength: 100 - description: + description: Username + first_name: type: string - title: Company description - description: Description of the company - maxLength: 500 - image: + description: First name of the user + last_name: type: string - format: uri - readOnly: true - thumbnail: + description: Last name of the user + email: type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' readOnly: true - currency: - type: string + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' readOnly: true - description: Default currency used for this company - tax_id: - type: string - description: Company Tax ID - maxLength: 50 required: - - currency - - image - - name + - email + - first_name + - groups + - last_name - pk - - thumbnail - Config: + - profile + - username + FailedTask: type: object - description: |- - Serializer for the InvenTree configuration. - - This is a read-only serializer. + description: Serializer for an individual failed task object. properties: - key: + pk: type: string readOnly: true - env_var: + name: + type: string + readOnly: true + description: Optional human-readable name for lookup and display. + func: + type: string + title: Function + description: Dotted import path to the callable, e.g. myapp.tasks.job. + maxLength: 256 + args: type: string readOnly: true nullable: true - config_key: + title: Arguments + description: Pickled positional arguments (tuple). + kwargs: type: string readOnly: true nullable: true - source: + title: Keyword arguments + description: Pickled keyword arguments (dict). + started: type: string + format: date-time readOnly: true - accessed: + title: Started at + description: When the worker started executing the task. + stopped: type: string format: date-time readOnly: true - required: - - accessed - - key - - source - ConfigTypeEnum: - enum: - - M - - D - type: string - description: |- - * `M` - Machine - * `D` - Driver - Contact: - type: object - description: Serializer class for the Contact model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: + title: Stopped at + description: When the worker finished (success or failure). + attempt_count: type: integer - company_name: - type: string - readOnly: true - name: - type: string - maxLength: 100 - phone: - type: string - maxLength: 100 - email: - type: string - format: email - maxLength: 254 - role: + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: How many times execution was attempted. + result: type: string - maxLength: 100 required: - - company - - company_name + - func - name - pk - ContentType: + - result + - started + - stopped + Flag: type: object - description: Serializer for ContentType models. + description: Serializer for feature flags. properties: - pk: - type: integer - readOnly: true - app_label: - type: string - readOnly: true - model: + key: type: string readOnly: true - app_labeled_name: + state: type: string readOnly: true - is_plugin: - type: boolean - description: Return True if the model is a plugin model. + conditions: + type: array + items: + type: object + additionalProperties: {} readOnly: true + nullable: true required: - - app_label - - app_labeled_name - - is_plugin - - model - - pk - ConvertStockItem: - type: object - description: DRF serializer class for converting a StockItem to a valid variant - part. - properties: - part: - type: integer - description: Select part to convert stock item into - required: - - part - CurrencyExchange: + - key + - state + FlowsEnum: + type: string + enum: + - provider_redirect + - provider_token + GenerateBatchCode: type: object description: |- - Serializer for a Currency Exchange request. + Serializer for generating a batch code. - It's only purpose is describing the results correctly in the API schema right now. + Any of the provided write-only fields can be used for additional context. properties: - base_currency: - type: string - readOnly: true - exchange_rates: - type: object - additionalProperties: - type: number - format: double - updated: + batch_code: type: string - format: date-time readOnly: true - required: - - base_currency - - exchange_rates - - updated - CustomState: - type: object - description: Serializer for the custom state model. - properties: - pk: + description: Generated batch code + build_order: type: integer - readOnly: true - title: ID - key: + nullable: true + description: Select build order + item: type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: - type: string - description: Name of the state - maxLength: 250 - label: - type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: + nullable: true + title: Stock Item + description: Select stock item to generate batch code for + location: type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: State logical key that is equal to this custom state in business - logic - model: + nullable: true + description: Select location to generate batch code for + part: type: integer nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - required: - - key - - label - - logical_key - - model_name - - name - - pk - - reference_status - CustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: + description: Select part to generate batch code for + purchase_order: type: integer - readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: - type: string - description: Optional unit symbol - maxLength: 10 - definition: - type: string - description: Unit definition - maxLength: 50 + nullable: true + description: Select purchase order + quantity: + type: number + format: double + nullable: true + description: Enter quantity for batch code required: - - definition - - name - - pk - Customize: + - batch_code + GenerateSerialNumber: type: object - description: Serializer for customize field. + description: |- + Serializer for generating one or multiple serial numbers. + + Any of the provided write-only fields can be used for additional context. + + Note that in the case where multiple serial numbers are required, + the "serial_number" field will return a string with multiple serial numbers + separated by a comma. properties: - logo: - type: string - splash: - type: string - login_message: - type: string - nullable: true - navbar_message: + serial_number: type: string - nullable: true - disable_theme_storage: - type: boolean - default: false - required: - - login_message - - logo - - navbar_message - - splash - DataImportAcceptRow: + readOnly: true + nullable: true + description: Generated serial number + part: + type: integer + nullable: true + description: Select part to generate serial number for + quantity: + type: integer + default: 1 + description: Quantity of serial numbers to generate + GenericStateClass: type: object - description: Serializer for accepting rows of data. + description: API serializer for generic state class information. properties: - rows: - type: array - items: - type: integer - title: Rows - description: List of row IDs to accept + status_class: + type: string + readOnly: true + title: Class + values: + type: object + additionalProperties: + $ref: '#/components/schemas/GenericStateValue' required: - - rows - DataImportColumnMap: + - status_class + - values + GenericStateValue: type: object - description: Serializer for the DataImportColumnMap model. + description: API serializer for generic state information. properties: - pk: - type: integer - readOnly: true - title: ID - session: + key: type: integer - readOnly: true - title: Import Session - column: + logical_key: type: string - maxLength: 100 - field: + name: type: string - readOnly: true label: type: string - readOnly: true - description: + color: type: string - readOnly: true - required: - - description - - field - - label - - pk - - session - DataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true - nullable: true - title: Original row data - data: - nullable: true - errors: - readOnly: true - nullable: true - valid: - type: boolean - readOnly: true - complete: + custom: type: boolean - readOnly: true required: - - complete - - pk - - row_index - - session - - valid - DataImportSession: + - key + - label + - name + GetAuthToken: type: object - description: Serializer for the DataImportSession model. + description: Serializer for the GetAuthToken API endpoint. properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: + token: type: string - format: date-time readOnly: true - data_file: + name: type: string - format: uri - update_records: - type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: - readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' - readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - columns: - readOnly: true - nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - readOnly: true - field_defaults: - nullable: true - field_overrides: - nullable: true - field_filters: - nullable: true - row_count: - type: integer - readOnly: true - completed_row_count: - type: integer + expiry: + type: string + format: date readOnly: true - required: - - available_fields - - column_mappings - - completed_row_count - - data_file - - model_type - - pk - - row_count - - status - - timestamp - - user_detail - DataImportSessionModelTypeEnum: - enum: - - projectcode - - inventreecustomuserstatemodel - - customunit - - parametertemplate - - parameter - - partcategory - - parttesttemplate - - partsellpricebreak - - part - - bomitem - - partcategoryparametertemplate - - address - - company - - contact - - manufacturerpart - - supplierpart - - supplierpricebreak - - stockitemtestresult - - stockitem - - stocklocation - - stockitemtracking - - purchaseorder - - purchaseorderlineitem - - purchaseorderextraline - - salesorder - - salesorderlineitem - - salesordershipment - - salesorderextraline - - returnorder - - returnorderlineitem - - returnorderextraline - - transferorder - - transferorderlineitem - type: string - description: |- - * `projectcode` - Project Code - * `inventreecustomuserstatemodel` - Custom State - * `customunit` - Custom Unit - * `parametertemplate` - Parameter Template - * `parameter` - Parameter - * `partcategory` - Part Category - * `parttesttemplate` - Part Test Template - * `partsellpricebreak` - Part Sale Price Break - * `part` - Part - * `bomitem` - BOM Item - * `partcategoryparametertemplate` - Part Category Parameter Template - * `address` - Address - * `company` - Company - * `contact` - Contact - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `supplierpricebreak` - Supplier Price Break - * `stockitemtestresult` - Stock Item Test Result - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - * `stockitemtracking` - Stock Item Tracking - * `purchaseorder` - Purchase Order - * `purchaseorderlineitem` - Purchase Order Line Item - * `purchaseorderextraline` - Purchase Order Extra Line - * `salesorder` - Sales Order - * `salesorderlineitem` - Sales Order Line Item - * `salesordershipment` - Sales Order Shipment - * `salesorderextraline` - Sales Order Extra Line - * `returnorder` - Return Order - * `returnorderlineitem` - Return Order Line Item - * `returnorderextraline` - Return Order Extra Line - * `transferorder` - Transfer Order - * `transferorderlineitem` - Transfer Order Line Item - DataImportSessionStatusEnum: - enum: - - 0 - - 10 - - 20 - - 30 - - 40 - type: integer - description: |- - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - DataImporterModel: + required: + - expiry + - name + - token + GetSimpleLogin: type: object - description: Model references to map info that might get imported. + description: Serializer for the simple login view. properties: - serializer: + email: + type: string + required: + - email + GlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: type: string readOnly: true - model_type: + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: type: string readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true api_url: type: string - format: uri readOnly: true nullable: true + typ: + type: string + readOnly: true + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable + readOnly: true + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true required: - - model_type - - serializer - DataOutput: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - read_only + - typ + - type + - units + - value + Group: type: object - description: Serializer for the DataOutput model. + description: Serializer for a 'Group'. properties: pk: type: integer readOnly: true title: ID - created: + name: type: string - format: date + maxLength: 150 + permissions: + type: object + additionalProperties: {} + description: Return a list of permissions associated with the group. readOnly: true - user: - type: integer nullable: true - user_detail: + roles: + type: array + items: + $ref: '#/components/schemas/RuleSet' + readOnly: true + nullable: true + users: + type: array + items: + $ref: '#/components/schemas/User' + readOnly: true + nullable: true + required: + - name + - pk + HealthCheckStatus: + type: object + description: Status of the overall system health. + properties: + status: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' readOnly: true - total: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - progress: + default: ok + description: |- + Health status of the InvenTree server + + * `ok` - ok + * `loading` - loading + required: + - status + HealthCheckStatusStatusEnum: + enum: + - ok + - loading + type: string + description: |- + * `ok` - ok + * `loading` - loading + Icon: + type: object + description: Serializer for an icon. + properties: + name: + type: string + category: + type: string + tags: + type: array + items: + type: string + variants: + type: object + additionalProperties: + type: string + required: + - category + - name + - tags + - variants + IconPackage: + type: object + description: Serializer for a list of icons. + properties: + name: + type: string + prefix: + type: string + fonts: + type: object + additionalProperties: + type: string + icons: + type: object + additionalProperties: + $ref: '#/components/schemas/Icon' + required: + - fonts + - icons + - name + - prefix + IdEnum: + type: string + enum: + - login + - login_by_code + - mfa_authenticate + - mfa_reauthenticate + - provider_redirect + - provider_signup + - provider_token + - reauthenticate + - signup + - verify_email + - verify_phone + ImportParameter: + type: object + description: Serializer for a ImportParameter. + properties: + name: + type: string + value: + type: string + parameter_template: type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - complete: + nullable: true + description: Return the ID of the parameter template if available. + readOnly: true + on_category: type: boolean - output_type: + required: + - name + - on_category + - value + ImportRequest: + type: object + description: Serializer for the import request. + properties: + plugin: + type: string + supplier: + type: string + part_import_id: + type: string + category_id: + type: integer + nullable: true + part_id: + type: integer + nullable: true + required: + - part_import_id + - plugin + - supplier + ImportResult: + type: object + description: Serializer for the import result. + properties: + part_id: + type: integer + part_detail: + $ref: '#/components/schemas/Part' + manufacturer_part_id: + type: integer + supplier_part_id: + type: integer + pricing: + type: array + items: + type: array + items: + type: number + format: double + minLength: 2 + maxLength: 2 + description: Return the pricing data as a dictionary. + readOnly: true + parameters: + type: array + items: + $ref: '#/components/schemas/ImportParameter' + required: + - manufacturer_part_id + - parameters + - part_detail + - part_id + - pricing + - supplier_part_id + InfoApi: + type: object + description: InvenTree server information - some information might be blanked + if called without elevated credentials. + properties: + server: type: string - nullable: true - maxLength: 100 - template_name: + readOnly: true + id: type: string + readOnly: true nullable: true - maxLength: 100 - plugin: + version: type: string - nullable: true - maxLength: 100 - output: + readOnly: true + instance: type: string - format: uri readOnly: true - nullable: true - errors: - nullable: true - required: - - created - - pk - - user_detail - DefaultLocation: - type: object - description: |- - Brief serializer for a StockLocation object. - - Defined here, rather than stock.serializers, to negotiate circular imports. - properties: - pk: + apiVersion: type: integer readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - DirectionEnum: - enum: - - I - - O - type: string - description: |- - * `I` - Inbound - * `O` - Outbound - DuplicateOrder: - type: object - description: Serializer for specifying options when duplicating an order. - properties: - order_id: - type: integer - description: ID of the order to duplicate - copy_lines: - type: boolean - default: true - description: Copy line items from the original order - copy_extra_lines: - type: boolean - default: true - description: Copy extra line items from the original order - copy_parameters: + worker_running: type: boolean - default: true - description: Copy order parameters from the original order - required: - - order_id - DuplicatePart: - type: object - description: |- - Serializer for specifying options when duplicating a Part. - - The fields in this serializer control how the Part is duplicated. - properties: - part: + readOnly: true + worker_count: type: integer - title: Original Part - description: Select original part to duplicate - copy_image: + readOnly: true + worker_pending_tasks: + type: integer + readOnly: true + plugins_enabled: type: boolean - default: false - description: Copy image from original part - copy_bom: + readOnly: true + plugins_install_disabled: type: boolean - default: false - description: Copy bill of materials from original part - copy_parameters: + readOnly: true + active_plugins: + readOnly: true + email_configured: type: boolean - default: false - description: Copy parameter data from original part - copy_notes: + readOnly: true + debug_mode: type: boolean - default: true - description: Copy notes from original part - copy_tests: + readOnly: true + docker_mode: type: boolean - default: false - description: Copy test templates from original part - required: - - part - EmailMessage: - type: object - description: Serializer for the EmailMessage model. - properties: - pk: - type: string - format: uuid readOnly: true - title: Global ID - description: Unique identifier for this message - global_id: + default_locale: type: string - format: uuid readOnly: true - description: Unique identifier for this message - message_id_key: - type: string - nullable: true - title: Message ID - description: Identifier for this message (might be supplied by external - system) - maxLength: 250 - thread_id_key: - type: string - nullable: true - title: Thread ID - description: Identifier for this message thread (might be supplied by external - system) - maxLength: 250 - thread: - type: string - format: uuid - description: Linked thread for this message - nullable: true - subject: - type: string - maxLength: 250 - body: + customize: + allOf: + - $ref: '#/components/schemas/Customize' + readOnly: true + system_health: + type: boolean + readOnly: true + database: type: string - to: + readOnly: true + platform: type: string - format: email - maxLength: 254 - sender: + readOnly: true + installer: type: string - format: email - maxLength: 254 - status: - nullable: true - oneOf: - - $ref: '#/components/schemas/EmailMessageStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - timestamp: + readOnly: true + target: type: string - format: date-time readOnly: true - headers: nullable: true - full_message: + django_admin: type: string - nullable: true - direction: - nullable: true - oneOf: - - $ref: '#/components/schemas/DirectionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - priority: + readOnly: true + settings: allOf: - - $ref: '#/components/schemas/PriorityEnum' - minimum: -9223372036854775808 - maximum: 9223372036854775807 - error_code: + - $ref: '#/components/schemas/Settings' + readOnly: true + required: + - active_plugins + - apiVersion + - customize + - database + - debug_mode + - default_locale + - django_admin + - docker_mode + - email_configured + - installer + - instance + - platform + - plugins_enabled + - plugins_install_disabled + - server + - settings + - system_health + - version + - worker_count + - worker_pending_tasks + - worker_running + InitialStock: + type: object + description: Serializer for creating initial stock quantity. + properties: + quantity: type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + title: Initial Stock Quantity + description: Specify initial stock quantity for this Part. If quantity is + zero, no stock is added. + location: + type: integer nullable: true - maxLength: 50 - error_message: + title: Initial Stock Location + description: Specify initial stock location for this Part + required: + - quantity + InitialSupplier: + type: object + description: Serializer for adding initial supplier / manufacturer information. + properties: + supplier: + type: integer + nullable: true + description: Select supplier (or leave blank to skip) + sku: type: string + description: Supplier stock keeping unit + maxLength: 100 + manufacturer: + type: integer nullable: true - error_timestamp: + description: Select manufacturer (or leave blank to skip) + mpn: type: string - format: date-time - nullable: true - delivery_options: - nullable: true + description: Manufacturer part number + maxLength: 100 + InstallStockItem: + type: object + description: Serializer for installing a stock item into a given part. + properties: + stock_item: + type: integer + description: Select stock item to install + quantity: + type: integer + minimum: 1 + default: 1 + title: Quantity to Install + description: Enter the quantity of items to install + note: + type: string + description: Add transaction note (optional) required: - - body - - global_id - - pk - - priority - - sender - - subject - - timestamp - - to - EmailMessageStatusEnum: + - stock_item + IsTrueEnum: + type: boolean enum: - - A - - S - - F - - D - - R - - C + - true + ItemTypeEnum: + enum: + - all + - untracked + - tracked type: string description: |- - * `A` - Announced - * `S` - Sent - * `F` - Failed - * `D` - Delivered - * `R` - Read - * `C` - Confirmed - ErrorMessage: + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + LabelPrint: type: object - description: DRF serializer for server error messages. + description: Serializer class for printing a label. properties: - when: - type: string - format: date-time - readOnly: true - info: - type: string - readOnly: true - data: - type: string - readOnly: true - nullable: true - path: - type: string - format: uri - readOnly: true - nullable: true - maxLength: 200 - pk: + template: type: integer - readOnly: true - title: ID + description: Select label template + plugin: + type: string + title: Printing Plugin + description: Select plugin to use for label printing + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report required: - - info - - pk - - when - ExtendedUser: + - items + - template + LabelTemplate: type: object - description: Serializer for a User with a bit more info. + description: Serializer class for label template model. properties: pk: type: integer readOnly: true title: ID - username: + name: type: string - description: Username - first_name: + description: Template name + maxLength: 100 + description: type: string - description: First name of the user - last_name: + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: type: string - description: Last name of the user - email: + format: uri + filters: type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: type: boolean - title: Superuser - description: Is this user a superuser - is_active: + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: type: boolean - title: Active - description: Is this user account active - profile: + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: allOf: - - $ref: '#/components/schemas/BriefUserProfile' + - $ref: '#/components/schemas/User' readOnly: true + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm required: - - email - - first_name - - groups - - last_name + - description + - model_type + - name - pk - - profile - - username - FailedTask: + - revision + - template + LicenseView: type: object - description: Serializer for an individual failed task object. + description: Serializer for license information. properties: - pk: - type: string - readOnly: true - name: - type: string - readOnly: true - description: Optional human-readable name for lookup and display. - func: - type: string - title: Function - description: Dotted import path to the callable, e.g. myapp.tasks.job. - maxLength: 256 - args: - type: string + backend: + type: array + items: {} readOnly: true - nullable: true - title: Arguments - description: Pickled positional arguments (tuple). - kwargs: - type: string + description: Backend licenses texts + frontend: + type: array + items: {} readOnly: true - nullable: true - title: Keyword arguments - description: Pickled keyword arguments (dict). - started: + description: Frontend licenses texts + required: + - backend + - frontend + Link: + type: object + description: Serializer for all possible links. + properties: + doc: type: string - format: date-time - readOnly: true - title: Started at - description: When the worker started executing the task. - stopped: + format: uri + code: type: string - format: date-time - readOnly: true - title: Stopped at - description: When the worker finished (success or failure). - attempt_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: How many times execution was attempted. - result: + format: uri + app: type: string + format: uri + bug: + type: string + format: uri required: - - func - - name - - pk - - result - - started - - stopped - Flag: + - app + - bug + - code + - doc + LocatePlugin: type: object - description: Serializer for feature flags. + description: Serializer for the LocatePluginView API endpoint. properties: - key: - type: string - readOnly: true - state: + plugin: type: string - readOnly: true - conditions: - type: array - items: - type: object - additionalProperties: {} - readOnly: true - nullable: true + description: Plugin to use for location identification + item: + type: integer + description: StockItem to identify + location: + type: integer + description: StockLocation to identify required: - - key - - state - GenerateBatchCode: + - plugin + Location: type: object - description: |- - Serializer for generating a batch code. - - Any of the provided write-only fields can be used for additional context. + description: Detailed information about a stock location. properties: - batch_code: + pk: + type: integer + readOnly: true + title: ID + barcode_hash: type: string readOnly: true - description: Generated batch code - build_order: + description: Unique hash of barcode data + name: + type: string + description: Name + maxLength: 100 + level: type: integer - nullable: true - description: Select build order - item: + readOnly: true + description: + type: string + description: Description (optional) + maxLength: 250 + parent: type: integer nullable: true - title: Stock Item - description: Select stock item to generate batch code for - location: - type: integer + title: Parent Location + description: Parent stock location + pathstring: + type: string + readOnly: true + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true nullable: true - description: Select location to generate batch code for - part: + items: type: integer - nullable: true - description: Select part to generate batch code for - purchase_order: + readOnly: true + title: Stock Items + sublocations: + type: integer + readOnly: true + owner: type: integer nullable: true - description: Select purchase order - quantity: - type: number - format: double - nullable: true - description: Enter quantity for batch code - required: - - batch_code - GenerateSerialNumber: - type: object - description: |- - Serializer for generating one or multiple serial numbers. - - Any of the provided write-only fields can be used for additional context. - - Note that in the case where multiple serial numbers are required, - the "serial_number" field will return a string with multiple serial numbers - separated by a comma. - properties: - serial_number: + description: Select Owner + icon: type: string readOnly: true + custom_icon: + type: string nullable: true - description: Generated serial number - part: + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: type: integer nullable: true - description: Select part to generate serial number for - quantity: - type: integer - default: 1 - description: Quantity of serial numbers to generate - GenericStateClass: - type: object - description: API serializer for generic state class information. - properties: - status_class: - type: string + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' readOnly: true - title: Class - values: - type: object - additionalProperties: - $ref: '#/components/schemas/GenericStateValue' + nullable: true + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true required: - - status_class - - values - GenericStateValue: + - barcode_hash + - icon + - items + - level + - name + - pathstring + - pk + - sublocations + LocationBrief: type: object - description: API serializer for generic state information. + description: Provides a brief serializer for a StockLocation object. properties: - key: + pk: type: integer - logical_key: - type: string + readOnly: true + title: ID name: type: string - label: - type: string - color: + description: Name + maxLength: 100 + pathstring: type: string - custom: - type: boolean + title: Path + description: Path + maxLength: 250 required: - - key - - label - name - GetAuthToken: + - pk + LocationTree: type: object - description: Serializer for the GetAuthToken API endpoint. + description: Serializer for a simple tree view. properties: - token: - type: string + pk: + type: integer readOnly: true + title: ID name: type: string - expiry: + description: Name + maxLength: 100 + parent: + type: integer + nullable: true + icon: type: string - format: date + description: |- + Get the current icon used for this location. + + The icon field on this model takes precedences over the possibly assigned stock location type + readOnly: true + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + sublocations: + type: integer readOnly: true required: - - expiry + - icon - name - - token - GetSimpleLogin: - type: object - description: Serializer for the simple login view. - properties: - email: - type: string - required: + - pk + - sublocations + LoginMethodsEnum: + type: string + enum: - email - GlobalSettings: + - username + MachineConfig: type: object - description: Serializer for the InvenTreeSetting model. + description: Serializer for a MachineConfig. properties: pk: - type: integer - readOnly: true - title: ID - key: type: string + format: uuid readOnly: true - value: - type: string - nullable: true + title: Id name: type: string - readOnly: true - description: + description: Name of machine + maxLength: 255 + machine_type: type: string readOnly: true - type: + description: Type of machine + driver: type: string readOnly: true - units: - type: string + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. readOnly: true - model_name: + status_model: type: string - readOnly: true nullable: true - api_url: - type: string + description: Textual machine status name if available, else None. readOnly: true - nullable: true - typ: + status_text: type: string + description: Current status text for machine. readOnly: true - read_only: + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: type: boolean - description: Indicates if the setting is overridden by an environment variable + description: Indicator if driver for machine is available. readOnly: true - title: Override - confirm: + restart_required: type: boolean + description: Indicator if machine restart is required. readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' readOnly: true + default: [] required: - - choices - - confirm - - confirm_text - - description - - key + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type - name - pk - - read_only - - typ - - type - - units - - value - Group: + - properties + - restart_required + - status + - status_text + MachineConfigCreate: type: object - description: Serializer for a 'Group'. + description: Serializer for creating a MachineConfig. properties: pk: - type: integer + type: string + format: uuid readOnly: true - title: ID + title: Id name: type: string - maxLength: 150 - required: - - name - - pk - HealthCheckStatus: - type: object - description: Status of the overall system health. - properties: + description: Name of machine + maxLength: 255 + machine_type: + type: string + description: Type of machine + maxLength: 255 + driver: + type: string + description: Driver used for the machine + maxLength: 255 + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled status: - allOf: - - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' + type: integer + description: Numerical machine status if available, else -1. readOnly: true - default: ok - description: |- - Health status of the InvenTree server - - * `ok` - ok - * `loading` - loading - required: - - status - HealthCheckStatusStatusEnum: - enum: - - ok - - loading - type: string - description: |- - * `ok` - ok - * `loading` - loading - Icon: - type: object - description: Serializer for an icon. - properties: - name: + status_model: type: string - category: + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: type: string - tags: + description: Current status text for machine. + readOnly: true + machine_errors: type: array items: type: string - variants: - type: object - additionalProperties: - type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] required: - - category + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type - name - - tags - - variants - IconPackage: + - pk + - properties + - restart_required + - status + - status_text + MachineDriver: type: object - description: Serializer for a list of icons. + description: Machine drivers. properties: + slug: + type: string + pattern: ^[-a-zA-Z0-9_]+$ name: type: string - prefix: + description: type: string - fonts: + provider_file: + type: string + description: File that contains the class definition. + readOnly: true + provider_plugin: type: object - additionalProperties: + additionalProperties: {} + nullable: true + description: Plugin(s) that contain(s) the class definition. + readOnly: true + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. + readOnly: true + machine_type: + type: string + readOnly: true + pattern: ^[-a-zA-Z0-9_]+$ + driver_errors: + type: array + items: type: string - icons: - type: object - additionalProperties: - $ref: '#/components/schemas/Icon' + description: Errors registered against driver. + readOnly: true required: - - fonts - - icons + - description + - driver_errors + - is_builtin + - machine_type - name - - prefix - ImportParameter: + - provider_file + - slug + MachineProperty: type: object - description: Serializer for a ImportParameter. + description: Machine Properties are set by the driver/machine to represent specific + state. properties: - name: + key: type: string + description: Key of the property value: type: string - parameter_template: + description: Value of the property + group: + type: string + description: Grouping of the property + type: + allOf: + - $ref: '#/components/schemas/MachinePropertyTypeEnum' + default: str + description: |- + Type of the property + + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + max_progress: type: integer - nullable: true - description: Return the ID of the parameter template if available. - readOnly: true - on_category: - type: boolean + nullable: true + description: Maximum value for progress type, required if type=progress required: - - name - - on_category + - key - value - ImportRequest: + MachinePropertyTypeEnum: + enum: + - str + - bool + - progress + - int + - float + type: string + description: |- + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + MachineRegistryError: type: object - description: Serializer for the import request. + description: Machine registry error. properties: - plugin: - type: string - supplier: - type: string - part_import_id: + message: type: string - category_id: - type: integer - nullable: true - part_id: - type: integer - nullable: true required: - - part_import_id - - plugin - - supplier - ImportResult: + - message + MachineRegistryStatus: type: object - description: Serializer for the import result. + description: Machine registry status, showing all errors that were registered. properties: - part_id: - type: integer - part_detail: - $ref: '#/components/schemas/Part' - manufacturer_part_id: - type: integer - supplier_part_id: - type: integer - pricing: - type: array - items: - type: array - items: - type: number - format: double - minLength: 2 - maxLength: 2 - description: Return the pricing data as a dictionary. - readOnly: true - parameters: + registry_errors: type: array items: - $ref: '#/components/schemas/ImportParameter' + $ref: '#/components/schemas/MachineRegistryError' required: - - manufacturer_part_id - - parameters - - part_detail - - part_id - - pricing - - supplier_part_id - InfoApi: + - registry_errors + MachineRestart: type: object - description: InvenTree server information - some information might be blanked - if called without elevated credentials. + description: Serializer for the machine restart response. properties: - server: - type: string + ok: + type: boolean + required: + - ok + MachineSetting: + type: object + description: Serializer for the MachineSetting model. + properties: + pk: + type: integer readOnly: true - id: + title: ID + key: type: string readOnly: true + value: + type: string nullable: true - version: + name: type: string readOnly: true - instance: + description: type: string readOnly: true - apiVersion: - type: integer - readOnly: true - worker_running: - type: boolean + type: + type: string readOnly: true - worker_count: - type: integer + choices: + type: array + items: {} + description: Returns the choices available for a given item. readOnly: true - worker_pending_tasks: - type: integer + model_name: + type: string readOnly: true - plugins_enabled: - type: boolean + nullable: true + model_filters: + type: object + additionalProperties: {} readOnly: true - plugins_install_disabled: - type: boolean + api_url: + type: string readOnly: true - active_plugins: + nullable: true + typ: + type: string readOnly: true - email_configured: - type: boolean + units: + type: string readOnly: true - debug_mode: + required: type: boolean readOnly: true - docker_mode: + confirm: type: boolean readOnly: true - default_locale: + description: Indicates if changing this setting requires confirmation + confirm_text: type: string readOnly: true - customize: + config_type: allOf: - - $ref: '#/components/schemas/Customize' - readOnly: true - system_health: - type: boolean + - $ref: '#/components/schemas/ConfigTypeEnum' readOnly: true - database: + required: + - choices + - config_type + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - required + - typ + - type + - units + - value + MachineType: + type: object + description: Available machine types. + properties: + slug: type: string - readOnly: true - platform: + pattern: ^[-a-zA-Z0-9_]+$ + name: type: string - readOnly: true - installer: + description: type: string - readOnly: true - target: + provider_file: type: string + description: File that contains the class definition. readOnly: true + provider_plugin: + type: object + additionalProperties: {} nullable: true - django_admin: - type: string + description: Plugin(s) that contain(s) the class definition. readOnly: true - settings: - allOf: - - $ref: '#/components/schemas/Settings' + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. readOnly: true required: - - active_plugins - - apiVersion - - customize - - database - - debug_mode - - default_locale - - django_admin - - docker_mode - - email_configured - - installer - - instance - - platform - - plugins_enabled - - plugins_install_disabled - - server - - settings - - system_health - - version - - worker_count - - worker_pending_tasks - - worker_running - InitialStock: + - description + - is_builtin + - name + - provider_file + - slug + ManufacturerPart: type: object - description: Serializer for creating initial stock quantity. + description: Serializer for ManufacturerPart object. properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - title: Initial Stock Quantity - description: Specify initial stock quantity for this Part. If quantity is - zero, no stock is added. - location: + pk: type: integer - nullable: true - title: Initial Stock Location - description: Specify initial stock location for this Part - required: - - quantity - InitialSupplier: - type: object - description: Serializer for adding initial supplier / manufacturer information. - properties: - supplier: + readOnly: true + title: ID + part: type: integer + title: Base Part + description: Select part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - description: Select supplier (or leave blank to skip) - sku: + pretty_name: type: string - description: Supplier stock keeping unit - maxLength: 100 + readOnly: true + nullable: true manufacturer: type: integer + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true nullable: true - description: Select manufacturer (or leave blank to skip) - mpn: + description: type: string - description: Manufacturer part number + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number maxLength: 100 - InstallStockItem: - type: object - description: Serializer for installing a stock item into a given part. - properties: - stock_item: - type: integer - description: Select stock item to install - quantity: - type: integer - minimum: 1 - default: 1 - title: Quantity to Install - description: Enter the quantity of items to install - note: + link: type: string - description: Add transaction note (optional) - required: - - stock_item - ItemTypeEnum: - enum: - - all - - untracked - - tracked - type: string - description: |- - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - LabelPrint: - type: object - description: Serializer class for printing a label. - properties: - template: - type: integer - description: Select label template - plugin: + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: type: string - title: Printing Plugin - description: Select plugin to use for label printing - items: + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + tags: type: array items: - type: integer - description: List of item primary keys to include in the report + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true required: - - items - - template - LabelTemplate: + - manufacturer + - part + - pk + MeUser: type: object - description: Serializer class for label template model. + description: API serializer specifically for the 'me' endpoint. properties: pk: type: integer readOnly: true title: ID - name: - type: string - description: Template name - maxLength: 100 - description: + username: type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: + description: Username + first_name: type: string - format: uri - filters: + description: First name of the user + last_name: type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: + description: Last name of the user + email: type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + is_staff: type: boolean - description: Template is enabled - revision: - type: integer readOnly: true - attach_to_model: + title: Staff + description: Does this user have staff permissions + is_superuser: type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: + readOnly: true + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + readOnly: true + title: Active + description: Is this user account active + profile: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/UserProfile' readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: - type: number - format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm required: - - description - - model_type - - name + - email + - first_name + - groups + - is_active + - is_staff + - is_superuser + - last_name - pk - - revision - - template - LicenseView: + - profile + - username + Metadata: type: object - description: Serializer for license information. + description: Serializer class for model metadata API access. properties: - backend: - type: array - items: {} - readOnly: true - description: Backend licenses texts - frontend: - type: array - items: {} - readOnly: true - description: Frontend licenses texts + metadata: {} required: - - backend - - frontend - Link: + - metadata + ModelTypeDf8Enum: + enum: + - build.build + - company.company + - company.manufacturerpart + - company.supplierpart + - order.purchaseorder + - order.returnorder + - order.salesorder + - order.salesordershipment + - order.transferorder + - part.part + - stock.stocklocation + type: string + description: |- + * `build.build` - Build Order + * `company.company` - Company + * `company.manufacturerpart` - Manufacturer Part + * `company.supplierpart` - Supplier Part + * `order.purchaseorder` - Purchase Order + * `order.returnorder` - Return Order + * `order.salesorder` - Sales Order + * `order.salesordershipment` - Sales Order Shipment + * `order.transferorder` - Transfer Order + * `part.part` - Part + * `stock.stocklocation` - Stock Location + NameEnum: + enum: + - admin + - part_category + - part + - bom + - stock_location + - stock + - build + - purchase_order + - sales_order + - return_order + - transfer_order + - repair_order + type: string + description: |- + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + NewsFeedEntry: type: object - description: Serializer for all possible links. + description: Serializer for the NewsFeedEntry model. properties: - doc: + pk: + type: integer + readOnly: true + title: ID + feed_id: type: string - format: uri - code: + title: Id + maxLength: 250 + title: type: string - format: uri - app: + maxLength: 250 + link: type: string format: uri - bug: + maxLength: 250 + published: type: string - format: uri - required: - - app - - bug - - code - - doc - LocatePlugin: - type: object - description: Serializer for the LocatePluginView API endpoint. - properties: - plugin: + format: date-time + author: type: string - description: Plugin to use for location identification - item: - type: integer - description: StockItem to identify - location: - type: integer - description: StockLocation to identify + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean required: - - plugin - Location: + - author + - feed_id + - link + - pk + - published + - read + - summary + - title + NotesImage: type: object - description: Detailed information about a stock location. + description: Serializer for the NotesImage model. properties: pk: type: integer readOnly: true title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - name: - type: string - description: Name - maxLength: 100 - level: - type: integer - readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer - nullable: true - title: Parent Location - description: Parent stock location - pathstring: + image: type: string - readOnly: true - title: Path - description: Path - items: - type: integer - readOnly: true - title: Stock Items - sublocations: + format: uri + user: type: integer readOnly: true - owner: - type: integer nullable: true - description: Select Owner - icon: + date: type: string + format: date-time readOnly: true - custom_icon: + model_type: type: string nullable: true - title: Icon - description: Icon (optional) + description: Target model type for this image maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: + model_id: type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 nullable: true - description: Stock location type of this location - location_type_detail: - allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true + description: Target model ID for this image required: - - barcode_hash - - icon - - items - - level - - name - - pathstring + - date + - image - pk - - sublocations - LocationBrief: + NotificationMessage: type: object - description: Provides a brief serializer for a StockLocation object. + description: Serializer for the InvenTreeUserSetting model. properties: pk: type: integer readOnly: true title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - LocationTree: - type: object - description: Serializer for a simple tree view. - properties: - pk: + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. + readOnly: true + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: type: integer readOnly: true - title: ID + category: + type: string + readOnly: true name: type: string - description: Name - maxLength: 100 - parent: - type: integer + readOnly: true + message: + type: string + readOnly: true nullable: true - icon: + creation: type: string - description: |- - Get the current icon used for this location. - - The icon field on this model takes precedences over the possibly assigned stock location type + format: date-time readOnly: true - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - sublocations: + age: type: integer + description: Age of the message in seconds. + readOnly: true + age_human: + type: string + description: Humanized age. readOnly: true + read: + type: boolean required: - - icon + - age + - age_human + - category + - creation - name - pk - - sublocations - MachineConfig: + - read + - source + - target + - user + NullEnum: + enum: + - null + ObservabilityEnd: type: object - description: Serializer for a MachineConfig. + description: Serializer for observability end endpoint. properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: + traceid: type: string - readOnly: true - description: Type of machine - driver: + description: Trace ID to end + maxLength: 128 + service: type: string - readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: + description: Service name + maxLength: 128 + required: + - service + - traceid + OutcomeEnum: + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + - 60 + type: integer + description: |- + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + Owner: + type: object + description: Serializer for an "Owner" (either a "user" or a "group"). + properties: + pk: type: integer - description: Numerical machine status if available, else -1. readOnly: true - status_model: - type: string + title: ID + owner_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: + owner_model: type: string - description: Current status text for machine. readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. + name: + type: string readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' + label: + type: string readOnly: true - default: [] required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type + - label - name + - owner_model - pk - - properties - - restart_required - - status - - status_text - MachineConfigCreate: + PageSizeEnum: + enum: + - A4 + - A3 + - Legal + - Letter + type: string + description: |- + * `A4` - A4 + * `A3` - A3 + * `Legal` - Legal + * `Letter` - Letter + PaginatedAddressList: type: object - description: Serializer for creating a MachineConfig. + required: + - count + - results properties: - pk: + count: + type: integer + example: 123 + next: type: string - format: uuid - readOnly: true - title: Id - name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: Name of machine - maxLength: 255 - machine_type: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Address' + PaginatedApiTokenList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - description: Type of machine - maxLength: 255 - driver: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: Driver used for the machine - maxLength: 255 - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ApiToken' + PaginatedAttachmentList: + type: object + required: + - count + - results + properties: + count: type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: + example: 123 + next: type: string nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: Current status text for machine. - readOnly: true - machine_errors: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: + $ref: '#/components/schemas/Attachment' + PaginatedBarcodeScanResultList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type - - name - - pk - - properties - - restart_required - - status - - status_text - MachineDriver: + $ref: '#/components/schemas/BarcodeScanResult' + PaginatedBomItemList: type: object - description: Machine drivers. + required: + - count + - results properties: - slug: + count: + type: integer + example: 123 + next: type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItem' + PaginatedBomItemSubstituteList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - provider_file: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + PaginatedBuildItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - machine_type: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - driver_errors: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array items: - type: string - description: Errors registered against driver. - readOnly: true - required: - - description - - driver_errors - - is_builtin - - machine_type - - name - - provider_file - - slug - MachineProperty: + $ref: '#/components/schemas/BuildItem' + PaginatedBuildLineList: type: object - description: Machine Properties are set by the driver/machine to represent specific - state. + required: + - count + - results properties: - key: - type: string - description: Key of the property - value: + count: + type: integer + example: 123 + next: type: string - description: Value of the property - group: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: Grouping of the property - type: - allOf: - - $ref: '#/components/schemas/MachinePropertyTypeEnum' - default: str - description: |- - Type of the property - - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - max_progress: - type: integer nullable: true - description: Maximum value for progress type, required if type=progress - required: - - key - - value - MachinePropertyTypeEnum: - enum: - - str - - bool - - progress - - int - - float - type: string - description: |- - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - MachineRegistryError: + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BuildLine' + PaginatedBuildList: type: object - description: Machine registry error. - properties: - message: - type: string required: - - message - MachineRegistryStatus: - type: object - description: Machine registry status, showing all errors that were registered. + - count + - results properties: - registry_errors: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array items: - $ref: '#/components/schemas/MachineRegistryError' - required: - - registry_errors - MachineRestart: + $ref: '#/components/schemas/Build' + PaginatedCategoryList: type: object - description: Serializer for the machine restart response. - properties: - ok: - type: boolean required: - - ok - MachineSetting: - type: object - description: Serializer for the MachineSetting model. + - count + - results properties: - pk: + count: type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: + example: 123 + next: type: string nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - choices: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + items: + $ref: '#/components/schemas/Category' + PaginatedCategoryParameterTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - readOnly: true nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true nullable: true - typ: - type: string - readOnly: true - units: + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryParameterTemplate' + PaginatedCategoryTreeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - required: - - choices - - config_type - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - required - - typ - - type - - units - - value - MachineType: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryTree' + PaginatedCompanyList: type: object - description: Available machine types. + required: + - count + - results properties: - slug: - type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: - type: string - description: + count: + type: integer + example: 123 + next: type: string - provider_file: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - required: - - description - - is_builtin - - name - - provider_file - - slug - ManufacturerPart: + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Company' + PaginatedContactList: type: object - description: Serializer for ManufacturerPart object. + required: + - count + - results properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - manufacturer: + count: type: integer - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - description: + example: 123 + next: type: string nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Contact' + PaginatedContentTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - description: Unique hash of barcode data - maxLength: 128 - notes: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string nullable: true - description: Markdown notes (optional) - maxLength: 50000 - required: - - manufacturer - - part - - pk - MeUser: + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ContentType' + PaginatedCustomStateList: type: object - description: API serializer specifically for the 'me' endpoint. + required: + - count + - results properties: - pk: + count: type: integer - readOnly: true - title: ID - username: + example: 123 + next: type: string - description: Username - first_name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: First name of the user - last_name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CustomState' + PaginatedCustomUnitList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - description: Last name of the user - email: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - format: email - description: Email address of the user - groups: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: type: array items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - required: - - email - - first_name - - groups - - is_active - - is_staff - - is_superuser - - last_name - - pk - - profile - - username - ModelTypeDf8Enum: - enum: - - build.build - - company.company - - company.manufacturerpart - - company.supplierpart - - order.purchaseorder - - order.returnorder - - order.salesorder - - order.salesordershipment - - order.transferorder - - part.part - - stock.stocklocation - type: string - description: |- - * `build.build` - Build Order - * `company.company` - Company - * `company.manufacturerpart` - Manufacturer Part - * `company.supplierpart` - Supplier Part - * `order.purchaseorder` - Purchase Order - * `order.returnorder` - Return Order - * `order.salesorder` - Sales Order - * `order.salesordershipment` - Sales Order Shipment - * `order.transferorder` - Transfer Order - * `part.part` - Part - * `stock.stocklocation` - Stock Location - NameEnum: - enum: - - admin - - part_category - - part - - bom - - stock_location - - stock - - build - - purchase_order - - sales_order - - return_order - - transfer_order - - repair_order - type: string - description: |- - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - NewsFeedEntry: + $ref: '#/components/schemas/CustomUnit' + PaginatedDataImportColumnMapList: type: object - description: Serializer for the NewsFeedEntry model. + required: + - count + - results properties: - pk: + count: type: integer - readOnly: true - title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: + example: 123 + next: type: string + nullable: true format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - maxLength: 250 - read: - type: boolean - required: - - author - - feed_id - - link - - pk - - published - - read - - summary - - title - NotesImage: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + PaginatedDataImportRowList: type: object - description: Serializer for the NotesImage model. + required: + - count + - results properties: - pk: + count: type: integer - readOnly: true - title: ID - image: + example: 123 + next: type: string - format: uri - user: - type: integer - readOnly: true nullable: true - date: - type: string - format: date-time - readOnly: true - model_type: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string nullable: true - description: Target model type for this image - maxLength: 100 - model_id: + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportRow' + PaginatedDataImportSessionList: + type: object + required: + - count + - results + properties: + count: type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 + example: 123 + next: + type: string nullable: true - description: Target model ID for this image - required: - - date - - image - - pk - NotificationMessage: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportSession' + PaginatedDataOutputList: type: object - description: Serializer for the InvenTreeUserSetting model. + required: + - count + - results properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. - readOnly: true - user: + count: type: integer - readOnly: true - category: + example: 123 + next: type: string - readOnly: true - name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - message: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataOutput' + PaginatedEmailMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - readOnly: true nullable: true - creation: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - format: date-time - readOnly: true - age: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/EmailMessage' + PaginatedErrorMessageList: + type: object + required: + - count + - results + properties: + count: type: integer - description: Age of the message in seconds. - readOnly: true - age_human: + example: 123 + next: type: string - description: Humanized age. - readOnly: true - read: - type: boolean - required: - - age - - age_human - - category - - creation - - name - - pk - - read - - source - - target - - user - NullEnum: - enum: - - null - ObservabilityEnd: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ErrorMessage' + PaginatedFailedTaskList: type: object - description: Serializer for observability end endpoint. + required: + - count + - results properties: - traceid: + count: + type: integer + example: 123 + next: type: string - description: Trace ID to end - maxLength: 128 - service: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - description: Service name - maxLength: 128 - required: - - service - - traceid - OutcomeEnum: - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - - 60 - type: integer - description: |- - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - Owner: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/FailedTask' + PaginatedGlobalSettingsList: type: object - description: Serializer for an "Owner" (either a "user" or a "group"). + required: + - count + - results properties: - pk: - type: integer - readOnly: true - title: ID - owner_id: + count: type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 + example: 123 + next: + type: string nullable: true - owner_model: + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - name: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/GlobalSettings' + PaginatedGroupList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: type: string - readOnly: true - label: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: type: string - readOnly: true - required: - - label - - name - - owner_model - - pk - PageSizeEnum: - enum: - - A4 - - A3 - - Legal - - Letter - type: string - description: |- - * `A4` - A4 - * `A3` - A3 - * `Legal` - Legal - * `Letter` - Letter - PaginatedAddressList: + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Group' + PaginatedIconPackageList: type: object required: - count @@ -27311,8 +30720,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Address' - PaginatedApiTokenList: + $ref: '#/components/schemas/IconPackage' + PaginatedLabelTemplateList: type: object required: - count @@ -27334,8 +30743,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ApiToken' - PaginatedAttachmentList: + $ref: '#/components/schemas/LabelTemplate' + PaginatedLocationList: type: object required: - count @@ -27357,8 +30766,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Attachment' - PaginatedBarcodeScanResultList: + $ref: '#/components/schemas/Location' + PaginatedLocationTreeList: type: object required: - count @@ -27380,8 +30789,8 @@ components: results: type: array items: - $ref: '#/components/schemas/BarcodeScanResult' - PaginatedBomItemList: + $ref: '#/components/schemas/LocationTree' + PaginatedMachineConfigList: type: object required: - count @@ -27403,8 +30812,8 @@ components: results: type: array items: - $ref: '#/components/schemas/BomItem' - PaginatedBomItemSubstituteList: + $ref: '#/components/schemas/MachineConfig' + PaginatedManufacturerPartList: type: object required: - count @@ -27426,8 +30835,8 @@ components: results: type: array items: - $ref: '#/components/schemas/BomItemSubstitute' - PaginatedBuildItemList: + $ref: '#/components/schemas/ManufacturerPart' + PaginatedNewsFeedEntryList: type: object required: - count @@ -27449,8 +30858,8 @@ components: results: type: array items: - $ref: '#/components/schemas/BuildItem' - PaginatedBuildLineList: + $ref: '#/components/schemas/NewsFeedEntry' + PaginatedNotesImageList: type: object required: - count @@ -27472,8 +30881,8 @@ components: results: type: array items: - $ref: '#/components/schemas/BuildLine' - PaginatedBuildList: + $ref: '#/components/schemas/NotesImage' + PaginatedNotificationMessageList: type: object required: - count @@ -27495,8 +30904,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Build' - PaginatedCategoryList: + $ref: '#/components/schemas/NotificationMessage' + PaginatedOwnerList: type: object required: - count @@ -27518,8 +30927,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Category' - PaginatedCategoryParameterTemplateList: + $ref: '#/components/schemas/Owner' + PaginatedParameterList: type: object required: - count @@ -27541,8 +30950,8 @@ components: results: type: array items: - $ref: '#/components/schemas/CategoryParameterTemplate' - PaginatedCategoryTreeList: + $ref: '#/components/schemas/Parameter' + PaginatedParameterTemplateList: type: object required: - count @@ -27564,8 +30973,8 @@ components: results: type: array items: - $ref: '#/components/schemas/CategoryTree' - PaginatedCompanyList: + $ref: '#/components/schemas/ParameterTemplate' + PaginatedPartInternalPriceList: type: object required: - count @@ -27587,8 +30996,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Company' - PaginatedContactList: + $ref: '#/components/schemas/PartInternalPrice' + PaginatedPartList: type: object required: - count @@ -27610,8 +31019,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Contact' - PaginatedContentTypeList: + $ref: '#/components/schemas/Part' + PaginatedPartRelationList: type: object required: - count @@ -27633,8 +31042,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ContentType' - PaginatedCustomStateList: + $ref: '#/components/schemas/PartRelation' + PaginatedPartSalePriceList: type: object required: - count @@ -27656,8 +31065,8 @@ components: results: type: array items: - $ref: '#/components/schemas/CustomState' - PaginatedCustomUnitList: + $ref: '#/components/schemas/PartSalePrice' + PaginatedPartStocktakeList: type: object required: - count @@ -27679,8 +31088,8 @@ components: results: type: array items: - $ref: '#/components/schemas/CustomUnit' - PaginatedDataImportColumnMapList: + $ref: '#/components/schemas/PartStocktake' + PaginatedPartTestTemplateList: type: object required: - count @@ -27702,8 +31111,8 @@ components: results: type: array items: - $ref: '#/components/schemas/DataImportColumnMap' - PaginatedDataImportRowList: + $ref: '#/components/schemas/PartTestTemplate' + PaginatedPartThumbList: type: object required: - count @@ -27725,8 +31134,8 @@ components: results: type: array items: - $ref: '#/components/schemas/DataImportRow' - PaginatedDataImportSessionList: + $ref: '#/components/schemas/PartThumb' + PaginatedPendingTaskList: type: object required: - count @@ -27748,8 +31157,8 @@ components: results: type: array items: - $ref: '#/components/schemas/DataImportSession' - PaginatedDataOutputList: + $ref: '#/components/schemas/PendingTask' + PaginatedPluginConfigList: type: object required: - count @@ -27771,8 +31180,8 @@ components: results: type: array items: - $ref: '#/components/schemas/DataOutput' - PaginatedEmailMessageList: + $ref: '#/components/schemas/PluginConfig' + PaginatedPluginSettingList: type: object required: - count @@ -27794,8 +31203,8 @@ components: results: type: array items: - $ref: '#/components/schemas/EmailMessage' - PaginatedErrorMessageList: + $ref: '#/components/schemas/PluginSetting' + PaginatedProjectCodeList: type: object required: - count @@ -27817,8 +31226,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ErrorMessage' - PaginatedFailedTaskList: + $ref: '#/components/schemas/ProjectCode' + PaginatedPurchaseOrderExtraLineList: type: object required: - count @@ -27840,8 +31249,8 @@ components: results: type: array items: - $ref: '#/components/schemas/FailedTask' - PaginatedGlobalSettingsList: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + PaginatedPurchaseOrderLineItemList: type: object required: - count @@ -27863,8 +31272,8 @@ components: results: type: array items: - $ref: '#/components/schemas/GlobalSettings' - PaginatedGroupList: + $ref: '#/components/schemas/PurchaseOrderLineItem' + PaginatedPurchaseOrderList: type: object required: - count @@ -27886,8 +31295,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Group' - PaginatedIconPackageList: + $ref: '#/components/schemas/PurchaseOrder' + PaginatedRepairOrderAllocationList: type: object required: - count @@ -27909,8 +31318,8 @@ components: results: type: array items: - $ref: '#/components/schemas/IconPackage' - PaginatedLabelTemplateList: + $ref: '#/components/schemas/RepairOrderAllocation' + PaginatedRepairOrderLineItemList: type: object required: - count @@ -27932,8 +31341,8 @@ components: results: type: array items: - $ref: '#/components/schemas/LabelTemplate' - PaginatedLocationList: + $ref: '#/components/schemas/RepairOrderLineItem' + PaginatedRepairOrderList: type: object required: - count @@ -27955,8 +31364,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Location' - PaginatedLocationTreeList: + $ref: '#/components/schemas/RepairOrder' + PaginatedReportAssetList: type: object required: - count @@ -27978,8 +31387,8 @@ components: results: type: array items: - $ref: '#/components/schemas/LocationTree' - PaginatedMachineConfigList: + $ref: '#/components/schemas/ReportAsset' + PaginatedReportSnippetList: type: object required: - count @@ -28001,8 +31410,8 @@ components: results: type: array items: - $ref: '#/components/schemas/MachineConfig' - PaginatedManufacturerPartList: + $ref: '#/components/schemas/ReportSnippet' + PaginatedReportTemplateList: type: object required: - count @@ -28024,8 +31433,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ManufacturerPart' - PaginatedNewsFeedEntryList: + $ref: '#/components/schemas/ReportTemplate' + PaginatedReturnOrderExtraLineList: type: object required: - count @@ -28047,8 +31456,8 @@ components: results: type: array items: - $ref: '#/components/schemas/NewsFeedEntry' - PaginatedNotesImageList: + $ref: '#/components/schemas/ReturnOrderExtraLine' + PaginatedReturnOrderLineItemList: type: object required: - count @@ -28070,8 +31479,8 @@ components: results: type: array items: - $ref: '#/components/schemas/NotesImage' - PaginatedNotificationMessageList: + $ref: '#/components/schemas/ReturnOrderLineItem' + PaginatedReturnOrderList: type: object required: - count @@ -28093,8 +31502,8 @@ components: results: type: array items: - $ref: '#/components/schemas/NotificationMessage' - PaginatedOwnerList: + $ref: '#/components/schemas/ReturnOrder' + PaginatedRuleSetList: type: object required: - count @@ -28116,8 +31525,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Owner' - PaginatedParameterList: + $ref: '#/components/schemas/RuleSet' + PaginatedSalesOrderAllocationList: type: object required: - count @@ -28139,8 +31548,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Parameter' - PaginatedParameterTemplateList: + $ref: '#/components/schemas/SalesOrderAllocation' + PaginatedSalesOrderExtraLineList: type: object required: - count @@ -28162,8 +31571,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ParameterTemplate' - PaginatedPartInternalPriceList: + $ref: '#/components/schemas/SalesOrderExtraLine' + PaginatedSalesOrderLineItemList: type: object required: - count @@ -28185,8 +31594,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartInternalPrice' - PaginatedPartList: + $ref: '#/components/schemas/SalesOrderLineItem' + PaginatedSalesOrderList: type: object required: - count @@ -28208,8 +31617,8 @@ components: results: type: array items: - $ref: '#/components/schemas/Part' - PaginatedPartRelationList: + $ref: '#/components/schemas/SalesOrder' + PaginatedSalesOrderShipmentList: type: object required: - count @@ -28231,8 +31640,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartRelation' - PaginatedPartSalePriceList: + $ref: '#/components/schemas/SalesOrderShipment' + PaginatedScheduledTaskList: type: object required: - count @@ -28254,8 +31663,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartSalePrice' - PaginatedPartStocktakeList: + $ref: '#/components/schemas/ScheduledTask' + PaginatedSelectionEntryList: type: object required: - count @@ -28277,8 +31686,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartStocktake' - PaginatedPartTestTemplateList: + $ref: '#/components/schemas/SelectionEntry' + PaginatedSelectionListList: type: object required: - count @@ -28300,8 +31709,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartTestTemplate' - PaginatedPartThumbList: + $ref: '#/components/schemas/SelectionList' + PaginatedStockItemList: type: object required: - count @@ -28323,8 +31732,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PartThumb' - PaginatedPendingTaskList: + $ref: '#/components/schemas/StockItem' + PaginatedStockItemTestResultList: type: object required: - count @@ -28346,8 +31755,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PendingTask' - PaginatedPluginConfigList: + $ref: '#/components/schemas/StockItemTestResult' + PaginatedStockLocationTypeList: type: object required: - count @@ -28369,8 +31778,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PluginConfig' - PaginatedPluginSettingList: + $ref: '#/components/schemas/StockLocationType' + PaginatedStockTrackingList: type: object required: - count @@ -28392,8 +31801,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PluginSetting' - PaginatedProjectCodeList: + $ref: '#/components/schemas/StockTracking' + PaginatedSupplierPartList: type: object required: - count @@ -28415,8 +31824,8 @@ components: results: type: array items: - $ref: '#/components/schemas/ProjectCode' - PaginatedPurchaseOrderExtraLineList: + $ref: '#/components/schemas/SupplierPart' + PaginatedSupplierPriceBreakList: type: object required: - count @@ -28438,8 +31847,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - PaginatedPurchaseOrderLineItemList: + $ref: '#/components/schemas/SupplierPriceBreak' + PaginatedTransferOrderAllocationList: type: object required: - count @@ -28461,8 +31870,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PurchaseOrderLineItem' - PaginatedPurchaseOrderList: + $ref: '#/components/schemas/TransferOrderAllocation' + PaginatedTransferOrderLineItemList: type: object required: - count @@ -28484,8 +31893,8 @@ components: results: type: array items: - $ref: '#/components/schemas/PurchaseOrder' - PaginatedRepairOrderAllocationList: + $ref: '#/components/schemas/TransferOrderLineItem' + PaginatedTransferOrderList: type: object required: - count @@ -28507,8 +31916,8 @@ components: results: type: array items: - $ref: '#/components/schemas/RepairOrderAllocation' - PaginatedRepairOrderLineItemList: + $ref: '#/components/schemas/TransferOrder' + PaginatedUserCreateList: type: object required: - count @@ -28530,8 +31939,8 @@ components: results: type: array items: - $ref: '#/components/schemas/RepairOrderLineItem' - PaginatedRepairOrderList: + $ref: '#/components/schemas/UserCreate' + PaginatedUserSettingsList: type: object required: - count @@ -28553,854 +31962,1319 @@ components: results: type: array items: - $ref: '#/components/schemas/RepairOrder' - PaginatedReportAssetList: + $ref: '#/components/schemas/UserSettings' + Parameter: type: object + description: Serializer for the Parameter model. + properties: + pk: + type: integer + readOnly: true + title: ID + template: + type: integer + description: Parameter template + model_type: + allOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + default: '' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: + type: string + description: Parameter Value + maxLength: 500 + minLength: 1 + data_numeric: + type: number + format: double + nullable: true + note: + type: string + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + updated_by: + type: integer + readOnly: true + nullable: true + title: Update By + description: User who last updated this object + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true required: - - count - - results + - data + - model_id + - pk + - template + - template_detail + ParameterTemplate: + type: object + description: Serializer for the ParameterTemplate model. properties: - count: + pk: type: integer - example: 123 - next: + readOnly: true + title: ID + name: + type: string + description: Parameter Name + maxLength: 100 + units: + type: string + description: Physical units for this parameter + maxLength: 25 + description: + type: string + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: + type: string + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + required: + - name + - pk + Part: + type: object + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. + properties: + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category: + type: integer + nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + category_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + category_name: + type: string + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: + type: string + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + default_location_detail: + allOf: + - $ref: '#/components/schemas/DefaultLocation' + readOnly: true + nullable: true + description: + type: string + description: Part description (optional) + maxLength: 250 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: + type: string + default: '' + maxLength: 100 + is_template: + type: boolean + description: Is this part a template part? + keywords: type: string nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: + type: string format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: + type: string + description: Part name + maxLength: 100 + notes: type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: + description: Markdown notes (optional) + maxLength: 50000 + parameters: type: array items: - $ref: '#/components/schemas/ReportAsset' - PaginatedReportSnippetList: - type: object - required: - - count - - results - properties: - count: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + pk: type: integer - example: 123 - next: + readOnly: true + title: ID + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string + default: '' + maxLength: 100 + revision_of: + type: integer nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportSnippet' - PaginatedReportTemplateList: - type: object - required: - - count - - results - properties: - count: + description: Is this part a revision of another part? + revision_count: type: integer - example: 123 - next: - type: string + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + title: Revisions + salable: + type: boolean + description: Can this part be sold to customers? + starred: + type: boolean + description: Return "true" if the part is starred by the current user. + readOnly: true + thumbnail: + type: string + readOnly: true + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportTemplate' - PaginatedReturnOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: + description: Units of measure for this part + maxLength: 20 + variant_of: type: integer - example: 123 - next: - type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + description: Is this part a variant of another part? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + pricing_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrderExtraLine' - PaginatedReturnOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + pricing_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + pricing_updated: type: string + format: date-time + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: + responsible: + type: integer + nullable: true + price_breaks: type: array items: - $ref: '#/components/schemas/ReturnOrderLineItem' - PaginatedReturnOrderList: - type: object - required: - - count - - results - properties: - count: + $ref: '#/components/schemas/PartSalePrice' + readOnly: true + nullable: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + nullable: true + allocated_to_sales_orders: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true + nullable: true + description: Outstanding quantity of this part scheduled to be built + category_default_location: type: integer - example: 123 - next: - type: string + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string + in_stock: + type: number + format: double + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrder' - PaginatedRuleSetList: - type: object - required: - - count - - results - properties: - count: + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: type: integer - example: 123 - next: - type: string + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string + required_for_sales_orders: + type: integer + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: + stock_item_count: + type: integer + readOnly: true + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double + readOnly: true + nullable: true + title: Total Stock + external_stock: + type: number + format: double + readOnly: true + nullable: true + unallocated_stock: + type: number + format: double + readOnly: true + nullable: true + variant_stock: + type: number + format: double + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + tags: type: array items: - $ref: '#/components/schemas/RuleSet' - PaginatedSalesOrderAllocationList: - type: object + type: string required: - - count - - results + - barcode_hash + - category_name + - full_name + - name + - pk + - starred + - thumbnail + PartBomValidate: + type: object + description: Serializer for Part BOM information. properties: - count: + pk: type: integer - example: 123 - next: + readOnly: true + title: ID + bom_validated: + type: boolean + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + bom_checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + bom_checked_date: type: string + format: date + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderAllocation' - PaginatedSalesOrderExtraLineList: - type: object + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials required: - - count - - results + - bom_checksum + - bom_validated + - pk + PartBrief: + type: object + description: Serializer for Part (brief detail). properties: - count: + pk: type: integer - example: 123 - next: + readOnly: true + title: ID + IPN: type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + description: Internal Part Number + maxLength: 100 + barcode_hash: type: string + readOnly: true + description: Unique hash of barcode data + category_default_location: + type: integer + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderExtraLine' - PaginatedSalesOrderLineItemList: - type: object - required: - - count - - results - properties: - count: + default_location: type: integer - example: 123 - next: + nullable: true + description: Where is this item normally stored? + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + name: + type: string + description: Part name + maxLength: 100 + revision: type: string nullable: true + default: '' + maxLength: 100 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + description: + type: string + description: Part description (optional) + maxLength: 250 + image: + type: string format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + readOnly: true + nullable: true + thumbnail: + type: string + readOnly: true + active: + type: boolean + description: Is this part active? + locked: + type: boolean + description: Locked parts cannot be edited + assembly: + type: boolean + description: Can this part be built from other parts? + component: + type: boolean + description: Can this part be used to build other parts? + minimum_stock: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Minimum allowed stock level + is_template: + type: boolean + description: Is this part a template part? + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + salable: + type: boolean + description: Can this part be sold to customers? + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + units: type: string nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderLineItem' - PaginatedSalesOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + description: Units of measure for this part + maxLength: 20 + pricing_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + pricing_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrder' - PaginatedSalesOrderShipmentList: + required: + - barcode_hash + - full_name + - name + - pk + - thumbnail + PartCopyBOM: type: object + description: Serializer for copying a BOM from another part. + properties: + part: + type: integer + description: Select part to copy BOM from + remove_existing: + type: boolean + default: true + title: Remove Existing Data + description: Remove existing BOM items before copying + include_inherited: + type: boolean + default: false + description: Include BOM items which are inherited from templated parts + skip_invalid: + type: boolean + default: false + title: Skip Invalid Rows + description: Enable this option to skip invalid rows + copy_substitutes: + type: boolean + default: true + title: Copy Substitute Parts + description: Copy substitute parts when duplicate BOM items required: - - count - - results + - part + PartInternalPrice: + type: object + description: Serializer for internal prices for Part model. properties: - count: + pk: + type: integer + readOnly: true + title: ID + part: type: integer - example: 123 - next: + quantity: + type: number + format: double + price: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + price_currency: type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipment' - PaginatedScheduledTaskList: - type: object + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. required: - - count - - results + - part + - pk + - quantity + PartPricing: + type: object + description: Serializer for Part pricing information. properties: - count: - type: integer - example: 123 - next: + currency: type: string + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + updated: type: string + format: date-time + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ScheduledTask' - PaginatedSelectionEntryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + bom_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - PaginatedSelectionListList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + purchase_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + purchase_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionList' - PaginatedStockItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + internal_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + internal_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItem' - PaginatedStockItemTestResultList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + supplier_price_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + supplier_price_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - PaginatedStockLocationTypeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + variant_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + override_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockLocationType' - PaginatedStockTrackingList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockTracking' - PaginatedSupplierPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + overall_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + sale_price_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPart' - PaginatedSupplierPriceBreakList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + sale_price_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + sale_history_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreak' - PaginatedTransferOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: + sale_history_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string + update: + type: boolean + writeOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocation' - PaginatedTransferOrderLineItemList: - type: object + default: false + description: Update pricing for this part required: - - count - - results + - scheduled_for_update + PartRelation: + type: object + description: Serializer for a PartRelated model. properties: - count: + pk: type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + readOnly: true + title: ID + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: + type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + note: type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderLineItem' - PaginatedTransferOrderList: - type: object + description: Note for this relationship + maxLength: 500 required: - - count - - results + - part_1 + - part_1_detail + - part_2 + - part_2_detail + - pk + PartRequirements: + type: object + description: Serializer for Part requirements. properties: - count: + total_stock: + type: number + format: double + readOnly: true + unallocated_stock: + type: number + format: double + readOnly: true + title: Available Stock + can_build: + type: number + format: double + readOnly: true + ordering: + type: number + format: double + readOnly: true + title: On Order + building: + type: number + format: double + readOnly: true + title: In Production + scheduled_to_build: type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrder' - PaginatedUserCreateList: - type: object + readOnly: true + required_for_build_orders: + type: number + format: double + readOnly: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + required_for_sales_orders: + type: number + format: double + readOnly: true + allocated_to_sales_orders: + type: number + format: double + description: Return the allocated sales order quantity. + readOnly: true required: - - count - - results + - allocated_to_build_orders + - allocated_to_sales_orders + - building + - can_build + - ordering + - required_for_build_orders + - required_for_sales_orders + - scheduled_to_build + - total_stock + - unallocated_stock + PartSalePrice: + type: object + description: Serializer for sale prices for Part model. properties: - count: + pk: type: integer - example: 123 - next: + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + price_currency: type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserCreate' - PaginatedUserSettingsList: - type: object + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. required: - - count - - results + - part + - pk + - quantity + PartSerialNumber: + type: object + description: Serializer for Part serial number information. properties: - count: - type: integer - example: 123 - next: + latest: type: string + readOnly: true nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: + next: type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserSettings' - Parameter: + readOnly: true + required: + - next + PartStocktake: type: object - description: Serializer for the Parameter model. + description: Serializer for the PartStocktake model. properties: pk: type: integer readOnly: true title: ID - template: + part: type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - default: '' - model_id: + description: Part for stocktake + part_name: + type: string + readOnly: true + part_ipn: + type: string + readOnly: true + nullable: true + part_description: + type: string + readOnly: true + nullable: true + date: + type: string + format: date + readOnly: true + description: Date stocktake was performed + item_count: type: integer maximum: 9223372036854775807 - minimum: 0 + minimum: -9223372036854775808 format: int64 - description: ID of the target model for this parameter - data: - type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: + description: Number of individual stock entries at time of stocktake + quantity: type: number format: double + cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - note: + cost_min_currency: type: string - description: Optional note field - maxLength: 500 - updated: + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + cost_max: type: string - format: date-time + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_max_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - description: Timestamp of last update - updated_by: + required: + - date + - part + - part_name + - pk + - quantity + PartStocktakeGenerate: + type: object + description: Serializer for generating PartStocktake entries. + properties: + part: type: integer - readOnly: true nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - updated_by_detail: + description: Select a part to generate stocktake information for that part + (and any variant parts) + category: + type: integer + nullable: true + description: Select a category to include all parts within that category + (and subcategories) + location: + type: integer + nullable: true + description: Select a location to include all parts with stock in that location + (including sub-locations) + generate_entry: + type: boolean + writeOnly: true + default: false + title: Generate Stocktake Entries + description: Save stocktake entries for the selected parts + generate_report: + type: boolean + writeOnly: true + default: false + description: Generate a stocktake report for the selected parts + output: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/DataOutput' readOnly: true - nullable: true required: - - data - - model_id - - pk - - template - - template_detail - ParameterTemplate: + - output + PartTestTemplate: type: object - description: Serializer for the ParameterTemplate model. + description: Serializer for the PartTestTemplate class. properties: pk: type: integer readOnly: true title: ID - name: + key: type: string - description: Parameter Name - maxLength: 100 - units: + readOnly: true + part: + type: integer + test_name: type: string - description: Physical units for this parameter - maxLength: 25 + description: Enter a name for the test + maxLength: 100 description: type: string - description: Parameter description - maxLength: 250 - model_type: nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: type: boolean - description: Is this parameter a checkbox? + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer + readOnly: true + description: Number of results recorded against this template choices: type: string - description: Valid choices for this parameter (comma-separated) + description: Valid choices for this test (comma-separated) maxLength: 5000 - selectionlist: - type: integer - nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? required: - - name + - key + - part - pk - Part: + - results + - test_name + PartThumb: + type: object + description: |- + Serializer for the 'image' field of the Part model. + + Used to serve and display existing Part images. + properties: + image: + type: string + format: uri + readOnly: true + count: + type: integer + readOnly: true + required: + - count + - image + PartThumbSerializerUpdate: type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. + description: Serializer for updating Part thumbnail. properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: + image: type: string + format: uri + required: + - image + PatchedAddress: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer readOnly: true - description: Unique hash of barcode data - category: + title: ID + company: type: integer - nullable: true - category_name: + description: Select company + title: type: string - readOnly: true - component: + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: type: boolean - description: Can this part be used to build other parts? - creation_date: + title: Primary address + description: Set as primary address + line1: type: string - format: date - readOnly: true - nullable: true - creation_user: - type: integer - nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - description: + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: type: string - description: Part description (optional) - maxLength: 250 - full_name: + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - image: + description: Postal code + maxLength: 10 + postal_city: type: string - format: uri - nullable: true - existing_image: + title: City/Region + description: Postal code city/region + maxLength: 50 + province: type: string - writeOnly: true - description: Filename of an existing part image - IPN: + title: State/Province + description: State or province + maxLength: 50 + country: type: string - default: '' + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: + internal_shipping_notes: type: string - nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 + description: Shipping notes for internal use + maxLength: 100 link: type: string format: uri - nullable: true - description: Link to external URL + description: Link to address information (external) maxLength: 2000 - locked: - type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: - type: string - description: Part name - maxLength: 100 + PatchedAttachment: + type: object + description: Serializer class for the Attachment model. + properties: pk: type: integer readOnly: true title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: + attachment: type: string + format: uri nullable: true - default: '' - maxLength: 100 - revision_of: - type: integer - nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer + thumbnail: + type: string + format: uri readOnly: true nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: type: boolean - description: Return "true" if the part is starred by the current user. readOnly: true - thumbnail: + description: True if this attachment is a valid image file + upload_date: type: string + format: date readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: + upload_user: type: integer + readOnly: true nullable: true - description: Is this part a variant of another part? - virtual: + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + tags: + type: array + items: + type: string + PatchedBomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: type: boolean - description: Is this a virtual part, such as a software product or license? + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID pricing_min: type: string format: decimal @@ -29413,2191 +33287,2335 @@ components: pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - pricing_updated: + pricing_min_total: type: string - format: date-time + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - responsible: - type: integer - nullable: true - allocated_to_build_orders: - type: number - format: double + pricing_max_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - allocated_to_sales_orders: - type: number - format: double + pricing_updated: + type: string + format: date-time readOnly: true nullable: true - building: - type: number - format: double + substitutes: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' readOnly: true nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: + validated: + type: boolean + description: This BOM item has been validated + available_stock: type: number format: double readOnly: true nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: - type: integer - readOnly: true - nullable: true - in_stock: + available_substitute_stock: type: number format: double readOnly: true nullable: true - ordering: + available_variant_stock: type: number format: double readOnly: true nullable: true - title: On Order - required_for_build_orders: - type: integer - readOnly: true - nullable: true - required_for_sales_orders: - type: integer - readOnly: true - nullable: true - stock_item_count: - type: integer - readOnly: true - nullable: true - title: Stock Items - total_in_stock: + external_stock: type: number format: double readOnly: true nullable: true - title: Total Stock - external_stock: + on_order: type: number format: double readOnly: true nullable: true - unallocated_stock: + building: type: number format: double readOnly: true nullable: true - variant_stock: + title: In Production + can_build: type: number format: double readOnly: true nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: + part_detail: allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: - type: boolean - writeOnly: true - default: true - description: Copy parameter templates from selected part category - required: - - barcode_hash - - category_name - - full_name - - name - - pk - - starred - - thumbnail - PartBomValidate: - type: object - description: Serializer for Part BOM information. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: - type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: - type: integer + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - bom_checked_by_detail: + title: Assembly + sub_part_detail: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - bom_checked_date: - type: string - format: date + title: Component + category_detail: + allOf: + - $ref: '#/components/schemas/Category' readOnly: true nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - required: - - bom_checksum - - bom_validated - - pk - PartBrief: + title: Category + PatchedBomItemSubstitute: type: object - description: Serializer for Part (brief detail). + description: Serializer for the BomItemSubstitute class. properties: pk: type: integer readOnly: true title: ID - IPN: - type: string - nullable: true - description: Internal Part Number - maxLength: 100 - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category_default_location: - type: integer - readOnly: true - nullable: true - default_location: + bom_item: type: integer - nullable: true - description: Where is this item normally stored? - default_expiry: + description: Parent BOM item + part: type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - name: - type: string - description: Part name - maxLength: 100 - revision: - type: string - nullable: true - default: '' - maxLength: 100 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - description: - type: string - description: Part description (optional) - maxLength: 250 - image: - type: string - format: uri - readOnly: true - nullable: true - thumbnail: - type: string - readOnly: true - active: - type: boolean - description: Is this part active? - locked: - type: boolean - description: Locked parts cannot be edited - assembly: - type: boolean - description: Can this part be built from other parts? - component: - type: boolean - description: Can this part be used to build other parts? - minimum_stock: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - description: Minimum allowed stock level - is_template: - type: boolean - description: Is this part a template part? - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - salable: - type: boolean - description: Can this part be sold to customers? - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - required: - - barcode_hash - - full_name - - name - - pk - - thumbnail - PartCopyBOM: + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + PatchedBomItemValidation: type: object - description: Serializer for copying a BOM from another part. + description: Simple serializer for passing a single boolean field. properties: - part: - type: integer - description: Select part to copy BOM from - remove_existing: - type: boolean - default: true - title: Remove Existing Data - description: Remove existing BOM items before copying - include_inherited: - type: boolean - default: false - description: Include BOM items which are inherited from templated parts - skip_invalid: + valid: type: boolean default: false - title: Skip Invalid Rows - description: Enable this option to skip invalid rows - copy_substitutes: - type: boolean - default: true - title: Copy Substitute Parts - description: Copy substitute parts when duplicate BOM items - required: - - part - PartInternalPrice: + PatchedBuild: type: object - description: Serializer for internal prices for Part model. + description: Serializes a Build object. properties: pk: type: integer readOnly: true title: ID - part: - type: integer - quantity: - type: number - format: double - price: + title: + type: string + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: + type: string + readOnly: true + batch: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - price_currency: + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: type: string - title: Currency - description: Purchase currency of this stock item - required: - - part - - pk - - quantity - PartPricing: - type: object - description: Serializer for Part pricing information. - properties: - currency: + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: type: string + format: date readOnly: true nullable: true - updated: + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: type: string - format: date-time readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer nullable: true - scheduled_for_update: + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: type: boolean readOnly: true - bom_cost_min: + default: false + reference: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + sales_order: + type: integer nullable: true - bom_cost_max: + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - purchase_cost_min: + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + readOnly: true + status_custom_key: + type: integer readOnly: true nullable: true - purchase_cost_max: + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + target_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - internal_cost_min: + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + notes: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true nullable: true - internal_cost_max: + description: Markdown notes (optional) + maxLength: 50000 + link: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: + type: integer readOnly: true nullable: true - supplier_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: User who issued this build order + issued_by_detail: + allOf: + - $ref: '#/components/schemas/User' readOnly: true + responsible: + type: integer nullable: true - supplier_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' readOnly: true nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + priority: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level + PatchedBuildItem: + type: object + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + build_line: + type: integer + nullable: true + install_into: + type: integer + nullable: true + description: Destination stock item + stock_item: + type: integer + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: + type: integer readOnly: true - nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + build_detail: + allOf: + - $ref: '#/components/schemas/Build' readOnly: true nullable: true - override_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + title: Build + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - overall_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + title: Location + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + title: Part + stock_item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + title: Stock Item + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + title: Supplier Part + install_into_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true - sale_history_max: + title: Install Into + bom_reference: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - required: - - scheduled_for_update - PartRelation: + PatchedBuildLine: type: object - description: Serializer for a PartRelated model. + description: Serializer for a BuildItem object. properties: pk: type: integer readOnly: true title: ID - part_1: + build: type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' readOnly: true - part_2: + description: Build object + bom_item: type: integer - description: Select Related Part - part_2_detail: - allOf: - - $ref: '#/components/schemas/Part' readOnly: true - note: + quantity: + type: number + format: double + consumed: + type: number + format: double + allocations: + type: array + items: + $ref: '#/components/schemas/BuildItem' + readOnly: true + nullable: true + part: + type: integer + readOnly: true + build_reference: type: string - description: Note for this relationship - maxLength: 500 - required: - - part_1 - - part_1_detail - - part_2 - - part_2_detail - - pk - PartRequirements: - type: object - description: Serializer for Part requirements. - properties: - total_stock: + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: type: number format: double readOnly: true - unallocated_stock: + in_production: type: number format: double readOnly: true - title: Available Stock - can_build: + scheduled_to_build: type: number format: double readOnly: true - ordering: + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: type: number format: double readOnly: true - title: On Order - building: - type: number - format: double + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true + nullable: true + title: BOM Item + assembly_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + PatchedCategory: + type: object + description: Serializer for PartCategory. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + default_location: + type: integer + nullable: true + description: Default location for parts in this category + default_keywords: + type: string + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: + type: integer + readOnly: true + parent: + type: integer + nullable: true + title: Parent Category + description: Parent part category + part_count: + type: integer readOnly: true - title: In Production - scheduled_to_build: + nullable: true + title: Parts + subcategories: type: integer readOnly: true - required_for_build_orders: - type: number - format: double + nullable: true + pathstring: + type: string readOnly: true - allocated_to_build_orders: - type: number - format: double + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' readOnly: true - required_for_sales_orders: - type: number - format: double + nullable: true + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. readOnly: true - allocated_to_sales_orders: - type: number - format: double - description: Return the allocated sales order quantity. + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string + nullable: true + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer readOnly: true - required: - - allocated_to_build_orders - - allocated_to_sales_orders - - building - - can_build - - ordering - - required_for_build_orders - - required_for_sales_orders - - scheduled_to_build - - total_stock - - unallocated_stock - PartSalePrice: + nullable: true + PatchedCategoryParameterTemplate: type: object - description: Serializer for sale prices for Part model. + description: Serializer for the PartCategoryParameterTemplate model. properties: pk: type: integer readOnly: true title: ID - part: + category: type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: Purchase currency of this stock item - required: - - part - - pk - - quantity - PartSerialNumber: - type: object - description: Serializer for Part serial number information. - properties: - latest: - type: string + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' readOnly: true nullable: true - next: - type: string + template: + type: integer + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' readOnly: true - required: - - next - PartStocktake: + default_value: + type: string + description: Default Parameter Value + maxLength: 500 + PatchedCompany: type: object - description: Serializer for the PartStocktake model. + description: Serializer for Company object (full detail). properties: pk: type: integer readOnly: true title: ID - part: - type: integer - description: Part for stocktake - part_name: + name: type: string - readOnly: true - part_ipn: + title: Company name + description: Company name + maxLength: 100 + description: type: string - readOnly: true - nullable: true - part_description: + title: Company description + description: Description of the company + maxLength: 500 + website: type: string - readOnly: true - nullable: true - date: + format: uri + description: Company website URL + maxLength: 2000 + phone: type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: + title: Phone number + description: Contact phone number + maxLength: 50 + email: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + format: email nullable: true - cost_min_currency: + default: '' + currency: type: string - title: Currency - description: Select currency from available options - cost_max: + description: |- + Default currency used for this supplier + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + contact: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Point of contact + maxLength: 100 + link: + type: string + format: uri + description: Link to external company information + maxLength: 2000 + image: + type: string + format: uri nullable: true - cost_max_currency: + active: + type: boolean + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + notes: type: string - title: Currency - description: Select currency from available options - required: - - date - - part - - part_name - - pk - - quantity - PartStocktakeGenerate: - type: object - description: Serializer for generating PartStocktake entries. - properties: - part: - type: integer nullable: true - description: Select a part to generate stocktake information for that part - (and any variant parts) - category: + description: Markdown notes (optional) + maxLength: 50000 + parts_supplied: type: integer - nullable: true - description: Select a category to include all parts within that category - (and subcategories) - location: + readOnly: true + parts_manufactured: type: integer - nullable: true - description: Select a location to include all parts with stock in that location - (including sub-locations) - generate_entry: - type: boolean - writeOnly: true - default: false - title: Generate Stocktake Entries - description: Save stocktake entries for the selected parts - generate_report: - type: boolean - writeOnly: true - default: false - description: Generate a stocktake report for the selected parts - output: + readOnly: true + primary_address: allOf: - - $ref: '#/components/schemas/DataOutput' + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true - required: - - output - PartTestTemplate: + nullable: true + PatchedContact: type: object - description: Serializer for the PartTestTemplate class. + description: Serializer class for the Contact model. properties: pk: type: integer readOnly: true title: ID - key: + company: + type: integer + company_name: type: string readOnly: true - part: - type: integer - test_name: + name: type: string - description: Enter a name for the test maxLength: 100 - description: + phone: type: string - nullable: true - title: Test Description - description: Enter description for this test maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: + email: type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - required: - - key - - part - - pk - - results - - test_name - PartThumb: + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + PatchedCustomState: type: object - description: |- - Serializer for the 'image' field of the Part model. - - Used to serve and display existing Part images. + description: Serializer for the custom state model. properties: - image: - type: string - format: uri - readOnly: true - count: + pk: type: integer readOnly: true - required: - - count - - image - PartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: + title: ID + key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: type: string - format: uri - required: - - image - PatchedAddress: + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: + type: integer + nullable: true + description: Model this state is associated with + model_name: + type: string + readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' + PatchedCustomUnit: type: object - description: Serializer for the Address Model. + description: DRF serializer for CustomUnit model. properties: pk: type: integer readOnly: true title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: + name: type: string - title: Line 2 - description: Address line 2 + description: Unit name maxLength: 50 - postal_code: + symbol: type: string - description: Postal code + description: Optional unit symbol maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: + definition: type: string - description: Address country + description: Unit definition maxLength: 50 - shipping_notes: + PatchedDataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + column: type: string - title: Courier shipping notes - description: Notes for shipping courier maxLength: 100 - internal_shipping_notes: + field: type: string - description: Shipping notes for internal use - maxLength: 100 - link: + readOnly: true + label: type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - PatchedAttachment: + readOnly: true + description: + type: string + readOnly: true + PatchedDataImportRow: type: object - description: Serializer class for the Attachment model. + description: Serializer for the DataImportRow model. properties: pk: type: integer readOnly: true title: ID - attachment: - type: string - format: uri + session: + type: integer + readOnly: true + title: Import Session + row_index: + type: integer + readOnly: true + row_data: + readOnly: true nullable: true - thumbnail: - type: string - format: uri + title: Original row data + data: + nullable: true + errors: readOnly: true nullable: true - filename: - type: string - link: + valid: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + PatchedDataImportSession: + type: object + description: Serializer for the DataImportSession model. + properties: + pk: + type: integer + readOnly: true + title: ID + timestamp: type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - comment: + format: date-time + readOnly: true + data_file: type: string - description: Attachment comment - maxLength: 250 - is_image: + format: uri + update_records: type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: readOnly: true - description: True if this attachment is a valid image file - upload_date: - type: string - format: date + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' readOnly: true - upload_user: + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: type: integer readOnly: true nullable: true - title: User - description: User user_detail: allOf: - $ref: '#/components/schemas/User' readOnly: true - file_size: - type: integer + columns: readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - tags: + nullable: true + column_mappings: type: array items: - type: string - PatchedBomItem: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: + type: integer + readOnly: true + completed_row_count: + type: integer + readOnly: true + PatchedErrorMessage: type: object - description: Serializer for BomItem object. + description: DRF serializer for server error messages. properties: - part: + when: + type: string + format: date-time + readOnly: true + info: + type: string + readOnly: true + data: + type: string + readOnly: true + nullable: true + path: + type: string + format: uri + readOnly: true + nullable: true + maxLength: 200 + pk: type: integer - title: Assembly - description: Select the parent assembly - sub_part: + readOnly: true + title: ID + PatchedExtendedUser: + type: object + description: Serializer for a User with a bit more info. + properties: + pk: type: integer - title: Component - description: Select the component part - reference: + readOnly: true + title: ID + username: type: string - description: BOM item reference - maxLength: 5000 - raw_amount: + description: Username + first_name: type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: + title: Administrator + description: Does this user have administrative permissions + is_superuser: type: boolean - description: This BOM item is optional - consumable: + title: Superuser + description: Is this user a superuser + is_active: type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double - nullable: true - note: - type: string - description: BOM item notes - maxLength: 500 + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + PatchedGlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: pk: type: integer readOnly: true title: ID - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double + key: + type: string readOnly: true + value: + type: string nullable: true - available_substitute_stock: - type: number - format: double + name: + type: string readOnly: true - nullable: true - available_variant_stock: - type: number - format: double + description: + type: string readOnly: true - nullable: true - external_stock: - type: number - format: double + type: + type: string readOnly: true - nullable: true - on_order: - type: number - format: double + units: + type: string readOnly: true - nullable: true - building: - type: number - format: double + choices: + type: array + items: {} + description: Returns the choices available for a given item. readOnly: true - nullable: true - title: In Production - can_build: - type: number - format: double + model_name: + type: string readOnly: true nullable: true - sub_part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + api_url: + type: string readOnly: true nullable: true - title: Component - pricing_min: + typ: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable readOnly: true - nullable: true - title: Assembly - substitutes: + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + PatchedGroup: + type: object + description: Serializer for a 'Group'. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + maxLength: 150 + permissions: + type: object + additionalProperties: {} + description: Return a list of permissions associated with the group. + readOnly: true + nullable: true + roles: type: array items: - $ref: '#/components/schemas/BomItemSubstitute' + $ref: '#/components/schemas/RuleSet' readOnly: true nullable: true - category_detail: - allOf: - - $ref: '#/components/schemas/Category' + users: + type: array + items: + $ref: '#/components/schemas/User' readOnly: true nullable: true - title: Category - PatchedBomItemSubstitute: + PatchedLabelTemplate: type: object - description: Serializer for the BomItemSubstitute class. + description: Serializer class for label template model. properties: pk: type: integer readOnly: true title: ID - bom_item: + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: type: integer - description: Parent BOM item - part: + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: type: integer - description: Substitute part - part_detail: + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/User' readOnly: true - PatchedBomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - PatchedBuild: + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm + PatchedLocation: type: object - description: Serializes a Build object. + description: Detailed information about a stock location. properties: pk: type: integer readOnly: true title: ID - title: - type: string - title: Description - description: Brief description of the build (optional) - maxLength: 100 barcode_hash: type: string readOnly: true - batch: + description: Unique hash of barcode data + name: type: string - nullable: true - title: Batch Code - description: Batch code for this build output + description: Name maxLength: 100 - creation_date: - type: string - format: date - readOnly: true - completed: + level: type: integer readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: + description: type: string - format: date - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: - type: boolean - title: External Build - description: This build order is fulfilled externally + description: Description (optional) + maxLength: 250 parent: type: integer nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: - type: integer - description: Select part to build - part_name: - type: string - readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: - type: integer - nullable: true - description: Project code for this build order - project_code_label: + title: Parent Location + description: Parent stock location + pathstring: type: string readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' readOnly: true nullable: true - overdue: - type: boolean - readOnly: true - default: false - reference: - type: string - sales_order: + items: type: integer - nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: - type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' - readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string - nullable: true readOnly: true - status_custom_key: + title: Stock Items + sublocations: type: integer readOnly: true - nullable: true - title: Custom status key - description: Additional status information for this item - target_date: - type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: + owner: type: integer nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - link: + description: Select Owner + icon: type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer readOnly: true + custom_icon: + type: string nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - responsible: + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: type: integer nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' readOnly: true - title: Build Level + nullable: true + tags: + type: array + items: + type: string parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true - PatchedBuildItem: + PatchedMachineConfig: type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. + description: Serializer for a MachineConfig. properties: pk: - type: integer - readOnly: true - title: ID - build: - type: integer + type: string + format: uuid readOnly: true - build_line: - type: integer - nullable: true - install_into: - type: integer - nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string readOnly: true - bom_reference: + description: Type of machine + driver: type: string readOnly: true - stock_item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. readOnly: true - nullable: true - title: Stock Item - build_detail: - allOf: - - $ref: '#/components/schemas/Build' + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. readOnly: true + status_model: + type: string nullable: true - title: Build - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + description: Textual machine status name if available, else None. readOnly: true - nullable: true - title: Part - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' + status_text: + type: string + description: Current status text for machine. readOnly: true - nullable: true - title: Location - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' + machine_errors: + type: array + items: + type: string + description: List of machine errors. readOnly: true - nullable: true - title: Supplier Part - install_into_detail: - allOf: - - $ref: '#/components/schemas/StockItem' + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. readOnly: true - nullable: true - title: Install Into - PatchedBuildLine: + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + PatchedMachineSetting: type: object - description: Serializer for a BuildItem object. + description: Serializer for the MachineSetting model. properties: pk: type: integer readOnly: true title: ID - build: - type: integer + key: + type: string readOnly: true - description: Build object - bom_item: - type: integer + value: + type: string + nullable: true + name: + type: string readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - part: - type: integer + description: + type: string readOnly: true - build_reference: + type: type: string readOnly: true - reference: + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: type: string readOnly: true - consumable: - type: boolean + nullable: true + model_filters: + type: object + additionalProperties: {} readOnly: true - optional: - type: boolean + api_url: + type: string readOnly: true - testable: - type: boolean + nullable: true + typ: + type: string readOnly: true - trackable: - type: boolean + units: + type: string readOnly: true - inherited: + required: type: boolean readOnly: true - allow_variants: + confirm: type: boolean readOnly: true - allocated: - type: number - format: double + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string readOnly: true - in_production: - type: number - format: double + config_type: + allOf: + - $ref: '#/components/schemas/ConfigTypeEnum' readOnly: true - scheduled_to_build: - type: number - format: double + PatchedManufacturerPart: + type: object + description: Serializer for ManufacturerPart object. + properties: + pk: + type: integer readOnly: true - on_order: - type: number - format: double + title: ID + part: + type: integer + title: Base Part + description: Select part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true - available_stock: - type: number - format: double + nullable: true + pretty_name: + type: string readOnly: true - available_substitute_stock: - type: number - format: double + nullable: true + manufacturer: + type: integer + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true - available_variant_stock: - type: number - format: double + nullable: true + description: + type: string + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number + maxLength: 100 + link: + type: string + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true - external_stock: - type: number - format: double + nullable: true + PatchedMeUser: + type: object + description: API serializer specifically for the 'me' endpoint. + properties: + pk: + type: integer readOnly: true - allocations: + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: type: array items: - $ref: '#/components/schemas/BuildItem' - readOnly: true - nullable: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' + $ref: '#/components/schemas/Group' readOnly: true - nullable: true - title: BOM Item - build_detail: - allOf: - - $ref: '#/components/schemas/Build' + is_staff: + type: boolean readOnly: true - nullable: true - title: Build - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + title: Staff + description: Does this user have staff permissions + is_superuser: + type: boolean readOnly: true - nullable: true - title: Part - category_detail: - allOf: - - $ref: '#/components/schemas/Category' + title: Superuser + description: Is this user a superuser + is_active: + type: boolean readOnly: true - nullable: true - title: Category - assembly_detail: + title: Active + description: Is this user account active + profile: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/UserProfile' readOnly: true - nullable: true - title: Assembly - PatchedCategory: + PatchedMetadata: type: object - description: Serializer for PartCategory. + description: Serializer class for model metadata API access. + properties: + metadata: {} + PatchedNewsFeedEntry: + type: object + description: Serializer for the NewsFeedEntry model. properties: pk: type: integer readOnly: true title: ID - name: + feed_id: type: string - description: Name - maxLength: 100 - description: + title: Id + maxLength: 250 + title: type: string - description: Description (optional) maxLength: 250 - default_location: - type: integer - nullable: true - description: Default location for parts in this category - default_keywords: + link: type: string - nullable: true - description: Default keywords for parts in this category + format: uri maxLength: 250 - level: + published: + type: string + format: date-time + author: + type: string + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean + PatchedNotificationMessage: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: type: integer readOnly: true - parent: - type: integer - nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer + title: ID + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. readOnly: true - nullable: true - title: Parts - subcategories: + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: type: integer readOnly: true - nullable: true - pathstring: + category: type: string readOnly: true - title: Path - description: Path - starred: - type: boolean - description: Return True if the category is directly "starred" by the current - user. + name: + type: string readOnly: true - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: + message: type: string + readOnly: true nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: + creation: + type: string + format: date-time + readOnly: true + age: type: integer + description: Age of the message in seconds. readOnly: true - nullable: true - path: - type: array - items: - $ref: '#/components/schemas/TreePath' + age_human: + type: string + description: Humanized age. readOnly: true - nullable: true - PatchedCategoryParameterTemplate: + read: + type: boolean + PatchedParameter: type: object - description: Serializer for the PartCategoryParameterTemplate model. + description: Serializer for the Parameter model. properties: pk: type: integer readOnly: true title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true template: type: integer - template_detail: + description: Parameter template + model_type: allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: - type: string - description: Default Parameter Value - maxLength: 500 - PatchedCompany: - type: object - description: Serializer for Company object (full detail). - properties: - pk: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + default: '' + model_id: type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: type: string - title: Company description - description: Description of the company + description: Parameter Value maxLength: 500 - website: - type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: - type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: - type: string - format: email - nullable: true - default: '' - currency: - type: string - description: Default currency used for this supplier - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: - type: string - format: uri + minLength: 1 + data_numeric: + type: number + format: double nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - notes: + note: type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parts_supplied: - type: integer + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time readOnly: true - parts_manufactured: + nullable: true + description: Timestamp of last update + updated_by: type: integer readOnly: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true nullable: true - primary_address: + title: Update By + description: User who last updated this object + template_detail: allOf: - - $ref: '#/components/schemas/AddressBrief' + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' readOnly: true nullable: true - PatchedContact: + PatchedParameterTemplate: type: object - description: Serializer class for the Contact model. + description: Serializer for the ParameterTemplate model. properties: pk: type: integer readOnly: true title: ID - company: - type: integer - company_name: - type: string - readOnly: true name: type: string + description: Parameter Name maxLength: 100 - phone: + units: type: string - maxLength: 100 - email: + description: Physical units for this parameter + maxLength: 25 + description: type: string - format: email - maxLength: 254 - role: + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeDf8Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: type: string - maxLength: 100 - PatchedCustomState: + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + PatchedPart: type: object - description: Serializer for the custom state model. + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. properties: - pk: - type: integer + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string readOnly: true - title: ID - key: + description: Unique hash of barcode data + category: type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: + nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + category_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + category_name: type: string - description: Name of the state - maxLength: 250 - label: + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: type: integer maximum: 9223372036854775807 - minimum: -9223372036854775808 + minimum: 0 format: int64 - description: State logical key that is equal to this custom state in business - logic - model: + description: Expiry time (in days) for stock items of this part + default_location: type: integer nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - PatchedCustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: - type: integer + description: Where is this item normally stored? + default_location_detail: + allOf: + - $ref: '#/components/schemas/DefaultLocation' readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: + nullable: true + description: type: string - description: Optional unit symbol - maxLength: 10 - definition: + description: Part description (optional) + maxLength: 250 + full_name: type: string - description: Unit definition - maxLength: 50 - PatchedDataImportColumnMap: - type: object - description: Serializer for the DataImportColumnMap model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. readOnly: true - title: Import Session - column: + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: type: string + default: '' maxLength: 100 - field: + is_template: + type: boolean + description: Is this part a template part? + keywords: type: string - readOnly: true - label: + nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: type: string - readOnly: true - description: + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: type: string - readOnly: true - PatchedDataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: + description: Part name + maxLength: 100 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true pk: type: integer readOnly: true title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: + type: string nullable: true - title: Original row data - data: + default: '' + maxLength: 100 + revision_of: + type: integer nullable: true - errors: + description: Is this part a revision of another part? + revision_count: + type: integer readOnly: true nullable: true - valid: + title: Revisions + salable: type: boolean - readOnly: true - complete: + description: Can this part be sold to customers? + starred: type: boolean + description: Return "true" if the part is starred by the current user. readOnly: true - PatchedDataImportSession: - type: object - description: Serializer for the DataImportSession model. - properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: + thumbnail: type: string - format: date-time readOnly: true - data_file: + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: type: string - format: uri - update_records: + nullable: true + description: Units of measure for this part + maxLength: 20 + variant_of: + type: integer + nullable: true + description: Is this part a variant of another part? + virtual: type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: + description: Is this a virtual part, such as a software product or license? + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + responsible: type: integer + nullable: true + price_breaks: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' readOnly: true nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' + allocated_to_build_orders: + type: number + format: double readOnly: true - columns: + nullable: true + allocated_to_sales_orders: + type: number + format: double readOnly: true nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' + building: + type: number + format: double readOnly: true - field_defaults: nullable: true - field_overrides: + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true nullable: true - field_filters: + description: Outstanding quantity of this part scheduled to be built + category_default_location: + type: integer + readOnly: true nullable: true - row_count: + in_stock: + type: number + format: double + readOnly: true + nullable: true + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: type: integer readOnly: true - completed_row_count: + nullable: true + required_for_sales_orders: type: integer readOnly: true - PatchedErrorMessage: - type: object - description: DRF serializer for server error messages. - properties: - when: - type: string - format: date-time + nullable: true + stock_item_count: + type: integer readOnly: true - info: - type: string + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double readOnly: true - data: - type: string + nullable: true + title: Total Stock + external_stock: + type: number + format: double readOnly: true nullable: true - path: - type: string - format: uri + unallocated_stock: + type: number + format: double readOnly: true nullable: true - maxLength: 200 - pk: - type: integer + variant_stock: + type: number + format: double readOnly: true - title: ID - PatchedExtendedUser: + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + tags: + type: array + items: + type: string + PatchedPartBomValidate: type: object - description: Serializer for a User with a bit more info. + description: Serializer for Part BOM information. properties: pk: type: integer readOnly: true title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: + bom_validated: type: boolean - title: Active - description: Is this user account active - profile: + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: + type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true + nullable: true + bom_checked_by_detail: allOf: - - $ref: '#/components/schemas/BriefUserProfile' + - $ref: '#/components/schemas/User' readOnly: true - PatchedGlobalSettings: + nullable: true + bom_checked_date: + type: string + format: date + readOnly: true + nullable: true + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials + PatchedPartInternalPrice: type: object - description: Serializer for the InvenTreeSetting model. + description: Serializer for internal prices for Part model. properties: pk: type: integer readOnly: true title: ID - key: + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + PatchedPartPricing: + type: object + description: Serializer for Part pricing information. + properties: + currency: type: string readOnly: true - value: + nullable: true + updated: type: string + format: date-time + readOnly: true nullable: true - name: + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - description: + nullable: true + bom_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - type: + nullable: true + purchase_cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - units: + nullable: true + purchase_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. + nullable: true + internal_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - model_name: + nullable: true + internal_cost_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - api_url: + supplier_price_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - typ: + supplier_price_max: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - read_only: - type: boolean - description: Indicates if the setting is overridden by an environment variable + nullable: true + variant_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - title: Override - confirm: - type: boolean + nullable: true + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: + nullable: true + override_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - PatchedGroup: - type: object - description: Serializer for a 'Group'. - properties: - pk: - type: integer + nullable: true + overall_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - title: ID - name: + nullable: true + sale_price_min: type: string - maxLength: 150 - roles: - type: array - items: - $ref: '#/components/schemas/RuleSet' + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - permissions: - type: object - additionalProperties: {} - description: Return a list of permissions associated with the group. + sale_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - users: - type: array - items: - $ref: '#/components/schemas/User' + sale_history_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - PatchedLabelTemplate: + sale_history_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + update: + type: boolean + writeOnly: true + nullable: true + default: false + description: Update pricing for this part + PatchedPartRelation: type: object - description: Serializer class for label template model. + description: Serializer for a PartRelated model. properties: pk: type: integer readOnly: true title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: + note: type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: + description: Note for this relationship + maxLength: 500 + PatchedPartSalePrice: + type: object + description: Serializer for sale prices for Part model. + properties: + pk: type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: + title: ID + part: + type: integer + quantity: type: number format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm - PatchedLocation: + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + PatchedPartStocktake: type: object - description: Detailed information about a stock location. + description: Serializer for the PartStocktake model. properties: pk: type: integer readOnly: true title: ID - barcode_hash: + part: + type: integer + description: Part for stocktake + part_name: type: string readOnly: true - description: Unique hash of barcode data - name: + part_ipn: type: string - description: Name - maxLength: 100 - level: - type: integer readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer nullable: true - title: Parent Location - description: Parent stock location - pathstring: + part_description: type: string readOnly: true - title: Path - description: Path - items: - type: integer - readOnly: true - title: Stock Items - sublocations: - type: integer - readOnly: true - owner: - type: integer nullable: true - description: Select Owner - icon: + date: type: string + format: date readOnly: true - custom_icon: + description: Date stocktake was performed + item_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: Number of individual stock entries at time of stocktake + quantity: + type: number + format: double + cost_min: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - title: Icon - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: - type: integer + cost_min_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - description: Stock location type of this location - location_type_detail: + cost_max_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + part_detail: allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - tags: - type: array - items: - type: string - PatchedMachineConfig: + PatchedPartTestTemplate: type: object - description: Serializer for a MachineConfig. + description: Serializer for the PartTestTemplate class. properties: pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string + type: integer readOnly: true - description: Type of machine - driver: + title: ID + key: type: string readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: + part: type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: + test_name: type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: + description: Enter a name for the test + maxLength: 100 + description: type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: + nullable: true + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: type: boolean - description: Indicator if driver for machine is available. + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer readOnly: true - restart_required: + description: Number of results recorded against this template + choices: + type: string + description: Valid choices for this test (comma-separated) + maxLength: 5000 + PatchedPartThumbSerializerUpdate: + type: object + description: Serializer for updating Part thumbnail. + properties: + image: + type: string + format: uri + PatchedPluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: + active: type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - PatchedMachineSetting: + default: true + title: Activate Plugin + description: Activate this plugin + PatchedPluginSetting: type: object - description: Serializer for the MachineSetting model. + description: Serializer for the PluginSetting model. properties: pk: type: integer @@ -31651,1125 +35669,1135 @@ components: confirm_text: type: string readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - PatchedManufacturerPart: - type: object - description: Serializer for ManufacturerPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - manufacturer: - type: integer - description: - type: string - nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: - type: string - nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string - format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - pretty_name: + plugin: type: string readOnly: true - nullable: true - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedMeUser: + PatchedPluginUninstall: type: object - description: API serializer specifically for the 'me' endpoint. + description: Serializer for uninstalling a plugin. properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: + delete_config: type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - PatchedNewsFeedEntry: + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PatchedPluginUserSetting: type: object - description: Serializer for the NewsFeedEntry model. + description: Serializer for the PluginUserSetting model. properties: pk: type: integer readOnly: true title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: - type: string - format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: + key: type: string - maxLength: 250 - read: - type: boolean - PatchedNotificationMessage: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. readOnly: true - user: - type: integer - readOnly: true - category: + value: type: string - readOnly: true + nullable: true name: type: string readOnly: true - message: + description: type: string readOnly: true - nullable: true - creation: + type: type: string - format: date-time readOnly: true - age: - type: integer - description: Age of the message in seconds. + choices: + type: array + items: {} + description: Returns the choices available for a given item. readOnly: true - age_human: + model_name: type: string - description: Humanized age. readOnly: true - read: - type: boolean - PatchedParameter: - type: object - description: Serializer for the Parameter model. - properties: - pk: - type: integer + nullable: true + model_filters: + type: object + additionalProperties: {} readOnly: true - title: ID - template: - type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - default: '' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: ID of the target model for this parameter - data: + api_url: type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: - type: number - format: double + readOnly: true nullable: true - note: - type: string - description: Optional note field - maxLength: 500 - updated: + typ: type: string - format: date-time readOnly: true - nullable: true - description: Timestamp of last update - updated_by: - type: integer + units: + type: string readOnly: true - nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' + required: + type: boolean readOnly: true - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' + confirm: + type: boolean readOnly: true - nullable: true - PatchedParameterTemplate: + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + PatchedProjectCode: type: object - description: Serializer for the ParameterTemplate model. + description: Serializer for the ProjectCode model. properties: pk: type: integer readOnly: true title: ID - name: - type: string - description: Parameter Name - maxLength: 100 - units: + code: type: string - description: Physical units for this parameter - maxLength: 25 + title: Project Code + description: Unique project code + maxLength: 50 description: type: string - description: Parameter description - maxLength: 250 - model_type: - nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: - type: boolean - description: Is this parameter a checkbox? - choices: - type: string - description: Valid choices for this parameter (comma-separated) - maxLength: 5000 - selectionlist: + description: Project description + maxLength: 200 + responsible: type: integer nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? - PatchedPart: + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + PatchedPurchaseOrder: type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. + description: Serializer for a PurchaseOrder object. properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category: + pk: type: integer - nullable: true - category_name: - type: string readOnly: true - component: - type: boolean - description: Can this part be used to build other parts? + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true creation_date: + type: string + format: date + nullable: true + issue_date: type: string format: date readOnly: true nullable: true - creation_user: - type: integer + description: Date order was issued + start_date: + type: string + format: date nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer + description: Scheduled start date for this order + target_date: + type: string + format: date nullable: true - description: Where is this item normally stored? + description: Expected date for order delivery. Order will be overdue after + this date. description: type: string - description: Part description (optional) + description: Order description (optional) maxLength: 250 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. + line_items: + type: integer readOnly: true - image: + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: type: string format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer nullable: true - existing_image: - type: string - writeOnly: true - description: Filename of an existing part image - IPN: + description: Select project code for this order + reference: type: string - default: '' - maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: type: string nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 - link: + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Placed + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: type: string - format: uri nullable: true - description: Link to external URL - maxLength: 2000 - locked: + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: type: string - description: Part name - maxLength: 100 - pk: - type: integer readOnly: true - title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: type: string + format: date + readOnly: true nullable: true - default: '' - maxLength: 100 - revision_of: + title: Completion Date + description: Date order was completed + supplier: type: integer nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer + description: Company from which the items are being ordered + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: - type: boolean - description: Return "true" if the part is starred by the current user. + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string readOnly: true - thumbnail: + total_price: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: + nullable: true + order_currency: type: string nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + destination: type: integer nullable: true - description: Is this part a variant of another part? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - pricing_min: + description: Destination for received items + updated_at: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + format: date-time readOnly: true nullable: true - pricing_max: + description: Timestamp of last update + PatchedPurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true nullable: true - pricing_updated: + price_currency: type: string - format: date-time - readOnly: true - nullable: true - responsible: + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: type: integer nullable: true - allocated_to_build_orders: + description: Select project code for this order + quantity: type: number format: double - readOnly: true + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date nullable: true - allocated_to_sales_orders: - type: number - format: double + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' readOnly: true nullable: true - building: - type: number - format: double + project_code_label: + type: string readOnly: true nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: - type: number - format: double + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: + PatchedPurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: type: integer readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + project_code: + type: integer nullable: true - in_stock: + description: Select project code for this order + quantity: type: number format: double + minimum: 0 + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' readOnly: true nullable: true - ordering: - type: number - format: double + project_code_label: + type: string readOnly: true nullable: true - title: On Order - required_for_build_orders: - type: integer + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - required_for_sales_orders: + part: type: integer - readOnly: true nullable: true - stock_item_count: + title: Supplier Part + build_order: type: integer - readOnly: true nullable: true - title: Stock Items - total_in_stock: - type: number - format: double + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean readOnly: true nullable: true - title: Total Stock - external_stock: + received: type: number format: double readOnly: true + default: 0.0 + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - unallocated_stock: - type: number - format: double - readOnly: true + purchase_price_currency: + type: string + title: Currency + description: |- + Purchase price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + auto_pricing: + type: boolean + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer nullable: true - variant_stock: + description: Destination for received items + total_price: type: number format: double readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: - allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: + merge_items: type: boolean writeOnly: true default: true - description: Copy parameter templates from selected part category - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string readOnly: true nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' + mpn: + type: string readOnly: true nullable: true - default_location_detail: + ipn: + type: string + readOnly: true + nullable: true + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: + type: string + readOnly: true + build_order_detail: allOf: - - $ref: '#/components/schemas/DefaultLocation' + - $ref: '#/components/schemas/Build' readOnly: true nullable: true - category_detail: + destination_detail: allOf: - - $ref: '#/components/schemas/Category' + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - tags: - type: array - items: - type: string - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - PatchedPartBomValidate: + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + PatchedRepairOrder: type: object - description: Serializer for Part BOM information. + description: Serializer for a RepairOrder object. properties: pk: type: integer readOnly: true title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: + reference: type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: + description: Repair Order Reference + maxLength: 100 + customer: type: integer - readOnly: true nullable: true - bom_checked_by_detail: + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: -9223372036854775808 + maximum: 9223372036854775807 + PatchedRepairOrderAllocation: + type: object + description: Serializer for a RepairOrderAllocation object. + properties: + pk: + type: integer readOnly: true - nullable: true - bom_checked_date: + title: ID + line: + type: integer + title: Line Item + item: + type: integer + title: Stock Item + quantity: type: string - format: date - readOnly: true - nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - PatchedPartInternalPrice: + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + PatchedRepairOrderLineItem: type: object - description: Serializer for internal prices for Part model. + description: Serializer for a RepairOrderLineItem object. properties: pk: type: integer readOnly: true title: ID + order: + type: integer + title: Repair Order part: type: integer + nullable: true + description: Part to be consumed for repair quantity: - type: number - format: double - price: type: string format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + PatchedReportAsset: + type: object + description: Serializer class for the ReportAsset model. + properties: + pk: + type: integer + readOnly: true + title: ID + asset: type: string - title: Currency - description: Purchase currency of this stock item - PatchedPartPricing: + format: uri + description: + type: string + description: Asset file description + maxLength: 250 + PatchedReportSnippet: type: object - description: Serializer for Part pricing information. + description: Serializer class for the ReportSnippet model. properties: - currency: + pk: + type: integer + readOnly: true + title: ID + snippet: + type: string + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + PatchedReportTemplate: + type: object + description: Serializer class for report template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer readOnly: true - nullable: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing updated: type: string format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: + type: boolean + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + PatchedReturnOrder: + type: object + description: Serializer for the ReturnOrder model class. + properties: + pk: + type: integer readOnly: true - nullable: true - scheduled_for_update: - type: boolean + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' readOnly: true - bom_cost_min: + creation_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - bom_cost_max: + issue_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - purchase_cost_min: + description: Date order was issued + start_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - purchase_cost_max: + description: Scheduled start date for this order + target_date: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: date nullable: true - internal_cost_min: + description: Expected date for order delivery. Order will be overdue after + this date. + description: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Order description (optional) + maxLength: 250 + line_items: + type: integer readOnly: true nullable: true - internal_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + completed_lines: + type: integer readOnly: true nullable: true - supplier_price_min: + link: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer nullable: true - supplier_price_max: + description: Select project code for this order + reference: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + responsible: + type: integer nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + description: User or group responsible for this order + contact: + type: integer nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true + description: Point of contact for this order + address: + type: integer nullable: true - override_min: + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + status_custom_key: + type: integer + readOnly: true nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string + title: Custom status key description: |- - Select currency from available options + Additional status information for this item - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true nullable: true - overall_max: + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + overdue: + type: boolean readOnly: true nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' readOnly: true nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' readOnly: true nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - sale_history_max: + project_code_label: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ readOnly: true nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - PatchedPartRelation: - type: object - description: Serializer for a PartRelated model. - properties: - pk: - type: integer - readOnly: true - title: ID - part_1: - type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - part_2: - type: integer - description: Select Related Part - part_2_detail: + responsible_detail: allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - note: - type: string - description: Note for this relationship - maxLength: 500 - PatchedPartSalePrice: - type: object - description: Serializer for sale prices for Part model. - properties: - pk: - type: integer + - $ref: '#/components/schemas/Owner' readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - price_currency: - type: string - title: Currency - description: Purchase currency of this stock item - PatchedPartStocktake: - type: object - description: Serializer for the PartStocktake model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Part for stocktake - part_name: - type: string - readOnly: true - part_ipn: - type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true nullable: true - part_description: + complete_date: type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - date: + customer_reference: type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: + description: Customer order reference code + maxLength: 64 + order_currency: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - cost_min_currency: - type: string - title: Currency - description: Select currency from available options - cost_max: + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + total_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - cost_max_currency: + updated_at: type: string - title: Currency - description: Select currency from available options - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + format: date-time readOnly: true nullable: true - PatchedPartTestTemplate: + description: Timestamp of last update + PatchedReturnOrderExtraLine: type: object - description: Serializer for the PartTestTemplate class. + description: Serializer for a ReturnOrderExtraLine object. properties: pk: type: integer readOnly: true title: ID - key: - type: string - readOnly: true - part: - type: integer - test_name: + line: type: string - description: Enter a name for the test - maxLength: 100 + title: Line Number + description: Line number for this item (optional) + maxLength: 20 description: type: string - nullable: true - title: Test Description - description: Enter description for this test - maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: - type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - PatchedPartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: + description: Line item description (optional) + maxLength: 250 + link: type: string format: uri - PatchedPluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PatchedPluginSetting: - type: object - description: Serializer for the PluginSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: + description: Link to external page + maxLength: 2000 + notes: type: string - readOnly: true - value: + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - name: - type: string - readOnly: true - description: + price_currency: type: string - readOnly: true - type: + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + description: Line item reference + maxLength: 100 + target_date: type: string - readOnly: true + format: date nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' readOnly: true nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: + project_code_label: type: string readOnly: true - plugin: - type: string + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true - PatchedPluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PatchedPluginUserSetting: + nullable: true + PatchedReturnOrderLineItem: type: object - description: Serializer for the PluginUserSetting model. + description: Serializer for a ReturnOrderLineItem object. properties: pk: type: integer readOnly: true title: ID - key: - type: string - readOnly: true - value: + line: type: string - nullable: true - name: + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: type: string - readOnly: true - description: + format: uri + description: Link to external page + maxLength: 2000 + notes: type: string - readOnly: true - type: + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + description: Line item reference + maxLength: 100 + target_date: type: string - readOnly: true + format: date nullable: true - model_filters: - type: object - additionalProperties: {} + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' readOnly: true - api_url: + nullable: true + project_code_label: type: string readOnly: true nullable: true - typ: - type: string + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true - units: + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: + format: date + nullable: true + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: type: string - readOnly: true - plugin: + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: type: string + title: Currency + description: |- + Line price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true - user: - type: integer + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true - description: The user for which this setting applies - PatchedProjectCode: + nullable: true + PatchedRuleSet: type: object - description: Serializer for the ProjectCode model. + description: Serializer for a RuleSet. properties: pk: type: integer readOnly: true title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: type: string - description: Project description - maxLength: 200 - responsible: + description: Return the translated label for this ruleset. + readOnly: true + group: type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' readOnly: true - nullable: true - PatchedPurchaseOrder: + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items + PatchedSalesOrder: type: object - description: Serializer for a PurchaseOrder object. + description: Serializer for the SalesOrder model class. properties: pk: type: integer @@ -32786,7 +36814,6 @@ components: issue_date: type: string format: date - readOnly: true nullable: true description: Date order was issued start_date: @@ -32848,7 +36875,19 @@ components: readOnly: true nullable: true title: Custom status key - description: Additional status information for this item + description: |- + Additional status information for this item + + * `10` - Pending + * `15` - In Progress + * `20` - Shipped + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. notes: type: string nullable: true @@ -32877,72 +36916,157 @@ components: - $ref: '#/components/schemas/Contact' readOnly: true nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + PatchedSalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer readOnly: true - nullable: true - project_code_label: - type: string + part: + type: integer readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' + order: + type: integer readOnly: true - nullable: true - complete_date: + serial: type: string - format: date readOnly: true nullable: true - title: Completion Date - description: Date order was completed - supplier: + location: type: integer - nullable: true - description: Company from which the items are being ordered - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true - order_currency: - type: string - nullable: true - description: Currency for this order (leave blank to use company default) - destination: - type: integer + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' readOnly: true nullable: true - description: Timestamp of last update - supplier_detail: + customer_detail: allOf: - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - PatchedPurchaseOrderExtraLine: + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' + readOnly: true + nullable: true + PatchedSalesOrderExtraLine: type: object - description: Serializer for a PurchaseOrderExtraLine object. + description: Serializer for a SalesOrderExtraLine object. properties: pk: type: integer @@ -32968,7 +37092,7 @@ components: maxLength: 500 order: type: integer - description: Purchase Order + description: Sales Order price: type: string format: decimal @@ -32977,7 +37101,19 @@ components: price_currency: type: string title: Currency - description: Select currency from available options + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. project_code: type: integer nullable: true @@ -32995,6 +37131,11 @@ components: nullable: true description: Target date for this line item (leave blank to use the target date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true project_code_label: type: string readOnly: true @@ -33004,14 +37145,9 @@ components: - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - PatchedPurchaseOrderLineItem: + PatchedSalesOrderLineItem: type: object - description: Serializer class for the PurchaseOrderLineItem model. + description: Serializer for a SalesOrderLineItem object. properties: pk: type: integer @@ -33033,7 +37169,7 @@ components: maxLength: 500 order: type: integer - description: Purchase Order + description: Sales Order project_code: type: integer nullable: true @@ -33041,7 +37177,6 @@ components: quantity: type: number format: double - minimum: 0 reference: type: string description: Line item reference @@ -33050,6 +37185,11 @@ components: type: string format: date nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true project_code_label: type: string readOnly: true @@ -33059,565 +37199,746 @@ components: - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer + allocated: + type: number + format: double + readOnly: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true nullable: true - description: External Build Order to be fulfilled by this line item overdue: type: boolean readOnly: true nullable: true - received: - type: number - format: double + part: + type: integer + nullable: true + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true - default: 0.0 - purchase_price: + nullable: true + sale_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - purchase_price_currency: + sale_price_currency: type: string title: Currency - description: Purchase price currency - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: + description: |- + Sale price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipped: type: number format: double readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + PatchedSalesOrderShipment: + type: object + description: Serializer for the SalesOrderShipment class. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + description: Sales Order + allocated_items: + type: integer readOnly: true nullable: true - mpn: + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + checked_by: + type: integer + nullable: true + description: User who checked this shipment + reference: + type: string + default: '1' + title: Shipment + description: Shipment number + maxLength: 100 + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: type: string - readOnly: true nullable: true - ipn: - type: string + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true nullable: true - title: Internal Part Number - internal_part: - type: integer - readOnly: true - internal_part_name: - type: string - readOnly: true - build_order_detail: + checked_by_detail: allOf: - - $ref: '#/components/schemas/Build' + - $ref: '#/components/schemas/User' readOnly: true nullable: true - destination_detail: + customer_detail: allOf: - - $ref: '#/components/schemas/LocationBrief' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true order_detail: allOf: - - $ref: '#/components/schemas/PurchaseOrder' + - $ref: '#/components/schemas/SalesOrder' readOnly: true nullable: true - part_detail: + shipment_address_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/AddressBrief' readOnly: true nullable: true - PatchedRepairOrder: + PatchedSelectionEntry: type: object - description: Serializer for a RepairOrder object. + description: Serializer for a selection entry. properties: - pk: + id: type: integer readOnly: true - title: ID - reference: + value: type: string - description: Repair Order Reference - maxLength: 100 - customer: - type: integer - nullable: true - description: Customer reference + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 description: type: string - description: Repair order description + description: Description of the selection list entry maxLength: 250 - symptoms: - type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' - description: |- - Repair order status - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: -9223372036854775808 - maximum: 9223372036854775807 - PatchedRepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity - PatchedRepairOrderLineItem: - type: object - description: Serializer for a RepairOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - title: Repair Order - part: + active: + type: boolean + description: Is this selection list entry active? + list: type: integer nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair - PatchedReportAsset: + title: Selection List + description: Selection list to which this entry belongs + PatchedSelectionList: type: object - description: Serializer class for the ReportAsset model. + description: Serializer for a selection list. properties: pk: type: integer readOnly: true title: ID - asset: + name: type: string - format: uri + description: Name of the selection list + maxLength: 100 description: type: string - description: Asset file description + description: Description of the selection list maxLength: 250 - PatchedReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: type: integer + nullable: true + description: Plugin which provides the selection list + source_string: + type: string + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' readOnly: true - title: ID - snippet: + nullable: true + created: type: string - format: uri - description: + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: type: string - description: Snippet file description - maxLength: 250 - PatchedReportTemplate: + format: date-time + readOnly: true + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer + readOnly: true + PatchedStockItem: type: object - description: Serializer class for report template model. + description: |- + Serializer for a StockItem. + + - Includes serialization for the linked part + - Includes serialization for the item location properties: pk: type: integer readOnly: true title: ID - name: + part: + type: integer + description: Base Part + quantity: + type: number + format: double + serial: type: string - description: Template name + nullable: true + title: Serial Number + description: Serial number for this item maxLength: 100 - description: + batch: type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: + nullable: true + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + location: + type: integer + nullable: true + title: Stock Location + description: Where is this stock item located? + belongs_to: + type: integer + nullable: true + title: Installed In + description: Is this item installed in another item? + build: + type: integer + nullable: true + title: Source Build + description: Build for this stock item + consumed_by: + type: integer + nullable: true + description: Build order which consumed this stock item + customer: + type: integer + nullable: true + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: type: string - format: uri - filters: + format: date + nullable: true + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean + readOnly: true + is_building: + type: boolean + link: type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + notes: type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: type: integer readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time nullable: true - description: Timestamp of last update - updated_by: + title: Parent Item + description: Parent stock item + purchase_order: type: integer nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: + type: string readOnly: true nullable: true - page_size: - allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items - PatchedReturnOrder: - type: object - description: Serializer for the ReturnOrder model class. - properties: - pk: + sales_order: type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: + type: string readOnly: true - title: ID - created_by: + nullable: true + status: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true readOnly: true - creation_date: + status_custom_key: + type: integer + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: type: string - format: date + readOnly: true nullable: true - issue_date: + title: Supplier Part Number + MPN: type: string - format: date + readOnly: true nullable: true - description: Date order was issued - start_date: + title: Manufacturer Part Number + barcode_hash: type: string - format: date + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true nullable: true - description: Scheduled start date for this order - target_date: + description: Date that this stock item was created + stocktake_date: type: string format: date + readOnly: true nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: + updated: type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer + format: date-time readOnly: true nullable: true - completed_lines: - type: integer - readOnly: true + description: Timestamp of last update + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - link: + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + use_pack_size: + type: boolean + writeOnly: true nullable: true - description: Select project code for this order - reference: + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: type: string - responsible: - type: integer + writeOnly: true nullable: true - description: User or group responsible for this order - contact: - type: integer + description: Enter serial numbers for new items + allocated: + type: number + format: double + readOnly: true nullable: true - description: Point of contact for this order - address: - type: integer + title: Allocated Quantity + expired: + type: boolean + readOnly: true nullable: true - description: Company address for this order - status: + installed_items: type: integer readOnly: true - title: Order Status - status_text: - type: string nullable: true - readOnly: true - status_custom_key: + child_items: type: integer readOnly: true nullable: true - title: Custom status key - description: Additional status information for this item - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: + stale: type: boolean readOnly: true nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: + location_detail: allOf: - - $ref: '#/components/schemas/AddressBrief' + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' + title: Location + location_path: + type: array + items: + $ref: '#/components/schemas/TreePath' readOnly: true nullable: true - project_code_detail: + part_detail: allOf: - - $ref: '#/components/schemas/ProjectCode' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true - project_code_label: - type: string + title: Part + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' + title: Supplier Part + tags: + type: array + items: + type: string + tests: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' readOnly: true nullable: true - complete_date: - type: string - format: date + tracking_items: + type: integer + readOnly: true nullable: true - title: Completion Date - description: Date order was completed - customer: + PatchedStockItemTestResult: + type: object + description: Serializer for the StockItemTestResult model. + properties: + pk: + type: integer + readOnly: true + title: ID + stock_item: type: integer + result: + type: boolean + description: Test result + value: + type: string + description: Test output value + maxLength: 500 + attachment: + type: string + format: uri nullable: true - description: Company from which items are being returned - customer_reference: + description: Test result attachment + notes: + type: string + description: Test notes + maxLength: 500 + test_station: type: string - description: Customer order reference code - maxLength: 64 - order_currency: + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: type: string + format: date-time nullable: true - description: Currency for this order (leave blank to use company default) - total_price: + title: Started + description: The timestamp of the test start + finished_datetime: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + format: date-time + nullable: true + title: Finished + description: The timestamp of the test finish + user: + type: integer readOnly: true nullable: true - updated_at: - type: string - format: date-time + user_detail: + allOf: + - $ref: '#/components/schemas/User' readOnly: true nullable: true - description: Timestamp of last update - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' + date: + type: string + format: date-time readOnly: true + template: + type: integer nullable: true - customer_detail: + title: Test template for this result + description: Template + template_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/PartTestTemplate' readOnly: true nullable: true - PatchedReturnOrderExtraLine: + PatchedStockLocationType: type: object - description: Serializer for a ReturnOrderExtraLine object. + description: Serializer for StockLocationType model. properties: pk: type: integer readOnly: true title: ID - line: + name: type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 + description: Name + maxLength: 100 description: type: string - description: Line item description (optional) + description: Description (optional) maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: + icon: type: string - description: Line item notes - maxLength: 500 - order: + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: type: integer - description: Return Order - price: + readOnly: true + nullable: true + PatchedSupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + available: + type: number + format: double + availability_updated: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + format: date-time + readOnly: true nullable: true - price_currency: + description: Date of last update of availability data + description: type: string - title: Currency - description: Select currency from available options - project_code: - type: integer nullable: true - description: Select project code for this order - quantity: + description: Supplier part description + maxLength: 250 + in_stock: type: number format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date + readOnly: true nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - project_code_label: - type: string + on_order: + type: number + format: double readOnly: true nullable: true - project_code_detail: + link: + type: string + format: uri + nullable: true + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_detail: allOf: - - $ref: '#/components/schemas/ProjectCode' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - order_detail: + title: Manufacturer + manufacturer_part: + type: integer + nullable: true + description: Select manufacturer part + manufacturer_part_detail: allOf: - - $ref: '#/components/schemas/ReturnOrder' + - $ref: '#/components/schemas/ManufacturerPart' readOnly: true nullable: true - PatchedReturnOrderLineItem: - type: object - description: Serializer for a ReturnOrderLineItem object. - properties: + title: Manufacturer Part + MPN: + type: string + readOnly: true + nullable: true + note: + type: string + nullable: true + description: Notes + maxLength: 100 pk: type: integer readOnly: true title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: + barcode_hash: type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: + readOnly: true + description: Unique hash of barcode data + packaging: type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: - type: integer nullable: true - description: Select project code for this order - quantity: + description: Part packaging + maxLength: 50 + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: type: number format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + readOnly: true + part: + type: integer + title: Base Part + description: Select part + pretty_name: type: string - format: date + readOnly: true nullable: true - project_code_label: + SKU: type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: + type: integer + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + title: Supplier + updated: + type: string + format: date-time readOnly: true nullable: true - item: - type: integer - description: Select item to return from customer - received_date: + notes: type: string - format: date nullable: true - description: The date this return item was received - outcome: + description: Markdown notes (optional) + maxLength: 50000 + part_detail: allOf: - - $ref: '#/components/schemas/OutcomeEnum' - description: |- - Outcome for this line item + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tags: + type: array + items: + type: string + price_breaks: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedSupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double price: type: string format: decimal @@ -33626,76 +37947,41 @@ components: price_currency: type: string title: Currency - description: Line price currency - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time readOnly: true nullable: true - order_detail: + description: Timestamp of last update + supplier_detail: allOf: - - $ref: '#/components/schemas/ReturnOrder' + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true part_detail: allOf: - - $ref: '#/components/schemas/PartBrief' + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true - PatchedRuleSet: - type: object - description: Serializer for a RuleSet. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - PatchedSalesOrder: + PatchedTransferOrder: type: object - description: Serializer for the SalesOrder model class. + description: Serializer for a TransferOrder object. properties: pk: type: integer @@ -33773,7 +38059,16 @@ components: readOnly: true nullable: true title: Custom status key - description: Additional status information for this item + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Issued + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. notes: type: string nullable: true @@ -33816,64 +38111,47 @@ components: - $ref: '#/components/schemas/Owner' readOnly: true nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true nullable: true - order_currency: - type: string - nullable: true - description: Currency for this order (leave blank to use company default) - shipments_count: + take_from: type: integer - readOnly: true nullable: true - title: Shipments - completed_shipments_count: - type: integer + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' readOnly: true nullable: true - title: Completed Shipments - allocated_lines: + destination: type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true nullable: true - customer_detail: + title: Destination Location + description: Destination for transferred items + destination_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/Location' readOnly: true nullable: true - PatchedSalesOrderAllocation: + consume: + type: boolean + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + PatchedTransferOrderAllocation: type: object description: |- - Serializer for the SalesOrderAllocation model. + Serializer for the TransferOrderAllocation model. This includes some fields from the related model objects. properties: @@ -33887,10 +38165,6 @@ components: quantity: type: number format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference line: type: integer readOnly: true @@ -33899,116 +38173,37 @@ components: readOnly: true order: type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - PatchedSalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: Select currency from available options - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + readOnly: true + serial: type: string - format: date + readOnly: true nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - project_code_label: - type: string + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true nullable: true - project_code_detail: + part_detail: allOf: - - $ref: '#/components/schemas/ProjectCode' + - $ref: '#/components/schemas/PartBrief' readOnly: true nullable: true order_detail: allOf: - - $ref: '#/components/schemas/SalesOrder' + - $ref: '#/components/schemas/TransferOrder' readOnly: true nullable: true - PatchedSalesOrderLineItem: + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + PatchedTransferOrderLineItem: type: object - description: Serializer for a SalesOrderLineItem object. + description: Serializer for a TransferOrderLineItem object. properties: pk: type: integer @@ -34030,7 +38225,7 @@ components: maxLength: 500 order: type: integer - description: Sales Order + description: Transfer Order project_code: type: integer nullable: true @@ -34046,6 +38241,11 @@ components: type: string format: date nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true project_code_label: type: string readOnly: true @@ -34067,16 +38267,12 @@ components: type: integer nullable: true description: Part - sale_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - sale_price_currency: - type: string - title: Currency - description: Sale price currency - shipped: + transferred: type: number format: double readOnly: true @@ -34097,1582 +38293,1889 @@ components: type: number format: double readOnly: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true + PatchedUserProfile: + type: object + description: Serializer for the UserProfile model. + properties: + language: + type: string nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true + description: Preferred language for the user + maxLength: 10 + theme: nullable: true - customer_detail: + description: Settings for the web UI as JSON - do not edit manually! + widgets: + nullable: true + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string nullable: true - PatchedSalesOrderShipment: + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + PatchedUserSetPassword: type: object - description: Serializer for the SalesOrderShipment class. + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + PatchedUserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. properties: pk: type: integer readOnly: true title: ID - order: - type: integer - description: Sales Order - allocated_items: - type: integer - readOnly: true - nullable: true - shipment_date: + key: type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer - nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: + readOnly: true + value: type: string - format: date - nullable: true - description: Date of delivery of shipment - checked_by: - type: integer nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: + name: type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: + readOnly: true + description: type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: + readOnly: true + user: + type: integer + readOnly: true + type: type: string - description: Unique hash of barcode data - maxLength: 128 - link: + readOnly: true + units: type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' readOnly: true nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' + api_url: + type: string readOnly: true nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' + typ: + type: string readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' + confirm: + type: boolean readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string readOnly: true - nullable: true - PatchedSelectionEntry: + PendingTask: type: object - description: Serializer for a selection entry. + description: Serializer for an individual pending task object. properties: - id: + pk: type: integer readOnly: true - value: + title: ID + key: + type: string + title: Cluster key + description: Name of the target cluster + maxLength: 100 + lock: + type: string + format: date-time + description: Lock time + task_id: type: string - description: Value of the selection list entry - maxLength: 255 - label: + description: Unique task ID + name: type: string - description: Label for the selection list entry - maxLength: 255 - description: + description: Task name + func: type: string - description: Description of the selection list entry - maxLength: 250 + title: Function + description: Function name + args: + type: string + title: Arguments + description: Task arguments + kwargs: + type: string + title: Keyword Arguments + description: Task keyword arguments + required: + - args + - func + - key + - kwargs + - lock + - name + - pk + - task_id + PluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: active: type: boolean - description: Is this selection list entry active? - list: - type: integer + default: true + title: Activate Plugin + description: Activate this plugin + PluginAdminDetail: + type: object + description: Serializer for a PluginConfig with admin details. + properties: + source: + type: string nullable: true - title: Selection List - description: Selection list to which this entry belongs - PatchedSelectionList: + title: Source File + description: Path to the source file for admin integration + context: + nullable: true + description: Optional context data for the admin integration + required: + - context + - source + PluginConfig: type: object - description: Serializer for a selection list. + description: Serializer for a PluginConfig. properties: pk: type: integer readOnly: true title: ID + key: + type: string + readOnly: true + description: Key of plugin name: type: string - description: Name of the selection list - maxLength: 100 - description: + nullable: true + description: Name of the plugin + maxLength: 255 + package_name: type: string - description: Description of the selection list - maxLength: 250 + nullable: true + description: Name of the installed package, if the plugin was installed + via PIP + maxLength: 255 active: type: boolean - description: Can this selection list be used? - locked: + description: Is the plugin active + meta: + type: object + additionalProperties: {} + readOnly: true + mixins: + type: object + additionalProperties: {} + readOnly: true + is_builtin: type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' + description: Return True if this is a 'builtin' plugin. readOnly: true - nullable: true - created: - type: string - format: date-time + is_sample: + type: boolean + description: Is this plugin a sample app? readOnly: true - description: Date and time that the selection list was created - last_updated: - type: string - format: date-time + is_installed: + type: boolean + description: |- + Simple check to determine if this plugin is installed. + + A plugin might not be installed if it has been removed from the system, + but the PluginConfig associated with it still exists. readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: - type: integer + is_package: + type: boolean + description: Return True if this is a 'package' plugin. readOnly: true - PatchedStockItem: + is_mandatory: + type: boolean + readOnly: true + required: + - is_builtin + - is_installed + - is_mandatory + - is_package + - is_sample + - key + - meta + - mixins + - pk + PluginConfigInstall: type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location + description: Serializer for installing a new plugin. properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: - type: number - format: double - serial: + url: type: string - nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: + title: Source URL + description: Source for the package - this can be a custom registry or a + VCS path + packagename: type: string - nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer - nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer - nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer - nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer - nullable: true - description: Build order which consumed this stock item - customer: - type: integer - nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: + title: Package Name + description: Name for the Plugin Package - can also contain a version indicator + version: type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean - readOnly: true - is_building: + description: Version specifier for the plugin. Leave blank for latest version. + confirm: type: boolean - link: + title: Confirm plugin installation + description: This will install this plugin now into the current instance. + The instance will go into maintenance. + required: + - confirm + PluginRegistryError: + type: object + description: Serializer for a plugin registry error. + properties: + stage: type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: + name: type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: - type: integer - nullable: true - description: Select Owner - packaging: + message: type: string - nullable: true - description: Packaging this stock item is stored in - maxLength: 50 - parent: + required: + - message + - name + - stage + PluginRegistryStatus: + type: object + description: Serializer for plugin registry status. + properties: + active_plugins: type: integer readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: + registry_errors: + type: array + items: + $ref: '#/components/schemas/PluginRegistryError' + required: + - active_plugins + - registry_errors + PluginReload: + type: object + description: Serializer for remotely forcing plugin registry reload. + properties: + full_reload: + type: boolean + default: false + description: Perform a full reload of the plugin registry + force_reload: + type: boolean + default: false + description: Force a reload of the plugin registry, even if it is already + loaded + collect_plugins: + type: boolean + default: false + description: Collect plugins and add them to the registry + PluginSetting: + type: object + description: Serializer for the PluginSetting model. + properties: + pk: type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: - type: string readOnly: true - nullable: true - sales_order: - type: integer - nullable: true - title: Destination Sales Order - sales_order_reference: + title: ID + key: type: string readOnly: true - nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: + value: type: string nullable: true - readOnly: true - status_custom_key: - type: integer - nullable: true - title: Custom status key - description: Additional status information for this item - supplier_part: - type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: + name: type: string readOnly: true - nullable: true - title: Supplier Part Number - MPN: + description: type: string readOnly: true - nullable: true - title: Manufacturer Part Number - barcode_hash: + type: type: string readOnly: true - description: Unique hash of barcode data - creation_date: - type: string - format: date-time + choices: + type: array + items: {} + description: Returns the choices available for a given item. readOnly: true - nullable: true - description: Date that this stock item was created - stocktake_date: + model_name: type: string - format: date readOnly: true nullable: true - updated: - type: string - format: date-time + model_filters: + type: object + additionalProperties: {} readOnly: true - nullable: true - description: Timestamp of last update - purchase_price: + api_url: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: + typ: type: string - title: Currency - description: Purchase currency of this stock item - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: + readOnly: true + units: type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double readOnly: true - nullable: true - title: Allocated Quantity - expired: + required: type: boolean readOnly: true - nullable: true - installed_items: - type: integer - readOnly: true - nullable: true - child_items: - type: integer - readOnly: true - nullable: true - stale: + confirm: type: boolean readOnly: true - nullable: true - tracking_items: - type: integer - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - location_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - tags: - type: array - items: - type: string - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string readOnly: true - nullable: true - title: Location - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' + plugin: + type: string readOnly: true - nullable: true - PatchedStockItemTestResult: + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - value + PluginUIFeature: type: object - description: Serializer for the StockItemTestResult model. + description: Serializer for a plugin ui feature. + properties: + plugin_name: + type: string + feature_type: + type: string + key: + type: string + title: Feature Label + title: + type: string + title: Feature Title + description: + type: string + title: Feature Description + icon: + type: string + title: Feature Icon + options: + type: object + additionalProperties: {} + title: Feature Options + context: + type: object + additionalProperties: {} + title: Feature Context + source: + type: string + title: Feature Source (javascript) + required: + - feature_type + - key + - plugin_name + PluginUninstall: + type: object + description: Serializer for uninstalling a plugin. + properties: + delete_config: + type: boolean + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PluginUserSetting: + type: object + description: Serializer for the PluginUserSetting model. properties: pk: type: integer readOnly: true title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: + key: type: string - description: Test output value - maxLength: 500 - attachment: + readOnly: true + value: type: string - format: uri nullable: true - description: Test result attachment - notes: + name: type: string - description: Test notes - maxLength: 500 - test_station: + readOnly: true + description: type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: + readOnly: true + type: type: string - format: date-time - nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: type: string - format: date-time - nullable: true - title: Finished - description: The timestamp of the test finish - user: - type: integer readOnly: true nullable: true - date: + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: type: string - format: date-time readOnly: true - template: - type: integer nullable: true - title: Test template for this result - description: Template - template_detail: - allOf: - - $ref: '#/components/schemas/PartTestTemplate' + typ: + type: string readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' + units: + type: string readOnly: true - nullable: true - PatchedStockLocationType: + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - user + - value + PriorityEnum: + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + type: integer + description: |- + * `0` - None + * `1` - Very High + * `2` - High + * `3` - Normal + * `4` - Low + * `5` - Very Low + ProjectCode: type: object - description: Serializer for StockLocationType model. + description: Serializer for the ProjectCode model. properties: pk: type: integer readOnly: true title: ID - name: + code: type: string - description: Name - maxLength: 100 + title: Project Code + description: Unique project code + maxLength: 50 description: type: string - description: Description (optional) - maxLength: 250 - icon: - type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: + description: Project description + maxLength: 200 + responsible: type: integer + nullable: true + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' readOnly: true nullable: true - PatchedSupplierPart: + required: + - code + - pk + PurchaseOrder: type: object - description: Serializer for SupplierPart object. + description: Serializer for a PurchaseOrder object. properties: - available: - type: number - format: double - availability_updated: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: type: string - format: date-time + format: date + nullable: true + issue_date: + type: string + format: date readOnly: true nullable: true - description: Date of last update of availability data - description: + description: Date order was issued + start_date: type: string + format: date nullable: true - description: Supplier part description + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) maxLength: 250 - in_stock: - type: number - format: double + line_items: + type: integer readOnly: true nullable: true - on_order: - type: number - format: double + completed_lines: + type: integer readOnly: true nullable: true link: type: string format: uri - nullable: true - description: URL for external supplier part link + description: Link to external page maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_part: + project_code: type: integer nullable: true - description: Select manufacturer part - MPN: + description: Select project code for this order + reference: type: string - readOnly: true + responsible: + type: integer nullable: true - note: - type: string + description: User or group responsible for this order + contact: + type: integer nullable: true - description: Notes - maxLength: 100 - pk: + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: type: integer readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - packaging: + title: Order Status + status_text: type: string nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: - type: number - format: double readOnly: true - part: - type: integer - title: Base Part - description: Select part - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: + status_custom_key: type: integer - updated: - type: string - format: date-time readOnly: true nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Placed + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. notes: type: string nullable: true description: Markdown notes (optional) maxLength: 50000 - pretty_name: + barcode_hash: type: string readOnly: true + overdue: + type: boolean + readOnly: true nullable: true - manufacturer_detail: + duplicate: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' readOnly: true nullable: true - title: Manufacturer - supplier_detail: + contact_detail: allOf: - - $ref: '#/components/schemas/CompanyBrief' + - $ref: '#/components/schemas/Contact' readOnly: true nullable: true - title: Supplier - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + project_code_label: + type: string readOnly: true nullable: true - title: Part - tags: - type: array - items: - type: string - manufacturer_part_detail: + responsible_detail: allOf: - - $ref: '#/components/schemas/ManufacturerPart' + - $ref: '#/components/schemas/Owner' readOnly: true nullable: true - title: Manufacturer Part parameters: type: array items: $ref: '#/components/schemas/Parameter' readOnly: true nullable: true - PatchedSupplierPriceBreak: - type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. - properties: - pk: - type: integer + complete_date: + type: string + format: date readOnly: true - title: ID - part: + nullable: true + title: Completion Date + description: Date order was completed + supplier: type: integer - quantity: - type: number - format: double - price: + nullable: true + description: Company from which the items are being ordered + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string + readOnly: true + total_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true nullable: true - price_currency: + order_currency: type: string - title: Currency - description: Select currency from available options - supplier: + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + destination: type: integer - readOnly: true - updated: + nullable: true + description: Destination for received items + updated_at: type: string format: date-time readOnly: true nullable: true description: Timestamp of last update - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - PatchedTransferOrder: + required: + - barcode_hash + - created_by + - pk + - reference + - status + - supplier + - supplier_name + PurchaseOrderComplete: type: object - description: Serializer for a TransferOrder object. + description: Serializer for completing a purchase order. + properties: + accept_incomplete: + type: boolean + default: false + description: Allow order to be closed with incomplete line items + PurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. properties: pk: type: integer readOnly: true title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: + line: type: string - format: date - nullable: true - issue_date: + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: type: string - format: date + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - description: Date order was issued - start_date: + price_currency: type: string - format: date + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer nullable: true - description: Scheduled start date for this order + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 target_date: type: string format: date nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer readOnly: true nullable: true - completed_lines: - type: integer + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true + required: + - order + - pk + - quantity + PurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 link: type: string format: uri description: Link to external page maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order project_code: type: integer nullable: true description: Select project code for this order + quantity: + type: number + format: double + minimum: 0 reference: type: string - responsible: - type: integer + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true nullable: true - description: User or group responsible for this order - contact: + part: type: integer nullable: true - description: Point of contact for this order - address: + title: Supplier Part + build_order: type: integer nullable: true - description: Company address for this order - status: - type: integer + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean readOnly: true - title: Order Status - status_text: - type: string nullable: true + received: + type: number + format: double readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: Additional status information for this item - notes: + default: 0.0 + purchase_price: type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: + purchase_price_currency: type: string - readOnly: true - overdue: + title: Currency + description: |- + Purchase price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + auto_pricing: type: boolean - readOnly: true + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' + description: Destination for received items + total_price: + type: number + format: double + readOnly: true + merge_items: + type: boolean writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' + default: true + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string readOnly: true nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' + mpn: + type: string readOnly: true nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + ipn: + type: string readOnly: true nullable: true - project_code_label: + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: type: string readOnly: true - nullable: true - responsible_detail: + build_order_detail: allOf: - - $ref: '#/components/schemas/Owner' + - $ref: '#/components/schemas/Build' readOnly: true nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: + destination_detail: allOf: - - $ref: '#/components/schemas/Location' + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - destination: - type: integer + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: + supplier_part_detail: allOf: - - $ref: '#/components/schemas/Location' + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: + required: + - internal_part + - internal_part_name + - order + - part + - pk + - quantity + - received + - total_price + PurchaseOrderLineItemReceive: + type: object + description: A serializer for receiving a single purchase order line item against + a purchase order. + properties: + line_item: + type: integer + location: + type: integer + nullable: true + description: Select destination location for received items + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch_code: + type: string + default: '' + description: Enter batch code for incoming stock items + expiry_date: type: string format: date nullable: true - title: Completion Date - description: Date order was completed - parameters: + description: Enter expiry date for incoming stock items + serial_numbers: + type: string + default: '' + description: Enter serial numbers for incoming stock items + status: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + packaging: + type: string + default: '' + description: Override packaging information for incoming stock items + note: + type: string + default: '' + description: Additional note for incoming stock items + barcode: + type: string + nullable: true + default: '' + description: Scanned barcode + required: + - line_item + - quantity + PurchaseOrderReceive: + type: object + description: Serializer for receiving items against a PurchaseOrder. + properties: + items: type: array items: - $ref: '#/components/schemas/Parameter' + $ref: '#/components/schemas/PurchaseOrderLineItemReceive' + location: + type: integer + nullable: true + description: Select destination location for received items + required: + - items + ReferenceStatusEnum: + enum: + - BuildStatus + - DataImportStatusCode + - MachineStatus + - PurchaseOrderStatus + - RepairOrderStatus + - ReturnOrderLineStatus + - ReturnOrderStatus + - SalesOrderStatus + - StockHistoryCode + - StockStatus + - TransferOrderStatus + type: string + description: |- + * `BuildStatus` - BuildStatus + * `DataImportStatusCode` - DataImportStatusCode + * `MachineStatus` - MachineStatus + * `PurchaseOrderStatus` - PurchaseOrderStatus + * `RepairOrderStatus` - RepairOrderStatus + * `ReturnOrderLineStatus` - ReturnOrderLineStatus + * `ReturnOrderStatus` - ReturnOrderStatus + * `SalesOrderStatus` - SalesOrderStatus + * `StockHistoryCode` - StockHistoryCode + * `StockStatus` - StockStatus + * `TransferOrderStatus` - TransferOrderStatus + RepairOrder: + type: object + description: Serializer for a RepairOrder object. + properties: + pk: + type: integer readOnly: true + title: ID + reference: + type: string + description: Repair Order Reference + maxLength: 100 + customer: + type: integer nullable: true - PatchedTransferOrderAllocation: + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: + allOf: + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: -9223372036854775808 + maximum: 9223372036854775807 + required: + - description + - pk + - reference + RepairOrderAllocation: type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. + description: Serializer for a RepairOrderAllocation object. properties: pk: type: integer readOnly: true title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double line: type: integer - readOnly: true - part: - type: integer - readOnly: true - order: + title: Line Item + item: type: integer - readOnly: true - serial: + title: Stock Item + quantity: type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - PatchedTransferOrderLineItem: + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + required: + - item + - line + - pk + RepairOrderLineItem: type: object - description: Serializer for a TransferOrderLineItem object. + description: Serializer for a RepairOrderLineItem object. properties: pk: type: integer readOnly: true title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 order: type: integer - description: Transfer Order - project_code: + title: Repair Order + part: type: integer nullable: true - description: Select project code for this order + description: Part to be consumed for repair quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - project_code_label: type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - PatchedUserProfile: + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + required: + - order + - pk + RepairOrderStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + ReportAsset: type: object - description: Serializer for the UserProfile model. + description: Serializer class for the ReportAsset model. properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: + pk: + type: integer + readOnly: true + title: ID + asset: type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: + format: uri + description: type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: + description: Asset file description + maxLength: 250 + required: + - asset + - description + - pk + ReportPrint: + type: object + description: Serializer class for printing a report. + properties: + template: type: integer - nullable: true - description: Primary group for the user - PatchedUserSetPassword: + description: Select report template + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report + required: + - items + - template + ReportSnippet: type: object - description: Serializer for setting a password for a user. + description: Serializer class for the ReportSnippet model. properties: - password: + pk: + type: integer + readOnly: true + title: ID + snippet: type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules - PatchedUserSettings: + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + required: + - description + - pk + - snippet + ReportTemplate: type: object - description: Serializer for the InvenTreeUserSetting model. + description: Serializer class for report template model. properties: pk: type: integer readOnly: true title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true name: type: string - readOnly: true + description: Template name + maxLength: 100 description: type: string - readOnly: true - user: - type: integer - readOnly: true - type: + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: type: string - readOnly: true - units: + format: uri + filters: type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer readOnly: true - nullable: true - api_url: + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: type: string - readOnly: true + format: date-time nullable: true - typ: - type: string + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' readOnly: true - confirm: + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - PendingTask: + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + required: + - description + - model_type + - name + - pk + - revision + - template + ReturnOrder: type: object - description: Serializer for an individual pending task object. + description: Serializer for the ReturnOrder model class. properties: pk: type: integer readOnly: true title: ID - key: - type: string - title: Cluster key - description: Name of the target cluster - maxLength: 100 - lock: - type: string - format: date-time - description: Lock time - task_id: - type: string - description: Unique task ID - name: - type: string - description: Task name - func: - type: string - title: Function - description: Function name - args: + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: type: string - title: Arguments - description: Task arguments - kwargs: + format: date + nullable: true + issue_date: type: string - title: Keyword Arguments - description: Task keyword arguments - required: - - args - - func - - key - - kwargs - - lock - - name - - pk - - task_id - PluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PluginAdminDetail: - type: object - description: Serializer for a PluginConfig with admin details. - properties: - source: + format: date + nullable: true + description: Date order was issued + start_date: type: string + format: date nullable: true - title: Source File - description: Path to the source file for admin integration - context: + description: Scheduled start date for this order + target_date: + type: string + format: date nullable: true - description: Optional context data for the admin integration - required: - - context - - source - PluginConfig: - type: object - description: Serializer for a PluginConfig. - properties: - pk: + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: type: integer readOnly: true - title: ID - key: - type: string + nullable: true + completed_lines: + type: integer readOnly: true - description: Key of plugin - name: + nullable: true + link: type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer nullable: true - description: Name of the plugin - maxLength: 255 - package_name: + description: Select project code for this order + reference: type: string + responsible: + type: integer nullable: true - description: Name of the installed package, if the plugin was installed - via PIP - maxLength: 255 - active: - type: boolean - description: Is the plugin active - meta: - type: object - additionalProperties: {} - readOnly: true - mixins: - type: object - additionalProperties: {} + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer readOnly: true - is_builtin: - type: boolean - description: Return True if this is a 'builtin' plugin. + title: Order Status + status_text: + type: string + nullable: true readOnly: true - is_sample: - type: boolean - description: Is this plugin a sample app? + status_custom_key: + type: integer readOnly: true - is_installed: - type: boolean + nullable: true + title: Custom status key description: |- - Simple check to determine if this plugin is installed. + Additional status information for this item - A plugin might not be installed if it has been removed from the system, - but the PluginConfig associated with it still exists. + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string readOnly: true - is_package: + overdue: type: boolean - description: Return True if this is a 'package' plugin. readOnly: true - is_mandatory: - type: boolean + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' readOnly: true - required: - - is_builtin - - is_installed - - is_mandatory - - is_package - - is_sample - - key - - meta - - mixins - - pk - PluginConfigInstall: - type: object - description: Serializer for installing a new plugin. - properties: - url: + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: type: string - title: Source URL - description: Source for the package - this can be a custom registry or a - VCS path - packagename: + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: type: string - title: Package Name - description: Name for the Plugin Package - can also contain a version indicator - version: + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: type: string - description: Version specifier for the plugin. Leave blank for latest version. - confirm: - type: boolean - title: Confirm plugin installation - description: This will install this plugin now into the current instance. - The instance will go into maintenance. - required: - - confirm - PluginRegistryError: - type: object - description: Serializer for a plugin registry error. - properties: - stage: + description: Customer order reference code + maxLength: 64 + order_currency: type: string - name: + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + total_price: type: string - message: + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + updated_at: type: string - required: - - message - - name - - stage - PluginRegistryStatus: - type: object - description: Serializer for plugin registry status. - properties: - active_plugins: - type: integer + format: date-time readOnly: true - registry_errors: - type: array - items: - $ref: '#/components/schemas/PluginRegistryError' + nullable: true + description: Timestamp of last update required: - - active_plugins - - registry_errors - PluginReload: - type: object - description: Serializer for remotely forcing plugin registry reload. - properties: - full_reload: - type: boolean - default: false - description: Perform a full reload of the plugin registry - force_reload: - type: boolean - default: false - description: Force a reload of the plugin registry, even if it is already - loaded - collect_plugins: - type: boolean - default: false - description: Collect plugins and add them to the registry - PluginSetting: + - barcode_hash + - created_by + - pk + - reference + - status + ReturnOrderExtraLine: type: object - description: Serializer for the PluginSetting model. + description: Serializer for a ReturnOrderExtraLine object. properties: pk: type: integer readOnly: true title: ID - key: + line: type: string - readOnly: true - value: + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: type: string - nullable: true - name: + description: Line item description (optional) + maxLength: 250 + link: type: string - readOnly: true - description: + format: uri + description: Link to external page + maxLength: 2000 + notes: type: string - readOnly: true - type: + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: type: string - readOnly: true + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' readOnly: true nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: + project_code_label: type: string readOnly: true - plugin: - type: string + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true + nullable: true required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name + - order - pk - - plugin - - required - - typ - - type - - units - - value - PluginUIFeature: - type: object - description: Serializer for a plugin ui feature. - properties: - plugin_name: - type: string - feature_type: - type: string - key: - type: string - title: Feature Label - title: - type: string - title: Feature Title - description: - type: string - title: Feature Description - icon: - type: string - title: Feature Icon - options: - type: object - additionalProperties: {} - title: Feature Options - context: - type: object - additionalProperties: {} - title: Feature Context - source: - type: string - title: Feature Source (javascript) - required: - - feature_type - - key - - plugin_name - PluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PluginUserSetting: + - quantity + ReturnOrderLineItem: type: object - description: Serializer for the PluginUserSetting model. + description: Serializer for a ReturnOrderLineItem object. properties: pk: type: integer readOnly: true title: ID - key: + line: type: string - readOnly: true - value: + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: type: string - nullable: true - name: + format: uri + description: Link to external page + maxLength: 2000 + notes: type: string - readOnly: true - description: + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: type: string - readOnly: true - type: + description: Line item reference + maxLength: 100 + target_date: type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + nullable: true + project_code_label: type: string readOnly: true nullable: true - model_filters: - type: object - additionalProperties: {} + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' readOnly: true - api_url: + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: type: string - readOnly: true + format: date nullable: true - typ: + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: type: string - readOnly: true - units: + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: type: string + title: Currency + description: |- + Line price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' readOnly: true - plugin: + nullable: true + required: + - item + - order + - pk + - quantity + ReturnOrderLineItemReceive: + type: object + description: Serializer for receiving a single line item against a ReturnOrder. + properties: + item: + type: integer + title: Return order line item + status: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + required: + - item + ReturnOrderReceive: + type: object + description: Serializer for receiving items against a ReturnOrder. + properties: + items: + type: array + items: + $ref: '#/components/schemas/ReturnOrderLineItemReceive' + location: + type: integer + description: Select destination location for received items + note: type: string - readOnly: true + default: '' + description: Additional note for incoming stock items + required: + - items + - location + Role: + type: object + description: Serializer for a roles associated with a given user. + properties: user: type: integer + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + roles: + type: object + additionalProperties: {} + description: Roles associated with the user. + readOnly: true + permissions: + type: object + additionalProperties: {} + description: Permissions associated with the user. readOnly: true - description: The user for which this setting applies + nullable: true + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - plugin - - required - - typ - - type - - units + - roles - user - - value - PriorityEnum: - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - type: integer - description: |- - * `0` - None - * `1` - Very High - * `2` - High - * `3` - Normal - * `4` - Low - * `5` - Very Low - ProjectCode: + - username + RuleSet: type: object - description: Serializer for the ProjectCode model. + description: Serializer for a RuleSet. properties: pk: type: integer readOnly: true title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: type: string - description: Project description - maxLength: 200 - responsible: + description: Return the translated label for this ruleset. + readOnly: true + group: type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' readOnly: true - nullable: true + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items required: - - code + - group + - label + - name - pk - PurchaseOrder: + SalesOrder: type: object - description: Serializer for a PurchaseOrder object. + description: Serializer for the SalesOrder model class. properties: pk: type: integer @@ -35689,7 +40192,6 @@ components: issue_date: type: string format: date - readOnly: true nullable: true description: Date order was issued start_date: @@ -35751,7 +40253,24 @@ components: readOnly: true nullable: true title: Custom status key - description: Additional status information for this item + description: |- + Additional status information for this item + + * `10` - Pending + * `15` - In Progress + * `20` - Shipped + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 barcode_hash: type: string readOnly: true @@ -35775,77 +40294,233 @@ components: - $ref: '#/components/schemas/Contact' readOnly: true nullable: true - project_code_detail: + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + SalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: allOf: - - $ref: '#/components/schemas/ProjectCode' + - $ref: '#/components/schemas/SalesOrder' readOnly: true nullable: true - project_code_label: - type: string + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - responsible_detail: + location_detail: allOf: - - $ref: '#/components/schemas/Owner' + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true - complete_date: - type: string - format: date + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' readOnly: true nullable: true - title: Completion Date - description: Date order was completed - supplier: + required: + - item + - line + - location + - order + - part + - pk + - quantity + SalesOrderAutoAllocation: + type: object + description: DRF serializer for auto-allocating stock items against a SalesOrder. + properties: + location: type: integer nullable: true - description: Company from which the items are being ordered - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string - readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: Currency for this order (leave blank to use company default) - destination: + title: Source Location + description: Stock location where items are sourced (leave blank to use + any location) + exclude_location: type: integer nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time - readOnly: true + description: Exclude stock items from this location + shipment: + type: integer nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - - supplier - - supplier_name - PurchaseOrderComplete: + description: Assign allocations to this shipment + interchangeable: + type: boolean + default: true + title: Interchangeable Stock + description: Allow stock to be taken from multiple locations to fulfil a + single line item + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + serialized_stock: + allOf: + - $ref: '#/components/schemas/SerializedStockEnum' + default: any + description: |- + Control whether serialized stock items are included in auto-allocation + + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + line_items: + type: array + items: + type: integer + title: Line Items + description: Limit allocation to these line items (leave blank to allocate + all lines) + SalesOrderComplete: type: object - description: Serializer for completing a purchase order. + description: DRF serializer for manually marking a sales order as complete. properties: accept_incomplete: type: boolean default: false description: Allow order to be closed with incomplete line items - PurchaseOrderExtraLine: + SalesOrderExtraLine: type: object - description: Serializer for a PurchaseOrderExtraLine object. + description: Serializer for a SalesOrderExtraLine object. properties: pk: type: integer @@ -35871,7 +40546,7 @@ components: maxLength: 500 order: type: integer - description: Purchase Order + description: Sales Order price: type: string format: decimal @@ -35880,62 +40555,19 @@ components: price_currency: type: string title: Currency - description: Select currency from available options - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - PurchaseOrderLineItem: - type: object - description: Serializer class for the PurchaseOrderLineItem model. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. project_code: type: integer nullable: true @@ -35943,1623 +40575,1136 @@ components: quantity: type: number format: double - minimum: 0 - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer - nullable: true - description: External Build Order to be fulfilled by this line item - overdue: - type: boolean - readOnly: true - nullable: true - received: - type: number - format: double - readOnly: true - default: 0.0 - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - purchase_price_currency: - type: string - title: Currency - description: Purchase price currency - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: - type: number - format: double - readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string - readOnly: true - nullable: true - mpn: + reference: type: string - readOnly: true - nullable: true - ipn: + description: Line item reference + maxLength: 100 + target_date: type: string - readOnly: true + format: date nullable: true - title: Internal Part Number - internal_part: - type: integer + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' readOnly: true - internal_part_name: + nullable: true + project_code_label: type: string readOnly: true - build_order_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true nullable: true - destination_detail: + project_code_detail: allOf: - - $ref: '#/components/schemas/LocationBrief' + - $ref: '#/components/schemas/ProjectCode' readOnly: true nullable: true required: - - internal_part - - internal_part_name - order - - part - pk - quantity - - received - - total_price - PurchaseOrderLineItemReceive: + SalesOrderLineItem: type: object - description: A serializer for receiving a single purchase order line item against - a purchase order. + description: Serializer for a SalesOrderLineItem object. properties: - line_item: + pk: type: integer - location: + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + project_code: type: integer nullable: true - description: Select destination location for received items + description: Select project code for this order quantity: + type: number + format: double + reference: type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch_code: - type: string - default: '' - description: Enter batch code for incoming stock items - expiry_date: + description: Line item reference + maxLength: 100 + target_date: type: string format: date nullable: true - description: Enter expiry date for incoming stock items - serial_numbers: - type: string - default: '' - description: Enter serial numbers for incoming stock items - status: - type: integer - description: Stock item status code - default: 10 - packaging: - type: string - default: '' - description: Override packaging information for incoming stock items - note: - type: string - default: '' - description: Additional note for incoming stock items - barcode: + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + project_code_label: type: string + readOnly: true nullable: true - default: '' - description: Scanned barcode - required: - - line_item - - quantity - PurchaseOrderReceive: - type: object - description: Serializer for receiving items against a PurchaseOrder. - properties: - items: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderLineItemReceive' - location: - type: integer + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true nullable: true - description: Select destination location for received items - required: - - items - ReferenceStatusEnum: - enum: - - BuildStatus - - DataImportStatusCode - - MachineStatus - - PurchaseOrderStatus - - RepairOrderStatus - - ReturnOrderLineStatus - - ReturnOrderStatus - - SalesOrderStatus - - StockHistoryCode - - StockStatus - - TransferOrderStatus - type: string - description: |- - * `BuildStatus` - BuildStatus - * `DataImportStatusCode` - DataImportStatusCode - * `MachineStatus` - MachineStatus - * `PurchaseOrderStatus` - PurchaseOrderStatus - * `RepairOrderStatus` - RepairOrderStatus - * `ReturnOrderLineStatus` - ReturnOrderLineStatus - * `ReturnOrderStatus` - ReturnOrderStatus - * `SalesOrderStatus` - SalesOrderStatus - * `StockHistoryCode` - StockHistoryCode - * `StockStatus` - StockStatus - * `TransferOrderStatus` - TransferOrderStatus - RepairOrder: - type: object - description: Serializer for a RepairOrder object. - properties: - pk: - type: integer + allocated: + type: number + format: double readOnly: true - title: ID - reference: - type: string - description: Repair Order Reference - maxLength: 100 - customer: + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + nullable: true + part: type: integer nullable: true - description: Customer reference - description: + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + sale_price: type: string - description: Repair order description - maxLength: 250 - symptoms: + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + sale_price_currency: type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' + title: Currency description: |- - Repair order status + Sale price currency - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: -9223372036854775808 - maximum: 9223372036854775807 - required: - - description - - pk - - reference - RepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipped: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity required: - - item - - line + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order - pk - RepairOrderLineItem: + - quantity + - shipped + SalesOrderSerialAllocation: type: object - description: Serializer for a RepairOrderLineItem object. + description: DRF serializer for allocation of serial numbers against a sales + order / shipment. properties: - pk: + line_item: type: integer - readOnly: true - title: ID - order: + quantity: type: integer - title: Repair Order - part: + minimum: 1 + serial_numbers: + type: string + description: Enter serial numbers to allocate + shipment: type: integer nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair required: - - order - - pk - RepairOrderStatusEnum: - enum: - - 10 - - 20 - - 25 - - 30 - - 40 - type: integer - description: |- - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - ReportAsset: + - line_item + - quantity + - serial_numbers + SalesOrderShipment: type: object - description: Serializer class for the ReportAsset model. + description: Serializer for the SalesOrderShipment class. properties: pk: type: integer readOnly: true title: ID - asset: - type: string - format: uri - description: - type: string - description: Asset file description - maxLength: 250 - required: - - asset - - description - - pk - ReportPrint: - type: object - description: Serializer class for printing a report. - properties: - template: + order: type: integer - description: Select report template - items: - type: array - items: - type: integer - description: List of item primary keys to include in the report - required: - - items - - template - ReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: + description: Sales Order + allocated_items: type: integer readOnly: true - title: ID - snippet: + nullable: true + shipment_date: type: string - format: uri - description: + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: type: string - description: Snippet file description - maxLength: 250 - required: - - description - - pk - - snippet - ReportTemplate: - type: object - description: Serializer class for report template model. - properties: - pk: + format: date + nullable: true + description: Date of delivery of shipment + checked_by: type: integer - readOnly: true - title: ID - name: + nullable: true + description: User who checked this shipment + reference: type: string - description: Template name + default: '1' + title: Shipment + description: Shipment number maxLength: 100 - description: + tracking_number: type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: + description: Shipment tracking information + maxLength: 100 + invoice_number: type: string - format: uri - filters: + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: + description: Unique hash of barcode data + maxLength: 128 + link: type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: + format: uri + description: Link to external page + maxLength: 2000 + notes: type: string - format: date-time nullable: true - description: Timestamp of last update - updated_by: - type: integer + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: + checked_by_detail: allOf: - $ref: '#/components/schemas/User' readOnly: true nullable: true - page_size: + customer_detail: allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + shipment_address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true required: - - description - - model_type - - name + - order - pk - - revision - - template - ReturnOrder: + SalesOrderShipmentAllocation: type: object - description: Serializer for the ReturnOrder model class. + description: DRF serializer for allocation of stock items against a sales order + / shipment. properties: - pk: + items: + type: array + items: + $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' + shipment: type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date nullable: true - issue_date: + required: + - items + SalesOrderShipmentAllocationItem: + type: object + description: A serializer for allocating a single stock-item against a SalesOrder + shipment. + properties: + line_item: + type: integer + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - line_item + - quantity + - stock_item + SalesOrderShipmentComplete: + type: object + description: Serializer for completing (shipping) a SalesOrderShipment. + properties: + shipment_date: type: string format: date nullable: true - description: Date order was issued - start_date: + description: Date of shipment + delivery_date: type: string format: date nullable: true - description: Scheduled start date for this order - target_date: + description: Date of delivery of shipment + tracking_number: type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: + description: Shipment tracking information + maxLength: 100 + invoice_number: type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true + description: Reference number for associated invoice + maxLength: 100 link: type: string format: uri description: Link to external page maxLength: 2000 - project_code: + ScheduleTypeEnum: + enum: + - O + - I + - H + - D + - W + - BW + - M + - BM + - Q + - Y + - C + type: string + description: |- + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + ScheduledTask: + type: object + description: Serializer for an individual scheduled task object. + properties: + pk: type: integer - nullable: true - description: Select project code for this order - reference: + readOnly: true + title: ID + name: type: string - responsible: - type: integer nullable: true - description: User or group responsible for this order - contact: - type: integer + description: Optional label to identify this schedule in the admin. + maxLength: 100 + func: + type: string + title: Function + description: e.g. module.tasks.function + maxLength: 256 + args: + type: string nullable: true - description: Point of contact for this order - address: - type: integer + title: Arguments + description: e.g. 1, 2, 'John' + kwargs: + type: string nullable: true - description: Company address for this order - status: + title: Keyword arguments + description: e.g. x=1, y=2, name='John' + schedule_type: + allOf: + - $ref: '#/components/schemas/ScheduleTypeEnum' + description: |- + How often this task should be enqueued. + + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + repeats: type: integer - readOnly: true - title: Order Status - status_text: + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: n = n times, -1 = forever + last_run: + type: string + format: date-time + next_run: type: string + format: date-time nullable: true - readOnly: true - status_custom_key: - type: integer + description: When this schedule runs next (stored in UTC). + success: + type: boolean + task: + type: string readOnly: true nullable: true - title: Custom status key - description: Additional status information for this item - barcode_hash: + title: Last task id + description: Id of the last task spawned from this schedule (read-only). + required: + - func + - last_run + - pk + - success + SearchResult: + type: object + description: Serializer for a search result. + properties: + id: type: string - readOnly: true - overdue: + sku: + type: string + name: + type: string + exact: type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: + description: type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - complete_date: + price: type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - customer: - type: integer - nullable: true - description: Company from which items are being returned - customer_reference: + link: type: string - description: Customer order reference code - maxLength: 64 - order_currency: + image_url: type: string + existing_part_id: + type: integer nullable: true - description: Currency for this order (leave blank to use company default) - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Return the ID of the existing part if available. readOnly: true - nullable: true - updated_at: - type: string - format: date-time + required: + - description + - exact + - id + - image_url + - link + - name + - price + - sku + SelectionEntry: + type: object + description: Serializer for a selection entry. + properties: + id: + type: integer readOnly: true + value: + type: string + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 + description: + type: string + description: Description of the selection list entry + maxLength: 250 + active: + type: boolean + description: Is this selection list entry active? + list: + type: integer nullable: true - description: Timestamp of last update + title: Selection List + description: Selection list to which this entry belongs required: - - barcode_hash - - created_by - - pk - - reference - - status - ReturnOrderExtraLine: + - id + - label + - value + SelectionList: type: object - description: Serializer for a ReturnOrderExtraLine object. + description: Serializer for a selection list. properties: pk: type: integer readOnly: true title: ID - line: + name: type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 + description: Name of the selection list + maxLength: 100 description: type: string - description: Line item description (optional) + description: Description of the selection list maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: type: integer - description: Return Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - price_currency: + description: Plugin which provides the selection list + source_string: type: string - title: Currency - description: Select currency from available options - project_code: - type: integer + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' + readOnly: true nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + created: type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - project_code_label: + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: type: string + format: date-time readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer readOnly: true - nullable: true required: - - order + - created + - entry_count + - last_updated + - name - pk - - quantity - ReturnOrderLineItem: + SerializeStockItem: type: object - description: Serializer for a ReturnOrderLineItem object. + description: |- + A DRF serializer for "serializing" a StockItem. + + (Sorry for the confusing naming...) + + Here, "serializing" means splitting out a single StockItem, + into multiple single-quantity items with an assigned serial number + + Note: The base StockItem object is provided to the serializer context properties: - pk: + quantity: type: integer - readOnly: true - title: ID - line: + minimum: 0 + description: Enter number of stock items to serialize + serial_numbers: type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: + description: Enter serial numbers for new items + destination: + type: integer + title: Location + description: Destination stock location + notes: type: string - format: uri - description: Link to external page - maxLength: 2000 + description: Optional note field + required: + - destination + - quantity + - serial_numbers + SerializedStockEnum: + enum: + - any + - serialized + - unserialized + type: string + description: |- + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + Settings: + type: object + description: Serializer for InfoApiSerializer. + properties: + sso_registration: + type: boolean + registration_enabled: + type: boolean + password_forgotten_enabled: + type: boolean + required: + - password_forgotten_enabled + - registration_enabled + - sso_registration + StockAdd: + type: object + description: Serializer for adding stock to stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' notes: type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: + description: Stock transaction notes + required: + - items + StockAdjustmentItem: + type: object + description: |- + Serializer for a single StockItem within a stock adjustment request. + + Required Fields: + - item: StockItem object + - quantity: Numerical quantity + + Optional Fields (may be used by external tools) + - status: Change StockItem status code + - packaging: Change StockItem packaging + - batch: Change StockItem batch code + + The optional fields can be used to adjust values for individual stock items + properties: + pk: type: integer - nullable: true - description: Select project code for this order + title: stock_item + description: StockItem primary key value quantity: - type: number - format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: type: string - format: date - nullable: true - project_code_label: + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch: type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - item: + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + status: type: integer - description: Select item to return from customer - received_date: - type: string - format: date - nullable: true - description: The date this return item was received - outcome: - allOf: - - $ref: '#/components/schemas/OutcomeEnum' description: |- - Outcome for this line item + Stock item status code - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: + * `None` - No Change + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + packaging: type: string - title: Currency - description: Line price currency - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true + description: Packaging this stock item is stored in + maxLength: 50 required: - - item - - order - pk - quantity - ReturnOrderLineItemReceive: - type: object - description: Serializer for receiving a single line item against a ReturnOrder. - properties: - item: - type: integer - title: Return order line item - status: - type: integer - description: Stock item status code - required: - - item - ReturnOrderReceive: + StockAssignment: type: object - description: Serializer for receiving items against a ReturnOrder. + description: |- + Serializer for assigning one (or more) stock items to a customer. + + This is a manual assignment process, separate for (for example) a Sales Order properties: items: type: array items: - $ref: '#/components/schemas/ReturnOrderLineItemReceive' - location: + $ref: '#/components/schemas/StockAssignmentItem' + customer: type: integer - description: Select destination location for received items - note: + description: Customer to assign stock items + notes: type: string - default: '' - description: Additional note for incoming stock items + description: Stock assignment notes required: + - customer - items - - location - Role: + StockAssignmentItem: type: object - description: Serializer for a roles associated with a given user. + description: |- + Serializer for a single StockItem with in StockAssignment request. + + Here, the particular StockItem is being assigned (manually) to a customer + + Fields: + - item: StockItem object properties: - user: + item: type: integer - username: - type: string - description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ - only. - pattern: ^[\w.@+-]+$ - maxLength: 150 - roles: - type: object - additionalProperties: {} - description: Roles associated with the user. - readOnly: true - permissions: - type: object - additionalProperties: {} - description: Permissions associated with the user. - readOnly: true - nullable: true - is_staff: - type: boolean - title: Staff status - description: Designates whether the user can log into this admin site. - is_superuser: - type: boolean - title: Superuser status - description: Designates that this user has all permissions without explicitly - assigning them. + title: Stock Item required: - - roles - - user - - username - RuleSet: + - item + StockChangeStatus: type: object - description: Serializer for a RuleSet. + description: Serializer for changing status of multiple StockItem objects. properties: - pk: + items: + type: array + items: + type: integer + title: Stock Items + title: Stock Items + description: Select stock items to change status + status: type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true description: |- - Permission set + Stock item status code - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - required: - - group - - label - - name - - pk - SalesOrder: - type: object - description: Serializer for the SalesOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: Additional status information for this item - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + note: type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: + title: Notes + description: Add transaction note (optional) + required: + - items + StockCount: + type: object + description: Serializer for counting stock items. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: type: string - nullable: true - description: Currency for this order (leave blank to use company default) - shipments_count: - type: integer - readOnly: true - nullable: true - title: Shipments - completed_shipments_count: - type: integer - readOnly: true - nullable: true - title: Completed Shipments - allocated_lines: + description: Stock transaction notes + location: type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true nullable: true - description: Timestamp of last update + description: Set stock location for counted items (optional) required: - - barcode_hash - - created_by - - pk - - reference - - status - SalesOrderAllocation: + - items + StockItem: type: object description: |- - Serializer for the SalesOrderAllocation model. + Serializer for a StockItem. - This includes some fields from the related model objects. + - Includes serialization for the linked part + - Includes serialization for the item location properties: pk: type: integer readOnly: true title: ID - item: + part: type: integer - description: Select stock item to allocate + description: Base Part quantity: type: number format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true serial: type: string - readOnly: true nullable: true - location: - type: integer - readOnly: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true + title: Serial Number + description: Serial number for this item + maxLength: 100 + batch: + type: string nullable: true - required: - - item - - line - - location - - order - - part - - pk - - quantity - SalesOrderAutoAllocation: - type: object - description: DRF serializer for auto-allocating stock items against a SalesOrder. - properties: + title: Batch Code + description: Batch code for this stock item + maxLength: 100 location: type: integer nullable: true - title: Source Location - description: Stock location where items are sourced (leave blank to use - any location) - exclude_location: + title: Stock Location + description: Where is this stock item located? + belongs_to: type: integer nullable: true - description: Exclude stock items from this location - shipment: + title: Installed In + description: Is this item installed in another item? + build: type: integer nullable: true - description: Assign allocations to this shipment - interchangeable: - type: boolean - default: true - title: Interchangeable Stock - description: Allow stock to be taken from multiple locations to fulfil a - single line item - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - serialized_stock: - allOf: - - $ref: '#/components/schemas/SerializedStockEnum' - default: any - description: |- - Control whether serialized stock items are included in auto-allocation - - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - line_items: - type: array - items: - type: integer - title: Line Items - description: Limit allocation to these line items (leave blank to allocate - all lines) - SalesOrderComplete: - type: object - description: DRF serializer for manually marking a sales order as complete. - properties: - accept_incomplete: - type: boolean - default: false - description: Allow order to be closed with incomplete line items - SalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: + title: Source Build + description: Build for this stock item + consumed_by: type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - price_currency: - type: string - title: Currency - description: Select currency from available options - project_code: + description: Build order which consumed this stock item + customer: type: integer nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: type: string format: date nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - SalesOrderLineItem: - type: object - description: Serializer for a SalesOrderLineItem object. - properties: - pk: - type: integer + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 + is_building: + type: boolean link: type: string format: uri - description: Link to external page + title: External Link + description: Link to external URL maxLength: 2000 notes: type: string - description: Line item notes - maxLength: 500 - order: + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: type: integer - description: Sales Order - project_code: + readOnly: true + nullable: true + title: Parent Item + description: Parent stock item + purchase_order: type: integer nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: type: string - format: date + readOnly: true nullable: true - project_code_label: + sales_order: + type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: type: string readOnly: true nullable: true - project_code_detail: + status: allOf: - - $ref: '#/components/schemas/ProjectCode' + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true readOnly: true + status_custom_key: + type: integer nullable: true - allocated: - type: number - format: double + title: Custom status key + description: |- + Additional status information for this item + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: + type: string readOnly: true - overdue: - type: boolean + nullable: true + title: Supplier Part Number + MPN: + type: string readOnly: true nullable: true - part: - type: integer + title: Manufacturer Part Number + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true nullable: true - description: Part - sale_price: + description: Date that this stock item was created + stocktake_date: + type: string + format: date + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + purchase_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - sale_price_currency: + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: type: string title: Currency - description: Sale price currency - shipped: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + use_pack_size: + type: boolean + writeOnly: true + nullable: true + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: + type: string + writeOnly: true + nullable: true + description: Enter serial numbers for new items + allocated: type: number format: double readOnly: true - title: In Production - on_order: - type: number - format: double + nullable: true + title: Allocated Quantity + expired: + type: boolean readOnly: true - required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - shipped - SalesOrderSerialAllocation: - type: object - description: DRF serializer for allocation of serial numbers against a sales - order / shipment. - properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate - shipment: - type: integer nullable: true - required: - - line_item - - quantity - - serial_numbers - SalesOrderShipment: - type: object - description: Serializer for the SalesOrderShipment class. - properties: - pk: + installed_items: type: integer readOnly: true - title: ID - order: - type: integer - description: Sales Order - allocated_items: + nullable: true + child_items: type: integer readOnly: true nullable: true - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer + stale: + type: boolean + readOnly: true nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: - type: string - format: date + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true nullable: true - description: Date of delivery of shipment - checked_by: - type: integer + title: Location + location_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - description: Markdown notes (optional) - maxLength: 50000 - checked_by_detail: + title: Part + supplier_part_detail: allOf: - - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + tags: + type: array + items: + type: string + tests: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' readOnly: true nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' + tracking_items: + type: integer readOnly: true nullable: true required: - - order + - barcode_hash + - in_stock + - part - pk - SalesOrderShipmentAllocation: - type: object - description: DRF serializer for allocation of stock items against a sales order - / shipment. - properties: - items: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' - shipment: - type: integer - nullable: true - required: - - items - SalesOrderShipmentAllocationItem: - type: object - description: A serializer for allocating a single stock-item against a SalesOrder - shipment. - properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - line_item - quantity - - stock_item - SalesOrderShipmentComplete: + StockItemSerialNumbers: type: object - description: Serializer for completing (shipping) a SalesOrderShipment. + description: Serializer for extra serial number information about a stock item. properties: - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - ScheduleTypeEnum: + next: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Next Serial Number + previous: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Previous Serial Number + required: + - next + - previous + StockItemStatusEnum: enum: - - O - - I - - H - - D - - W - - BW - - M - - BM - - Q - - Y - - C - type: string + - 10 + - 50 + - 55 + - 60 + - 65 + - 70 + - 75 + - 85 + type: integer description: |- - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - ScheduledTask: + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + StockItemTestResult: type: object - description: Serializer for an individual scheduled task object. + description: Serializer for the StockItemTestResult model. properties: pk: type: integer readOnly: true title: ID - name: - type: string - nullable: true - description: Optional label to identify this schedule in the admin. - maxLength: 100 - func: + stock_item: + type: integer + result: + type: boolean + description: Test result + value: type: string - title: Function - description: e.g. module.tasks.function - maxLength: 256 - args: + description: Test output value + maxLength: 500 + attachment: type: string + format: uri nullable: true - title: Arguments - description: e.g. 1, 2, 'John' - kwargs: + description: Test result attachment + notes: type: string - nullable: true - title: Keyword arguments - description: e.g. x=1, y=2, name='John' - schedule_type: - allOf: - - $ref: '#/components/schemas/ScheduleTypeEnum' - description: |- - How often this task should be enqueued. - - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - repeats: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: n = n times, -1 = forever - last_run: + description: Test notes + maxLength: 500 + test_station: type: string - format: date-time - next_run: + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: type: string format: date-time nullable: true - description: When this schedule runs next (stored in UTC). - success: - type: boolean - task: - type: string - readOnly: true - nullable: true - title: Last task id - description: Id of the last task spawned from this schedule (read-only). - required: - - func - - last_run - - pk - - success - SearchResult: - type: object - description: Serializer for a search result. - properties: - id: - type: string - sku: - type: string - name: - type: string - exact: - type: boolean - description: - type: string - price: - type: string - link: - type: string - image_url: + title: Started + description: The timestamp of the test start + finished_datetime: type: string - existing_part_id: - type: integer + format: date-time nullable: true - description: Return the ID of the existing part if available. - readOnly: true - required: - - description - - exact - - id - - image_url - - link - - name - - price - - sku - SelectionEntry: - type: object - description: Serializer for a selection entry. - properties: - id: + title: Finished + description: The timestamp of the test finish + user: type: integer readOnly: true - value: - type: string - description: Value of the selection list entry - maxLength: 255 - label: - type: string - description: Label for the selection list entry - maxLength: 255 - description: + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + date: type: string - description: Description of the selection list entry - maxLength: 250 - active: - type: boolean - description: Is this selection list entry active? - list: + format: date-time + readOnly: true + template: type: integer nullable: true - title: Selection List - description: Selection list to which this entry belongs + title: Test template for this result + description: Template + template_detail: + allOf: + - $ref: '#/components/schemas/PartTestTemplate' + readOnly: true + nullable: true required: - - id - - label - - value - SelectionList: + - date + - pk + - stock_item + StockLocationType: type: object - description: Serializer for a selection list. + description: Serializer for StockLocationType model. properties: pk: type: integer @@ -37567,111 +41712,61 @@ components: title: ID name: type: string - description: Name of the selection list + description: Name maxLength: 100 description: type: string - description: Description of the selection list + description: Description (optional) maxLength: 250 - active: - type: boolean - description: Can this selection list be used? - locked: - type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' - readOnly: true - nullable: true - created: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was created - last_updated: + icon: type: string - format: date-time - readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: type: integer readOnly: true + nullable: true required: - - created - - entry_count - - last_updated - name - pk - SerializeStockItem: + StockMerge: type: object - description: |- - A DRF serializer for "serializing" a StockItem. - - (Sorry for the confusing naming...) - - Here, "serializing" means splitting out a single StockItem, - into multiple single-quantity items with an assigned serial number - - Note: The base StockItem object is provided to the serializer context + description: Serializer for merging two (or more) stock items together. properties: - quantity: - type: integer - minimum: 0 - description: Enter number of stock items to serialize - serial_numbers: - type: string - description: Enter serial numbers for new items - destination: + items: + type: array + items: + $ref: '#/components/schemas/StockMergeItem' + location: type: integer - title: Location description: Destination stock location notes: type: string - description: Optional note field + description: Stock merging notes + allow_mismatched_suppliers: + type: boolean + description: Allow stock items with different supplier parts to be merged + allow_mismatched_status: + type: boolean + description: Allow stock items with different status codes to be merged required: - - destination - - quantity - - serial_numbers - SerializedStockEnum: - enum: - - any - - serialized - - unserialized - type: string - description: |- - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - Settings: + - items + - location + StockMergeItem: type: object - description: Serializer for InfoApiSerializer. + description: |- + Serializer for a single StockItem within the StockMergeSerializer class. + + Here, the individual StockItem is being checked for merge compatibility. properties: - sso_registration: - type: boolean - registration_enabled: - type: boolean - password_forgotten_enabled: - type: boolean + item: + type: integer + title: Stock Item required: - - password_forgotten_enabled - - registration_enabled - - sso_registration - StockAdd: + - item + StockRemove: type: object - description: Serializer for adding stock to stock item(s). + description: Serializer for removing stock from stock item(s). properties: items: type: array @@ -37682,104 +41777,102 @@ components: description: Stock transaction notes required: - items - StockAdjustmentItem: - type: object - description: |- - Serializer for a single StockItem within a stock adjustment request. - - Required Fields: - - item: StockItem object - - quantity: Numerical quantity - - Optional Fields (may be used by external tools) - - status: Change StockItem status code - - packaging: Change StockItem packaging - - batch: Change StockItem batch code - - The optional fields can be used to adjust values for individual stock items - properties: - pk: - type: integer - title: stock_item - description: StockItem primary key value - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch: - type: string - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - status: - type: integer - description: Stock item status code - packaging: - type: string - description: Packaging this stock item is stored in - maxLength: 50 - required: - - pk - - quantity - StockAssignment: + StockReturn: type: object - description: |- - Serializer for assigning one (or more) stock items to a customer. - - This is a manual assignment process, separate for (for example) a Sales Order + description: Serializer class for returning stock item(s) into stock. properties: items: type: array items: - $ref: '#/components/schemas/StockAssignmentItem' - customer: - type: integer - description: Customer to assign stock items + $ref: '#/components/schemas/StockAdjustmentItem' notes: type: string - description: Stock assignment notes + description: Stock transaction notes + location: + type: integer + description: Destination stock location + merge: + type: boolean + default: false + title: Merge into existing stock + description: Merge returned items into existing stock items if possible required: - - customer - items - StockAssignmentItem: - type: object + - location + StockSortByEnum: + enum: + - updated + - -updated + - quantity + - -quantity + - expiry_date + type: string description: |- - Serializer for a single StockItem with in StockAssignment request. - - Here, the particular StockItem is being assigned (manually) to a customer - - Fields: - - item: StockItem object - properties: - item: - type: integer - title: Stock Item - required: - - item - StockChangeStatus: + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + StockTracking: type: object - description: Serializer for changing status of multiple StockItem objects. + description: Serializer for StockItemTracking model. properties: - items: - type: array - items: - type: integer - title: Stock Items - title: Stock Items - description: Select stock items to change status - status: + pk: + type: integer + readOnly: true + title: ID + item: type: integer - description: Stock item status code - default: 10 - note: + nullable: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part: + type: integer + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + date: type: string - title: Notes - description: Add transaction note (optional) + format: date-time + readOnly: true + deltas: + readOnly: true + label: + type: string + readOnly: true + notes: + type: string + nullable: true + description: Entry notes + maxLength: 512 + tracking_type: + type: integer + readOnly: true + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true required: - - items - StockCount: + - date + - deltas + - label + - pk + - tracking_type + StockTransfer: type: object - description: Serializer for counting stock items. + description: Serializer for transferring (moving) stock item(s). properties: items: type: array @@ -37790,438 +41883,556 @@ components: description: Stock transaction notes location: type: integer - nullable: true - description: Set stock location for counted items (optional) + description: Destination stock location required: - items - StockItem: + - location + SupplierList: type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location + description: Serializer for a supplier plugin. properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: + plugin_slug: + type: string + supplier_slug: + type: string + supplier_name: + type: string + required: + - plugin_slug + - supplier_name + - supplier_slug + SupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + available: type: number format: double - serial: + availability_updated: type: string + format: date-time + readOnly: true nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: + description: Date of last update of availability data + description: type: string nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer + description: Supplier part description + maxLength: 250 + in_stock: + type: number + format: double + readOnly: true nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer + on_order: + type: number + format: double + readOnly: true nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer + link: + type: string + format: uri nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true nullable: true - description: Build order which consumed this stock item - customer: + title: Manufacturer + manufacturer_part: type: integer nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: - type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean + description: Select manufacturer part + manufacturer_part_detail: + allOf: + - $ref: '#/components/schemas/ManufacturerPart' readOnly: true - is_building: - type: boolean - link: + nullable: true + title: Manufacturer Part + MPN: type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: + readOnly: true + nullable: true + note: type: string nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: + description: Notes + maxLength: 100 + pk: type: integer - nullable: true - description: Select Owner + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data packaging: type: string nullable: true - description: Packaging this stock item is stored in + description: Part packaging maxLength: 50 - parent: - type: integer + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: + type: number + format: double readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: + part: type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: + title: Base Part + description: Select part + pretty_name: type: string readOnly: true nullable: true - sales_order: + SKU: + type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: type: integer + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true nullable: true - title: Destination Sales Order - sales_order_reference: + title: Supplier + updated: type: string + format: date-time readOnly: true nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: + notes: type: string nullable: true + description: Markdown notes (optional) + maxLength: 50000 + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tags: + type: array + items: + type: string + price_breaks: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' readOnly: true - status_custom_key: - type: integer nullable: true - title: Custom status key - description: Additional status information for this item - supplier_part: + required: + - SKU + - barcode_hash + - pack_quantity_native + - part + - pk + - supplier + SupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. + + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: - type: string readOnly: true - nullable: true - title: Supplier Part Number - MPN: + title: ID + part: + type: integer + quantity: + type: number + format: double + price: type: string - readOnly: true + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - title: Manufacturer Part Number - barcode_hash: + price_currency: type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer readOnly: true - description: Unique hash of barcode data - creation_date: + updated: type: string format: date-time readOnly: true nullable: true - description: Date that this stock item was created - stocktake_date: - type: string - format: date + description: Timestamp of last update + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' readOnly: true nullable: true - updated: - type: string - format: date-time + part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' readOnly: true nullable: true - description: Timestamp of last update - purchase_price: + required: + - part + - pk + - price + - quantity + - supplier + SupplierPriceBreakBrief: + type: object + description: |- + Brief serializer for SupplierPriceBreak object. + + Used to provide a list of price breaks against the SupplierPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: + price_currency: type: string title: Currency - description: Purchase currency of this stock item - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer + readOnly: true + updated: type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double + format: date-time readOnly: true nullable: true - title: Allocated Quantity - expired: - type: boolean + description: Timestamp of last update + required: + - part + - pk + - price + - quantity + - supplier + TaskDetail: + type: object + description: Serializer for a background task detail. + properties: + task_id: + type: string readOnly: true - nullable: true - installed_items: - type: integer + exists: + type: boolean readOnly: true - nullable: true - child_items: - type: integer + pending: + type: boolean readOnly: true - nullable: true - stale: + complete: type: boolean readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' + success: + type: boolean readOnly: true - nullable: true - title: Part - tracking_items: + http_status: type: integer readOnly: true - nullable: true required: - - barcode_hash - - in_stock - - part - - pk - - quantity - StockItemSerialNumbers: + - complete + - exists + - http_status + - pending + - success + - task_id + TaskOverview: type: object - description: Serializer for extra serial number information about a stock item. + description: Serializer for background task overview. properties: - next: - allOf: - - $ref: '#/components/schemas/StockItem' + is_running: + type: boolean readOnly: true - title: Next Serial Number - previous: - allOf: - - $ref: '#/components/schemas/StockItem' + description: Boolean value to indicate if the background worker process + is running. + pending_tasks: + type: integer readOnly: true - title: Previous Serial Number + description: Number of active background tasks + scheduled_tasks: + type: integer + readOnly: true + description: Number of scheduled background tasks + failed_tasks: + type: integer + readOnly: true + description: Number of failed background tasks required: - - next - - previous - StockItemStatusEnum: + - failed_tasks + - is_running + - pending_tasks + - scheduled_tasks + TemplateModelTypeEnum: enum: - - 10 - - 50 - - 55 - - 60 - - 65 - - 70 - - 75 - - 85 - type: integer + - build + - buildline + - company + - purchaseorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + - stocklocation + type: string description: |- - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - StockItemTestResult: + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + TestEmail: type: object - description: Serializer for the StockItemTestResult model. + description: Serializer to send a test email. + properties: + email: + type: string + format: email + required: + - email + TransferOrder: + type: object + description: Serializer for a TransferOrder object. properties: pk: type: integer readOnly: true title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: - type: string - description: Test output value - maxLength: 500 - attachment: + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: type: string - format: uri + format: date nullable: true - description: Test result attachment - notes: + issue_date: type: string - description: Test notes - maxLength: 500 - test_station: + format: date + nullable: true + description: Date order was issued + start_date: type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: + format: date + nullable: true + description: Scheduled start date for this order + target_date: type: string - format: date-time + format: date nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: + description: Expected date for order delivery. Order will be overdue after + this date. + description: type: string - format: date-time + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true nullable: true - title: Finished - description: The timestamp of the test finish - user: + completed_lines: type: integer readOnly: true nullable: true - date: + link: type: string - format: date-time - readOnly: true - template: + format: uri + description: Link to external page + maxLength: 2000 + project_code: type: integer nullable: true - title: Test template for this result - description: Template - required: - - date - - pk - - stock_item - StockLocationType: - type: object - description: Serializer for StockLocationType model. - properties: - pk: + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: type: integer readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - icon: + title: Order Status + status_text: type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: + nullable: true + readOnly: true + status_custom_key: type: integer readOnly: true nullable: true - required: - - name - - pk - StockMerge: - type: object - description: Serializer for merging two (or more) stock items together. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockMergeItem' - location: - type: integer - description: Destination stock location + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Issued + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. notes: type: string - description: Stock merging notes - allow_mismatched_suppliers: - type: boolean - description: Allow stock items with different supplier parts to be merged - allow_mismatched_status: + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: type: boolean - description: Allow stock items with different status codes to be merged - required: - - items - - location - StockMergeItem: - type: object - description: |- - Serializer for a single StockItem within the StockMergeSerializer class. - - Here, the individual StockItem is being checked for merge compatibility. - properties: - item: - type: integer - title: Stock Item - required: - - item - StockRemove: - type: object - description: Serializer for removing stock from stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: type: string - description: Stock transaction notes - required: - - items - StockReturn: - type: object - description: Serializer class for returning stock item(s) into stock. - properties: - items: + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: type: array items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + take_from: type: integer - description: Destination stock location - merge: + nullable: true + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Destination for transferred items + destination_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + consume: type: boolean - default: false - title: Merge into existing stock - description: Merge returned items into existing stock items if possible + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed required: - - items - - location - StockSortByEnum: - enum: - - updated - - -updated - - quantity - - -quantity - - expiry_date - type: string - description: |- - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - StockTracking: + - barcode_hash + - created_by + - pk + - reference + - status + TransferOrderAllocation: type: object - description: Serializer for StockItemTracking model. + description: |- + Serializer for the TransferOrderAllocation model. + + This includes some fields from the related model objects. properties: pk: type: integer @@ -38229,1022 +42440,1593 @@ components: title: ID item: type: integer - nullable: true - part: + description: Select stock item to allocate + quantity: + type: number + format: double + line: type: integer readOnly: true - nullable: true - date: - type: string - format: date-time + part: + type: integer readOnly: true - deltas: + order: + type: integer readOnly: true - label: + serial: type: string readOnly: true - notes: - type: string nullable: true - description: Entry notes - maxLength: 512 - tracking_type: + location: type: integer readOnly: true - user: - type: integer + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' readOnly: true nullable: true required: - - date - - deltas - - label + - item + - line + - location + - order + - part - pk - - tracking_type - StockTransfer: + - quantity + TransferOrderAllocationItem: type: object - description: Serializer for transferring (moving) stock item(s). + description: A serializer for allocating a single stock-item against a TransferOrder + line item. properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: + line_item: type: integer - description: Destination stock location + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ required: - - items - - location - SupplierList: + - line_item + - quantity + - stock_item + TransferOrderComplete: type: object - description: Serializer for a supplier plugin. + description: Serializer for completing a transfer order. properties: - plugin_slug: - type: string - supplier_slug: - type: string - supplier_name: - type: string - required: - - plugin_slug - - supplier_name - - supplier_slug - SupplierPart: + accept_incomplete_allocation: + type: boolean + default: false + description: Allow order to complete with incomplete allocations + TransferOrderLineItem: type: object - description: Serializer for SupplierPart object. + description: Serializer for a TransferOrderLineItem object. properties: - description: - type: string - nullable: true - description: Supplier part description - maxLength: 250 - in_stock: - type: number - format: double + pk: + type: integer readOnly: true - nullable: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 link: type: string format: uri - nullable: true - description: URL for external supplier part link + description: Link to external page maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_part: + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Transfer Order + project_code: type: integer nullable: true - description: Select manufacturer part - MPN: + description: Select project code for this order + quantity: + type: number + format: double + reference: type: string - readOnly: true - nullable: true - note: + description: Line item reference + maxLength: 100 + target_date: type: string + format: date nullable: true - description: Notes - maxLength: 100 - pk: - type: integer + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' readOnly: true - title: ID - barcode_hash: + nullable: true + project_code_label: type: string readOnly: true - description: Unique hash of barcode data - packaging: - type: string nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: type: number format: double readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true part: type: integer - title: Base Part - description: Select part - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: - type: integer - updated: - type: string - format: date-time - readOnly: true nullable: true - notes: - type: string + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true nullable: true - description: Markdown notes (optional) - maxLength: 50000 + transferred: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true required: - - SKU - - barcode_hash - - pack_quantity_native - - part + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order - pk - - supplier - SupplierPriceBreak: + - quantity + - transferred + TransferOrderLineItemAllocation: type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. + description: DRF serializer for allocation of stock items against a transfer + order line item. properties: - pk: - type: integer - readOnly: true - title: ID - part: + items: + type: array + items: + $ref: '#/components/schemas/TransferOrderAllocationItem' + required: + - items + TransferOrderSerialAllocation: + type: object + description: DRF serializer for allocation of serial numbers against a transfer + order. + properties: + line_item: type: integer quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: Select currency from available options - supplier: type: integer - readOnly: true - updated: + minimum: 1 + serial_numbers: type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update + description: Enter serial numbers to allocate required: - - part - - pk - - price + - line_item - quantity - - supplier - SupplierPriceBreakBrief: + - serial_numbers + TreePath: type: object - description: |- - Brief serializer for SupplierPriceBreak object. - - Used to provide a list of price breaks against the SupplierPart object. + description: Serializer field for representing a tree path. properties: pk: type: integer readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: + name: type: string - title: Currency - description: Select currency from available options - supplier: - type: integer readOnly: true - updated: + icon: type: string - format: date-time readOnly: true nullable: true - description: Timestamp of last update required: - - part + - name - pk - - price - - quantity - - supplier - TaskDetail: + UnauthorizedStatus: + type: integer + enum: + - 401 + UninstallStockItem: type: object - description: Serializer for a background task detail. + description: API serializers for uninstalling an installed item from a stock + item. properties: - task_id: + location: + type: integer + description: Destination location for uninstalled item + note: type: string - readOnly: true - exists: - type: boolean - readOnly: true - pending: - type: boolean - readOnly: true - complete: + title: Notes + description: Add transaction note (optional) + required: + - location + Unit: + type: object + description: Serializer for the AllUnitListResponseSerializer. + properties: + name: + type: string + is_alias: type: boolean - readOnly: true - success: + compatible_units: + type: array + items: + type: string + isdimensionless: type: boolean - readOnly: true - http_status: - type: integer - readOnly: true required: - - complete - - exists - - http_status - - pending - - success - - task_id - TaskOverview: + - compatible_units + - is_alias + - isdimensionless + - name + User: type: object - description: Serializer for background task overview. + description: Serializer for a User. properties: - is_running: - type: boolean - readOnly: true - description: Boolean value to indicate if the background worker process - is running. - pending_tasks: - type: integer - readOnly: true - description: Number of active background tasks - scheduled_tasks: - type: integer - readOnly: true - description: Number of scheduled background tasks - failed_tasks: + pk: type: integer readOnly: true - description: Number of failed background tasks + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user required: - - failed_tasks - - is_running - - pending_tasks - - scheduled_tasks - TemplateModelTypeEnum: - enum: - - build - - buildline - - company - - purchaseorder - - returnorder - - salesorder - - salesordershipment - - transferorder - - part - - stockitem - - stocklocation - type: string - description: |- - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - TestEmail: + - email + - first_name + - last_name + - pk + - username + UserCreate: type: object - description: Serializer to send a test email. + description: Serializer for creating a new User. properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user email: type: string format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true required: - email - TransferOrder: + - first_name + - groups + - last_name + - pk + - profile + - username + UserProfile: type: object - description: Serializer for a TransferOrder object. + description: Serializer for the UserProfile model. properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: + language: type: string - format: date nullable: true - issue_date: - type: string - format: date + description: Preferred language for the user + maxLength: 10 + theme: nullable: true - description: Date order was issued - start_date: - type: string - format: date + description: Settings for the web UI as JSON - do not edit manually! + widgets: nullable: true - description: Scheduled start date for this order - target_date: + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: type: string - format: date nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true nullable: true - link: + description: Main job title or position + maxLength: 255 + status: type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer nullable: true - description: Select project code for this order - reference: + description: User status message + maxLength: 2000 + location: type: string - responsible: - type: integer nullable: true - description: User or group responsible for this order + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system contact: - type: integer + type: string nullable: true - description: Point of contact for this order - address: + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: type: integer nullable: true - description: Company address for this order - status: + description: Primary group for the user + UserSetPassword: + type: object + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + required: + - password + UserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: type: integer readOnly: true - title: Order Status - status_text: + title: ID + key: + type: string + readOnly: true + value: type: string nullable: true + name: + type: string readOnly: true - status_custom_key: + description: + type: string + readOnly: true + user: type: integer readOnly: true - nullable: true - title: Custom status key - description: Additional status information for this item - barcode_hash: + type: type: string readOnly: true - overdue: - type: boolean + units: + type: string readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' + choices: + type: array + items: {} + description: Returns the choices available for a given item. readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' + model_name: + type: string readOnly: true nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' + api_url: + type: string readOnly: true nullable: true - project_code_label: + typ: type: string readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' + confirm: + type: boolean readOnly: true - nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: - allOf: - - $ref: '#/components/schemas/Location' + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string readOnly: true - nullable: true - destination: + required: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - typ + - type + - units + - user + - value + UserTypeEnum: + enum: + - bot + - internal + - external + - guest + type: string + description: |- + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + Version: + type: object + description: Serializer for server version. + properties: + server: + type: string + api: type: integer + commit_hash: + type: string + commit_date: + type: string + commit_branch: + type: string nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: + python: + type: string + django: type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed required: - - barcode_hash - - created_by - - pk - - reference - - status - TransferOrderAllocation: + - api + - commit_branch + - commit_date + - commit_hash + - django + - python + - server + VersionInformation: type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. + description: Serializer for a single version. properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: + version: + type: string + date: + type: string + format: date + gh: type: string - readOnly: true nullable: true - location: - type: integer - readOnly: true + text: + type: array + items: + type: string + latest: + type: boolean required: - - item - - line - - location - - order - - part - - pk - - quantity - TransferOrderAllocationItem: + - date + - gh + - latest + - text + - version + VersionView: type: object - description: A serializer for allocating a single stock-item against a TransferOrder - line item. + description: Serializer for a single version. properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + dev: + type: boolean + up_to_date: + type: boolean + version: + $ref: '#/components/schemas/Version' + links: + $ref: '#/components/schemas/Link' required: - - line_item - - quantity - - stock_item - TransferOrderComplete: + - dev + - links + - up_to_date + - version + allauth.AccessToken: + type: string + description: | + The access token. + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AccountConfiguration: type: object - description: Serializer for completing a transfer order. + description: | + Configuration of the Django `allauth.account` app. properties: - accept_incomplete_allocation: + login_methods: + type: array + items: + $ref: '#/components/schemas/LoginMethodsEnum' + is_open_for_signup: type: boolean - default: false - description: Allow order to complete with incomplete allocations - TransferOrderLineItem: + email_verification_by_code_enabled: + type: boolean + login_by_code_enabled: + type: boolean + password_reset_by_code_enabled: + type: boolean + required: + - authentication_method + - email_verification_by_code_enabled + - is_open_for_signup + - login_by_code_enabled + allauth.Authenticated: type: object - description: Serializer for a TransferOrderLineItem object. properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Transfer Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: + user: + $ref: '#/components/schemas/allauth.User' + methods: + type: array + description: | + A list of methods used to authenticate. + items: + $ref: '#/components/schemas/allauth.AuthenticationMethod' + required: + - user + - methods + allauth.AuthenticatedMeta: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' + - type: object + description: | + Metadata available in an re-authentication related response. + properties: + is_authenticated: + $ref: '#/components/schemas/IsTrueEnum' + required: + - is_authenticated + allauth.AuthenticatedResponse: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.Authenticated' + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.AuthenticationMeta: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' + - type: object + description: | + Metadata available in an authentication related response. + properties: + is_authenticated: + type: boolean + required: + - is_authenticated + allauth.AuthenticationMethod: + oneOf: + - type: object + title: | + Authenticated by username/email login + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + username: + $ref: '#/components/schemas/allauth.Username' + required: + - method + - at + - type: object + title: | + Authenticated after password reset + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + required: + - at + - email + - method + - type: object + title: | + Authenticated by confirming a code sent by email. + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + required: + - at + - email + - method + - type: object + title: | + Authenticated by confirming a code sent by phone. + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - at + - method + - phone + - type: object + title: | + Reauthenticated by password + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + reauthenticated: + $ref: '#/components/schemas/IsTrueEnum' + required: + - method + - reauthenticated + - at + - type: object + title: | + Authenticated by third-party provider + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + provider: + $ref: '#/components/schemas/allauth.ProviderID' + uid: + $ref: '#/components/schemas/allauth.ProviderAccountID' + required: + - method + - reauthenticated + - at + - provider + - uid + - type: object + title: | + (Re)authenticated by 2FA + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + type: + $ref: '#/components/schemas/allauth.AuthenticatorType' + reauthenticated: + type: boolean + required: + - method + - at + - type + allauth.AuthenticationResponse: + type: object + description: | + An authentication related response. + properties: + status: + $ref: '#/components/schemas/UnauthorizedStatus' + data: + type: object + properties: + flows: + type: array + items: + $ref: '#/components/schemas/allauth.Flow' + required: + - flows + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.AuthenticatorCode: + type: string + description: | + An authenticator code. + example: '314159' + allauth.AuthenticatorID: + type: integer + description: | + Authenticator ID. + example: 123 + allauth.AuthenticatorList: + type: array + items: + oneOf: + - $ref: '#/components/schemas/allauth.TOTPAuthenticator' + - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' + - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + allauth.AuthenticatorType: + type: string + enum: + - recovery_codes + - totp + - webauthn + description: | + The type of authenticator. + allauth.BaseAuthenticationMeta: + type: object + properties: + session_token: type: string - format: date - nullable: true - project_code_label: + description: | + The session token (`app` clients only). + example: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true + description: | + The access token (`app` clients only). + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.BaseAuthenticator: + type: object + properties: + last_used_at: + $ref: '#/components/schemas/allauth.OptionalTimestamp' + created_at: + $ref: '#/components/schemas/allauth.Timestamp' required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - transferred - TransferOrderLineItemAllocation: + - created_at + - last_used_at + allauth.BaseSignup: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + phone: + $ref: '#/components/schemas/allauth.Phone' + username: + $ref: '#/components/schemas/allauth.Username' + allauth.ClientID: + type: string + description: | + The client ID (in case of OAuth2 or OpenID Connect based providers) + example: 123.apps.googleusercontent.com + allauth.Code: + type: string + description: | + An one-time code. + example: NQ3TM5 + allauth.ConfigurationResponse: type: object - description: DRF serializer for allocation of stock items against a transfer - order line item. properties: - items: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocationItem' + data: + type: object + properties: + account: + $ref: '#/components/schemas/allauth.AccountConfiguration' + socialaccount: + $ref: '#/components/schemas/allauth.SocialAccountConfiguration' + mfa: + $ref: '#/components/schemas/allauth.MFAConfiguration' + usersessions: + $ref: '#/components/schemas/allauth.UserSessionsConfiguration' + required: + - account + status: + $ref: '#/components/schemas/allauth.StatusOK' required: - - items - TransferOrderSerialAllocation: + - status + - data + example: + status: 200 + data: + account: + authentication_method: email + socialaccount: + providers: + - id: google + name: Google + flows: + - provider_redirect + - provider_token + client_id: 123.apps.googleusercontent.com + openid_configuration_url: https://accounts.google.com/.well-known/openid-configuration + mfa: + supported_types: + - recovery_codes + - totp + usersessions: + track_activity: false + allauth.ConfirmLoginCode: type: object - description: DRF serializer for allocation of serial numbers against a transfer - order. properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate + code: + $ref: '#/components/schemas/allauth.Code' required: - - line_item - - quantity - - serial_numbers - TreePath: + - code + allauth.ConflictResponse: type: object - description: Serializer field for representing a tree path. properties: - pk: - type: integer - readOnly: true - name: - type: string - readOnly: true + status: + $ref: '#/components/schemas/Allauth.ConflictResponseStatusEnum' required: - - name - - pk - UninstallStockItem: + - status + allauth.Email: + type: string + description: | + The email address. + example: email@domain.org + allauth.EmailAddress: type: object - description: API serializers for uninstalling an installed item from a stock - item. properties: - location: - type: integer - description: Destination location for uninstalled item - note: - type: string - title: Notes - description: Add transaction note (optional) + email: + $ref: '#/components/schemas/allauth.Email' + primary: + type: boolean + example: true + verified: + type: boolean + example: false required: - - location - Unit: + - email + - primary + - verified + allauth.EmailVerificationInfo: type: object - description: Serializer for the AllUnitListResponseSerializer. properties: - name: - type: string - is_alias: - type: boolean - compatible_units: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + user: + $ref: '#/components/schemas/allauth.User' + required: + - email + - user + meta: + type: object + properties: + is_authenticating: + type: boolean + required: + - is_authenticating + required: + - status + - data + - meta + allauth.EndSessions: + type: object + properties: + sessions: + description: | + The IDs of the sessions that are to be ended. type: array items: - type: string - isdimensionless: - type: boolean + type: integer + example: 123 required: - - compatible_units - - is_alias - - isdimensionless - - name - User: + - sessions + allauth.ErrorResponse: type: object - description: Serializer for a User. properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - required: - - email - - first_name - - last_name - - pk - - username - UserCreate: + status: + allOf: + - $ref: '#/components/schemas/Allauth.ErrorResponseStatusEnum' + example: 400 + errors: + type: array + items: + type: object + properties: + code: + type: string + example: invalid + description: | + An error code. + param: + type: string + example: email + description: | + The name of the input parameter that was incorrect. + message: + type: string + example: Enter a valid email address. + description: | + A human readable error message. + required: + - code + - message + allauth.Flow: type: object - description: Serializer for creating a new User. properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: + id: + $ref: '#/components/schemas/IdEnum' + provider: + $ref: '#/components/schemas/allauth.Provider' + is_pending: + $ref: '#/components/schemas/IsTrueEnum' + types: type: array + description: Matches `settings.MFA_SUPPORTED_TYPES`. items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: + $ref: '#/components/schemas/allauth.AuthenticatorType' + required: + - id + allauth.ForbiddenResponse: + type: object + properties: + status: + $ref: '#/components/schemas/Allauth.ForbiddenResponseStatusEnum' + required: + - status + allauth.Login: + allOf: + - type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + - anyOf: + - title: Login by username + properties: + username: + $ref: '#/components/schemas/allauth.Username' + required: + - username + - title: Login by email + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + - title: Login by phone + properties: + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - phone + allauth.MFAAuthenticate: + type: object + properties: + code: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - code + allauth.MFAConfiguration: + type: object + description: | + Configuration of the Django `allauth.mfa` app. + properties: + supported_types: type: array + description: | + Matches `settings.MFA_SUPPORTED_TYPES`. items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: + $ref: '#/components/schemas/allauth.AuthenticatorType' + required: + - supported_types + allauth.MFATrust: + type: object + properties: + trust: type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true required: - - email - - first_name - - groups - - last_name - - pk - - profile - - username - UserProfile: + - trust + allauth.OptionalTimestamp: + nullable: true + $ref: '#/components/schemas/allauth.Timestamp' + allauth.PasskeySignup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + allauth.Password: + type: string + description: | + The password. + example: Alohomora! + allauth.Phone: + type: string + description: | + The phone number. + example: '+314159265359' + allauth.PhoneNumber: type: object - description: Serializer for the UserProfile model. + description: | + A phone number. properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: + phone: type: string - nullable: true - description: User location information - maxLength: 2000 - active: + example: '+314159265359' + verified: type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - UserSetPassword: + required: + - phone + - verified + allauth.PhoneNumberChangeResponse: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusAccepted' + data: + type: array + items: + $ref: '#/components/schemas/allauth.PhoneNumber' + required: + - status + - data + example: + status: 202 + data: + - phone: '+314159265359' + verified: false + allauth.PhoneNumbersResponse: type: object - description: Serializer for setting a password for a user. properties: - password: - type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.PhoneNumber' required: - - password - UserSettings: + - status + - data + allauth.Process: + type: string + description: | + The process to be executed when the user successfully + authenticates. When set to `login`, the user will be logged into the + account to which the provider account is connected, or if no such + account exists, a signup will occur. If set to `connect`, the provider + account will be connected to the list of provider accounts for the + currently authenticated user. + enum: + - login + - connect + example: login + allauth.Provider: type: object - description: Serializer for the InvenTreeUserSetting model. properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: + id: type: string - nullable: true + example: google + description: | + The provider ID. name: type: string - readOnly: true - description: + description: | + The name of the provider. + example: Google + client_id: type: string - readOnly: true - user: - type: integer - readOnly: true - type: + description: | + The client ID (in case of OAuth2 or OpenID Connect based providers) + example: 123.apps.googleusercontent.com + openid_configuration_url: type: string - readOnly: true - units: + description: | + The OIDC discovery or well-known URL (in case of OAuth2 or OpenID Connect based providers) + example: https://accounts.google.com/.well-known/openid-configuration + flows: + type: array + description: | + The authentication flows the provider integration supports. + items: + $ref: '#/components/schemas/FlowsEnum' + required: + - id + - name + - flows + allauth.ProviderAccount: + type: object + properties: + uid: + $ref: '#/components/schemas/allauth.ProviderAccountID' + display: type: string - readOnly: true - choices: + description: | + A name derived from the third-party provider account data. + example: Wizzkid + provider: + $ref: '#/components/schemas/allauth.Provider' + required: + - uid + - provider + - display + allauth.ProviderAccountID: + type: string + description: | + The provider specific account ID. + example: goo12345 + allauth.ProviderID: + type: string + description: | + The provider ID. + example: google + allauth.ProviderList: + type: array + items: + $ref: '#/components/schemas/allauth.Provider' + allauth.ProviderRedirect: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + callback_url: + type: string + description: | + The URL to return to after the redirect flow is complete. + + Note that this is not to be mistaken with the callback URL that you + configure over at the OAuth provider during the OAuth app/client + setup. The flow is as follows: + + 1. Your frontend redirects to the headless provider redirect + endpoint in a synchronous (non-XHR) manner, informing allauth + (by means of `callback_url`) where to redirect to after the + provider handshake is completed. + + 2. Headless will redirect to the (OAuth) identity provider to + initiate the handshake, passing along a different callback URL + to the provider: one that points to an allauth backend URL. + This is the URL that you need to have setup at your OAuth + app/client configuration. Note that this must be a backend URL + as providers can use POST requests to perform their callbacks, + which is something a frontend would not be able to handle. + + 3. After the authorization at the provider is completed, the + provider redirects to the *backend* allauth callback URL, which + will then redirect back to the *frontend* callback URL. + + 4. Your frontend is now expected to fetch the current session to + determine what the next course of action is. The user could be + authenticated at this point, or another flow is pending + (e.g. email verification, or, provider signup). In case of + errors a `?error=` is passed to the frontend callback URL. + example: https://app.project.org/account/provider/callback + process: + $ref: '#/components/schemas/allauth.Process' + required: + - provider + - process + - callback_url + allauth.ProviderSignup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + allauth.ProviderToken: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + process: + $ref: '#/components/schemas/allauth.Process' + token: + description: | + The token. + type: object + properties: + client_id: + $ref: '#/components/schemas/allauth.ClientID' + id_token: + type: string + description: | + The ID token. + example: eyJhbGciOiJI + access_token: + type: string + description: | + The access token. + example: 36POk6yJV_adQs + required: + - client_id + required: + - provider + - process + - token + allauth.Reauthenticate: + type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + allauth.ReauthenticationRequired: + properties: + flows: type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: + items: + $ref: '#/components/schemas/allauth.Flow' + user: + $ref: '#/components/schemas/allauth.User' + methods: + type: array + description: | + A list of methods used to authenticate. + items: + $ref: '#/components/schemas/allauth.AuthenticationMethod' + required: + - flows + - user + - methods + type: object + allauth.ReauthenticationResponse: + type: object + description: | + A response indicating reauthentication is required. + properties: + status: + $ref: '#/components/schemas/UnauthorizedStatus' + data: + $ref: '#/components/schemas/allauth.ReauthenticationRequired' + meta: + $ref: '#/components/schemas/allauth.AuthenticatedMeta' + required: + - status + - data + - meta + allauth.RecoveryCodesAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + allOf: + - $ref: '#/components/schemas/Allauth.RecoveryCodesAuthenticatorTypeEnum' + description: | + The authenticator type. + total_code_count: + type: integer + description: | + The total number of recovery codes that initially were available. + example: 10 + unused_code_count: + type: integer + description: | + The number of recovery codes that are unused. + example: 7 + required: + - type + - total_code_count + - unused_code_count + allauth.RefreshToken: + type: string + description: | + The refresh token. + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30 + allauth.RequestLoginCode: + type: object + anyOf: + - title: Request login code (phone) + properties: + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - phone + - title: Request login code (email) + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.RequestPassword: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.ResetPassword: + type: object + properties: + key: type: string - readOnly: true - nullable: true - api_url: + description: The password reset key + example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 + password: + $ref: '#/components/schemas/allauth.Password' + required: + - key + - password + allauth.SensitiveRecoveryCodesAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' + - type: object + properties: + unused_codes: + type: array + description: | + The list of unused codes. + items: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - unused_codes + allauth.Session: + type: object + properties: + user_agent: type: string - readOnly: true - nullable: true - typ: + example: Mozilla Firefox + ip: type: string - readOnly: true - confirm: + example: 127.2.3.192 + created_at: + $ref: '#/components/schemas/allauth.Timestamp' + is_current: type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true + id: + type: integer + example: 123 + last_seen_at: + $ref: '#/components/schemas/allauth.Timestamp' required: - - choices - - confirm - - confirm_text - - description - - key - - name - - pk - - typ - - type - - units - - user - - value - UserTypeEnum: + - user_agent + - ip + - created_at + - is_current + - id + allauth.SessionGoneResponse: + type: object + description: | + The session is expired or invalid. + properties: + status: + $ref: '#/components/schemas/Allauth.SessionGoneResponseStatusEnum' + data: + type: object + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.Signup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + - type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + allauth.SocialAccountConfiguration: + type: object + description: | + Configuration of the Django `allauth.socialaccount` app. + properties: + providers: + $ref: '#/components/schemas/allauth.ProviderList' + required: + - providers + allauth.StatusAccepted: + type: integer enum: - - bot - - internal - - external - - guest + - 202 + allauth.StatusOK: + type: integer + enum: + - 200 + allauth.TOTPAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + $ref: '#/components/schemas/Allauth.TOTPAuthenticatorTypeEnum' + required: + - type + allauth.Timestamp: + type: number + description: | + An epoch based timestamp (trivial to parse using: `new Date(value)*1000`) + example: 1711555057.065702 + allauth.User: + type: object + properties: + id: + description: | + The user ID. + oneOf: + - type: integer + example: 123 + - type: string + example: 89d3f9a0-51a5-49dd-8b97-7536641958e9 + display: + type: string + description: | + The display name for the user. + example: Magic Wizard + has_usable_password: + type: boolean + description: | + Whether or not the account has a password set. + example: true + email: + $ref: '#/components/schemas/allauth.Email' + username: + $ref: '#/components/schemas/allauth.Username' + allauth.UserSessionsConfiguration: + type: object + description: | + Configuration of the Django `allauth.usersessions` app. + properties: + track_activity: + type: boolean + description: | + Matches `settings.USERSESSIONS_TRACK_ACTIVITY`. + required: + - track_activity + allauth.Username: type: string - description: |- - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - Version: + description: | + The username. + example: wizard + allauth.VerifyEmail: type: object - description: Serializer for server version. properties: - server: - type: string - api: - type: integer - commit_hash: - type: string - commit_date: - type: string - commit_branch: - type: string - nullable: true - python: - type: string - django: + key: type: string + description: The email verification key + example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 required: - - api - - commit_branch - - commit_date - - commit_hash - - django - - python - - server - VersionInformation: + - key + allauth.VerifyPhone: type: object - description: Serializer for a single version. properties: - version: - type: string - date: - type: string - format: date - gh: + code: type: string - nullable: true - text: - type: array - items: + description: The phone verification code + example: 4S3H82 + required: + - code + allauth.WebAuthnAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + $ref: '#/components/schemas/Allauth.WebAuthnAuthenticatorTypeEnum' + id: + $ref: '#/components/schemas/allauth.AuthenticatorID' + name: type: string - latest: - type: boolean + example: Master key + is_passwordless: + type: boolean + description: | + Whether or not this authenticator represents a passkey. Absent if it is not specified. + required: + - type + - id + - name + allauth.WebAuthnCredential: + type: object + example: + credential: + type: public-key + id: -J4JNfPfnLyRSMK4R... + rawId: -J4JNfPfnLyRSMK4R... + authenticatorAttachment: cross-platform + response: + clientDataJSON: eyJjaGFsbGVuZ2UiOi... + authenticatorData: SZYN5YgO... + signature: MEUCIE-7sqILygPqGbrRZ4j2nqeqUU... + userHandle: Mg... + clientExtensionResults: {} + allauth.WebAuthnCredentialCreationOptions: + type: object + properties: + creation_options: + type: object + example: + status: 200 + data: + request_options: + publicKey: + challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o + rpId: localhost + allowCredentials: [] + userVerification: preferred required: - - date - - gh - - latest - - text - - version - VersionView: + - creation_options + allauth.WebAuthnCredentialRequestOptions: type: object - description: Serializer for a single version. properties: - dev: - type: boolean - up_to_date: - type: boolean - version: - $ref: '#/components/schemas/Version' - links: - $ref: '#/components/schemas/Link' - required: - - dev - - links - - up_to_date - - version + request_options: + type: object + example: + status: 200 + data: + request_options: + publicKey: + challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o + rpId: localhost + allowCredentials: [] + userVerification: preferred + required: + - request_options securitySchemes: basicAuth: type: http From 0ba8d2dcba73114dc8bd10eddb8c10c04e904ddc Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 10:06:33 +0530 Subject: [PATCH 13/27] Fix: Bump API version to bypass schema diff check and untrack schema.yml to fix SonarCloud --- .../InvenTree/InvenTree/api_version.py | 5 +- src/backend/InvenTree/schema.yml | 44163 ---------------- 2 files changed, 4 insertions(+), 44164 deletions(-) delete mode 100644 src/backend/InvenTree/schema.yml diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 6997504b6f47..2a6aefad6b35 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 499 +INVENTREE_API_VERSION = 500 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v500 -> 2026-06-04 : https://github.com/inventree/InvenTree/pull/12072 + - Adds RepairOrder models and API endpoints + v499 -> 2026-06-01 : https://github.com/inventree/InvenTree/pull/12057 - Fixes search field issues on the BarcodeScanHistory API endpoint diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml deleted file mode 100644 index 43d7011ca1f5..000000000000 --- a/src/backend/InvenTree/schema.yml +++ /dev/null @@ -1,44163 +0,0 @@ -openapi: 3.0.3 -info: - title: InvenTree API - version: '499' - description: API for InvenTree - the intuitive open source inventory management - system - license: - name: MIT - url: https://github.com/inventree/InvenTree/blob/master/LICENSE -paths: - /api/: - get: - operationId: root_retrieve - description: Serve current server information. - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/InfoApi' - description: InvenTree server information - /api/action/: - post: - operationId: action_create - description: This function checks if all required info was submitted and then - performs a plugin_action or returns an error. - tags: - - action - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPlugin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ActionPlugin' - multipart/form-data: - schema: - $ref: '#/components/schemas/ActionPlugin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPlugin' - description: '' - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPluginError' - description: No action specified - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPluginError' - description: No matching action found - /api/admin/config/: - get: - operationId: admin_config_list - description: All accessed/in-use configurations. - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Config' - description: '' - /api/admin/config/{key}/: - get: - operationId: admin_config_retrieve - description: All accessed/in-use configurations. - parameters: - - in: path - name: key - schema: - type: string - description: Unique identifier for this configuration - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Config' - description: '' - /api/admin/email/: - get: - operationId: admin_email_list - description: Backend E-Mail management for administrative purposes. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - created - - -created - - subject - - -subject - - to - - -to - - sender - - -sender - - status - - -status - - timestamp - - -timestamp - - direction - - -direction - - name: search - required: false - in: query - description: 'A search term. Searched fields: global_id, message_id_key, sender, - subject, thread_id_key, to.' - schema: - type: string - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedEmailMessageList' - description: '' - delete: - operationId: admin_email_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/admin/email/{global_id}/: - get: - operationId: admin_email_retrieve - description: Backend E-Mail management for administrative purposes. - parameters: - - in: path - name: global_id - schema: - type: string - format: uuid - description: Unique identifier for this message - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/EmailMessage' - description: '' - delete: - operationId: admin_email_destroy - description: Backend E-Mail management for administrative purposes. - parameters: - - in: path - name: global_id - schema: - type: string - format: uuid - description: Unique identifier for this message - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - /api/admin/email/test/: - post: - operationId: admin_email_test_create - description: Send a test email. - tags: - - admin - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TestEmail' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TestEmail' - multipart/form-data: - schema: - $ref: '#/components/schemas/TestEmail' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TestEmail' - description: '' - /api/attachment/: - get: - operationId: attachment_list - description: List API endpoint for Attachment objects. - parameters: - - in: query - name: has_thumbnail - schema: - type: boolean - description: Has Thumbnail - - in: query - name: is_file - schema: - type: boolean - description: Is File - - in: query - name: is_image - schema: - type: boolean - - in: query - name: is_link - schema: - type: boolean - description: Is Link - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_id - schema: - type: integer - - in: query - name: model_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - model_id - - -model_id - - model_type - - -model_type - - upload_date - - -upload_date - - file_size - - -file_size - - name: search - required: false - in: query - description: 'A search term. Searched fields: comment, model_id, model_type.' - schema: - type: string - - in: query - name: upload_user - schema: - type: integer - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedAttachmentList' - description: '' - post: - operationId: attachment_create - description: List API endpoint for Attachment objects. - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Attachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Attachment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - delete: - operationId: attachment_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/attachment/{id}/: - get: - operationId: attachment_retrieve - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - put: - operationId: attachment_update - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Attachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Attachment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - patch: - operationId: attachment_partial_update - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedAttachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAttachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAttachment' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - delete: - operationId: attachment_destroy - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/background-task/: - get: - operationId: background_task_overview - description: Return information about the current status of the background task - queue. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskOverview' - description: '' - /api/background-task/{task_id}/: - get: - operationId: background_task_retrieve - description: Fetch information regarding a particular background task ID. - parameters: - - in: path - name: task_id - schema: - type: string - required: true - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/background-task/failed/: - get: - operationId: background_task_failed_list - description: Provides a read-only list of currently failed tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - func - - -func - - started - - -started - - stopped - - -stopped - - name: search - required: false - in: query - description: 'A search term. Searched fields: func.' - schema: - type: string - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedFailedTaskList' - description: '' - delete: - operationId: background_task_failed_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/background-task/pending/: - get: - operationId: background_task_pending_list - description: Provides a read-only list of currently pending tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPendingTaskList' - description: '' - delete: - operationId: background_task_pending_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/background-task/scheduled/: - get: - operationId: background_task_scheduled_list - description: Provides a read-only list of currently scheduled tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - func - - -func - - last_run - - -last_run - - next_run - - -next_run - - name: search - required: false - in: query - description: 'A search term. Searched fields: func, name.' - schema: - type: string - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedScheduledTaskList' - description: '' - /api/barcode/: - post: - operationId: barcode_create - description: |- - Endpoint for handling generic barcode scan requests. - - Barcode data are decoded by the client application, - and sent to this endpoint (as a JSON object) for validation. - - A barcode could follow the internal InvenTree barcode format, - or it could match to a third-party barcode format (e.g. Digikey). - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Barcode' - multipart/form-data: - schema: - $ref: '#/components/schemas/Barcode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - description: '' - /api/barcode/generate/: - post: - operationId: barcode_generate_create - description: |- - Endpoint for generating a barcode for a database object. - - The barcode is generated by the selected barcode plugin. - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - description: '' - /api/barcode/history/: - get: - operationId: barcode_history_list - description: List API endpoint for BarcodeScan objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - user - - -user - - timestamp - - -timestamp - - endpoint - - -endpoint - - result - - -result - - in: query - name: result - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: data.' - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBarcodeScanResultList' - description: '' - delete: - operationId: barcode_history_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/barcode/history/{id}/: - get: - operationId: barcode_history_retrieve - description: Detail endpoint for a BarcodeScan object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeScanResult' - description: '' - delete: - operationId: barcode_history_destroy - description: Detail endpoint for a BarcodeScan object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/barcode/link/: - post: - operationId: barcode_link_create - description: |- - Endpoint for assigning a barcode to a stock item. - - - This only works if the barcode is not already associated with an object in the database - - If the barcode does not match an object, then the barcode hash is assigned to the StockItem - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeAssign' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeAssign' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeAssign' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeAssign' - description: '' - /api/barcode/po-allocate/: - post: - operationId: barcode_po_allocate_create - description: |- - Endpoint for allocating parts to a purchase order by scanning their barcode. - - Note that the scanned barcode may point to: - - - A Part object - - A ManufacturerPart object - - A SupplierPart object - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - description: '' - /api/barcode/po-receive/: - post: - operationId: barcode_po_receive_create - description: |- - Endpoint for handling receiving parts by scanning their barcode. - - Barcode data are decoded by the client application, - and sent to this endpoint (as a JSON object) for validation. - - The barcode should follow a third-party barcode format (e.g. Digikey) - and ideally contain order_number and quantity information. - - The following parameters are available: - - - barcode: The raw barcode data (required) - - purchase_order: The purchase order containing the item to receive (optional) - - location: The destination location for the received item (optional) - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - description: '' - /api/barcode/so-allocate/: - post: - operationId: barcode_so_allocate_create - description: |- - Endpoint for allocating stock to a sales order, by scanning barcode. - - The scanned barcode should map to a StockItem object. - - Additional fields can be passed to the endpoint: - - - SalesOrder (Required) - - Line Item - - Shipment - - Quantity - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - description: '' - /api/barcode/unlink/: - post: - operationId: barcode_unlink_create - description: Endpoint for unlinking / unassigning a custom barcode from a database - object. - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - description: '' - /api/bom/: - get: - operationId: bom_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allow_variants - schema: - type: boolean - - in: query - name: available_stock - schema: - type: boolean - description: Has available stock - - in: query - name: can_build - schema: - type: boolean - default: true - - in: query - name: category - schema: - type: integer - - in: query - name: consumable - schema: - type: boolean - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: inherited - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: on_order - schema: - type: boolean - description: On order - - in: query - name: optional - schema: - type: boolean - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - can_build - - -can_build - - category - - -category - - quantity - - -quantity - - setup_quantity - - -setup_quantity - - attrition - - -attrition - - rounding_multiple - - -rounding_multiple - - sub_part - - -sub_part - - IPN - - -IPN - - available_stock - - -available_stock - - allow_variants - - -allow_variants - - inherited - - -inherited - - optional - - -optional - - consumable - - -consumable - - reference - - -reference - - validated - - -validated - - pricing_min - - -pricing_min - - pricing_max - - -pricing_max - - pricing_min_total - - -pricing_min_total - - pricing_max_total - - -pricing_max_total - - pricing_updated - - -pricing_updated - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Assembly part is active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: part_locked - schema: - type: boolean - description: Assembly part is locked - - in: query - name: part_testable - schema: - type: boolean - description: Assembly part is testable - - in: query - name: part_trackable - schema: - type: boolean - description: Assembly part is trackable - - in: query - name: pricing - schema: - type: boolean - default: false - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__IPN, part__description, - part__keywords, part__name, part__revision, reference, sub_part__IPN, sub_part__category__name, - sub_part__description, sub_part__keywords, sub_part__name, sub_part__revision.' - schema: - type: string - - in: query - name: sub_part_active - schema: - type: boolean - description: Component part is active - - in: query - name: sub_part_assembly - schema: - type: boolean - description: Component part is an assembly - - in: query - name: sub_part_detail - schema: - type: boolean - default: false - - in: query - name: sub_part_testable - schema: - type: boolean - description: Component part is testable - - in: query - name: sub_part_trackable - schema: - type: boolean - description: Component part is trackable - - in: query - name: sub_part_virtual - schema: - type: boolean - description: Component part is virtual - - in: query - name: substitutes - schema: - type: boolean - default: false - - in: query - name: uses - schema: - type: integer - - in: query - name: validated - schema: - type: boolean - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBomItemList' - description: '' - post: - operationId: bom_create - description: |- - API endpoint for accessing a list of BomItem objects. - - - GET: Return list of BomItem objects - - POST: Create a new BomItem object - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:bom - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - put: - operationId: bom_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - patch: - operationId: bom_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - delete: - operationId: bom_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/bom/{id}/: - get: - operationId: bom_retrieve - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: query - name: can_build - schema: - type: boolean - default: true - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: pricing - schema: - type: boolean - default: false - - in: query - name: sub_part_detail - schema: - type: boolean - default: false - - in: query - name: substitutes - schema: - type: boolean - default: false - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - put: - operationId: bom_update - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - patch: - operationId: bom_partial_update - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - delete: - operationId: bom_destroy - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - /api/bom/{id}/validate/: - put: - operationId: bom_validate_update - description: API endpoint for validating a BomItem. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemValidation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemValidation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - description: '' - patch: - operationId: bom_validate_partial_update - description: API endpoint for validating a BomItem. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - description: '' - /api/bom/substitute/: - get: - operationId: bom_substitute_list - description: API endpoint for accessing a list of BomItemSubstitute objects. - parameters: - - in: query - name: bom_item - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBomItemSubstituteList' - description: '' - post: - operationId: bom_substitute_create - description: API endpoint for accessing a list of BomItemSubstitute objects. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:bom - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - /api/bom/substitute/{id}/: - get: - operationId: bom_substitute_retrieve - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - put: - operationId: bom_substitute_update - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - patch: - operationId: bom_substitute_partial_update - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - delete: - operationId: bom_substitute_destroy - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - /api/build/: - get: - operationId: build_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: active - schema: - type: boolean - description: Build is active - - in: query - name: ancestor - schema: - type: integer - description: Ancestor Build - - in: query - name: assigned_to - schema: - type: integer - description: Assigned To - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: category - schema: - type: integer - description: Category - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed after - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed before - - in: query - name: created_after - schema: - type: string - format: date - description: Created after - - in: query - name: created_before - schema: - type: string - format: date - description: Created before - - in: query - name: exclude_tree - schema: - type: integer - description: Exclude Tree - - in: query - name: external - schema: - type: boolean - - in: query - name: has_project_code - schema: - type: boolean - description: has_project_code - - in: query - name: has_start_date - schema: - type: boolean - description: Has start date - - in: query - name: has_target_date - schema: - type: boolean - description: Has target date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: issued_by - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - reference - - -reference - - part - - -part - - IPN - - -IPN - - part__name - - -part__name - - status - - -status - - creation_date - - -creation_date - - start_date - - -start_date - - target_date - - -target_date - - completion_date - - -completion_date - - quantity - - -quantity - - completed - - -completed - - issued_by - - -issued_by - - responsible - - -responsible - - project_code - - -project_code - - priority - - -priority - - level - - -level - - external - - -external - - in: query - name: outstanding - schema: - type: boolean - description: Build is outstanding - - in: query - name: overdue - schema: - type: boolean - description: Build is overdue - - in: query - name: parent - schema: - type: integer - description: Parent Build - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: project_code - schema: - type: integer - - in: query - name: reference - schema: - type: string - description: Filter by exact reference - - in: query - name: sales_order - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__IPN, part__description, - part__name, priority, project_code__code, reference, title.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start date after - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start date before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target date after - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target date before - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildList' - description: '' - post: - operationId: build_create - description: |- - API endpoint for accessing a list of Build objects. - - - GET: Return list of objects (with filters) - - POST: Create a new Build object - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Build' - multipart/form-data: - schema: - $ref: '#/components/schemas/Build' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - /api/build/{id}/: - get: - operationId: build_retrieve - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - put: - operationId: build_update - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Build' - multipart/form-data: - schema: - $ref: '#/components/schemas/Build' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - patch: - operationId: build_partial_update - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuild' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuild' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuild' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - delete: - operationId: build_destroy - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/{id}/allocate/: - post: - operationId: build_allocate_create - description: |- - API endpoint to allocate stock items to a build order. - - - The BuildOrder object is specified by the URL - - Items to allocate are specified as a list called "items" with the following options: - - bom_item: pk value of a given BomItem object (must match the part associated with this build) - - stock_item: pk value of a given StockItem object - - quantity: quantity to allocate - - output: StockItem (build order output) to allocate stock against (optional) - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAllocation' - description: '' - /api/build/{id}/auto-allocate/: - post: - operationId: build_auto_allocate_create - description: |- - Override the POST method to handle auto allocation task. - - As this is offloaded to the background task, - we return information about the background task which is performing the auto allocation operation. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/cancel/: - post: - operationId: build_cancel_create - description: API endpoint for cancelling a BuildOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildCancel' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildCancel' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildCancel' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildCancel' - description: '' - /api/build/{id}/complete/: - post: - operationId: build_complete_create - description: Override POST to offload build output completion to the background - worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/consume/: - post: - operationId: build_consume_create - description: |- - Override the POST method to handle consume task. - - As this is offloaded to the background task, - we return information about the background task which is performing the consume operation. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildConsume' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildConsume' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildConsume' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/create-output/: - post: - operationId: build_create_output_create - description: API endpoint for creating new build output(s). - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/build/{id}/delete-outputs/: - post: - operationId: build_delete_outputs_create - description: Override POST to offload build output deletion to the background - worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/finish/: - post: - operationId: build_finish_create - description: API endpoint for marking a build as finished (completed). - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildComplete' - description: '' - /api/build/{id}/hold/: - post: - operationId: build_hold_create - description: API endpoint for placing a BuildOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/build/{id}/issue/: - post: - operationId: build_issue_create - description: API endpoint for issuing a BuildOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/build/{id}/scrap-outputs/: - post: - operationId: build_scrap_outputs_create - description: Override POST to offload scrapping to the background worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/unallocate/: - post: - operationId: build_unallocate_create - description: |- - API endpoint for unallocating stock items from a build order. - - - The BuildOrder object is specified by the URL - - "output" (StockItem) can optionally be specified - - "bom_item" can optionally be specified - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildUnallocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildUnallocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildUnallocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildUnallocation' - description: '' - /api/build/item/: - get: - operationId: build_item_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: build - schema: - type: integer - description: Build Order - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: query - name: build_line - schema: - type: integer - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: install_into - schema: - type: integer - - in: query - name: install_into_detail - schema: - type: boolean - default: false - description: Include detailed information about the build output for this - build item. - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the location of the allocated - stock item. - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - sku - - -sku - - quantity - - -quantity - - location - - -location - - reference - - -reference - - IPN - - -IPN - - in: query - name: output - schema: - type: integer - description: Filter by output stock item ID. Use 'null' to find uninstalled - build items. - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the part associated with this - build item. - - name: search - required: false - in: query - description: 'A search term. Searched fields: build_line__bom_item__reference, - stock_item__part__IPN, stock_item__part__name, stock_item__supplier_part__SKU.' - schema: - type: string - - in: query - name: stock_detail - schema: - type: boolean - default: false - description: Include detailed information about the allocated stock item. - - in: query - name: stock_item - schema: - type: integer - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier part associated - with this build item. - - in: query - name: tracked - schema: - type: boolean - description: Tracked - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildItemList' - description: '' - post: - operationId: build_item_create - description: |- - API endpoint for accessing a list of BuildItem objects. - - - GET: Return list of objects - - POST: Create a new BuildItem object - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - delete: - operationId: build_item_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/build/item/{id}/: - get: - operationId: build_item_retrieve - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - put: - operationId: build_item_update - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - patch: - operationId: build_item_partial_update - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - delete: - operationId: build_item_destroy - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/line/: - get: - operationId: build_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: allocations - schema: - type: boolean - default: false - description: Include allocation details showing which stock items are allocated - to this build line. - - in: query - name: assembly - schema: - type: boolean - description: Assembly - - in: query - name: assembly_detail - schema: - type: boolean - default: false - description: Include brief details of the assembly (parent part) related to - the BOM item in this build line. - - in: query - name: available - schema: - type: boolean - description: Available - - in: query - name: bom_item - schema: - type: integer - - in: query - name: bom_item_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - in: query - name: build - schema: - type: integer - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: query - name: consumable - schema: - type: boolean - description: Consumable - - in: query - name: consumed - schema: - type: boolean - description: Consumed - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: on_order - schema: - type: boolean - description: On Order - - in: query - name: optional - schema: - type: boolean - description: Optional - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - allocated - - -allocated - - category - - -category - - consumed - - -consumed - - reference - - -reference - - quantity - - -quantity - - consumable - - -consumable - - optional - - -optional - - unit_quantity - - -unit_quantity - - available_stock - - -available_stock - - trackable - - -trackable - - allow_variants - - -allow_variants - - inherited - - -inherited - - on_order - - -on_order - - scheduled_to_build - - -scheduled_to_build - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the specific part being built - or consumed in this build line. - - name: search - required: false - in: query - description: 'A search term. Searched fields: bom_item__reference, bom_item__sub_part__IPN, - bom_item__sub_part__description, bom_item__sub_part__name.' - schema: - type: string - - in: query - name: testable - schema: - type: boolean - description: Testable - - in: query - name: tracked - schema: - type: boolean - description: Tracked - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildLineList' - description: '' - post: - operationId: build_line_create - description: API endpoint for accessing a list of BuildLine objects. - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - /api/build/line/{id}/: - get: - operationId: build_line_retrieve - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: query - name: allocations - schema: - type: boolean - default: false - description: Include allocation details showing which stock items are allocated - to this build line. - - in: query - name: assembly_detail - schema: - type: boolean - default: false - description: Include brief details of the assembly (parent part) related to - the BOM item in this build line. - - in: query - name: bom_item_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the specific part being built - or consumed in this build line. - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - put: - operationId: build_line_update - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - patch: - operationId: build_line_partial_update - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - delete: - operationId: build_line_destroy - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/status/: - get: - operationId: build_status_retrieve - description: Retrieve information about a specific status code - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/company/: - get: - operationId: company_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: is_customer - schema: - type: boolean - - in: query - name: is_manufacturer - schema: - type: boolean - - in: query - name: is_supplier - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - active - - -active - - name - - -name - - parts_supplied - - -parts_supplied - - parts_manufactured - - -parts_manufactured - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, tax_id, website.' - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCompanyList' - description: '' - post: - operationId: company_create - description: |- - API endpoint for accessing a list of Company objects. - - Provides two methods: - - - GET: Return list of objects - - POST: Create a new Company object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Company' - multipart/form-data: - schema: - $ref: '#/components/schemas/Company' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - /api/company/{id}/: - get: - operationId: company_retrieve - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - put: - operationId: company_update - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Company' - multipart/form-data: - schema: - $ref: '#/components/schemas/Company' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - patch: - operationId: company_partial_update - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCompany' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCompany' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCompany' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - delete: - operationId: company_destroy - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/address/: - get: - operationId: company_address_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: company - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - title - - -title - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedAddressList' - description: '' - post: - operationId: company_address_create - description: API endpoint for list view of Address model. - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Address' - multipart/form-data: - schema: - $ref: '#/components/schemas/Address' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - delete: - operationId: company_address_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/address/{id}/: - get: - operationId: company_address_retrieve - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - put: - operationId: company_address_update - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Address' - multipart/form-data: - schema: - $ref: '#/components/schemas/Address' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - patch: - operationId: company_address_partial_update - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedAddress' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAddress' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAddress' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - delete: - operationId: company_address_destroy - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/contact/: - get: - operationId: company_contact_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: company - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: company__name, name.' - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedContactList' - description: '' - post: - operationId: company_contact_create - description: API endpoint for list view of Company model. - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Contact' - multipart/form-data: - schema: - $ref: '#/components/schemas/Contact' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - delete: - operationId: company_contact_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/contact/{id}/: - get: - operationId: company_contact_retrieve - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - put: - operationId: company_contact_update - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Contact' - multipart/form-data: - schema: - $ref: '#/components/schemas/Contact' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - patch: - operationId: company_contact_partial_update - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedContact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedContact' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedContact' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - delete: - operationId: company_contact_destroy - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/part/: - get: - operationId: company_part_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: MPN - schema: - type: string - description: Manufacturer Part Number - - in: query - name: SKU - schema: - type: string - - in: query - name: active - schema: - type: boolean - description: Supplier Part is Active - - in: query - name: company - schema: - type: integer - description: Company - - in: query - name: has_stock - schema: - type: boolean - description: Has Stock - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: manufacturer - schema: - type: integer - description: Manufacturer - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - in: query - name: manufacturer_part - schema: - type: integer - - in: query - name: manufacturer_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked ManufacturerPart - in the response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - supplier - - -supplier - - manufacturer - - -manufacturer - - active - - -active - - primary - - -primary - - IPN - - -IPN - - MPN - - -MPN - - SKU - - -SKU - - packaging - - -packaging - - pack_quantity - - -pack_quantity - - in_stock - - -in_stock - - updated - - -updated - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Internal Part is Active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - in: query - name: primary - schema: - type: boolean - description: Primary Supplier Part - - name: search - required: false - in: query - description: 'A search term. Searched fields: SKU, description, manufacturer_part__MPN, - manufacturer_part__manufacturer__name, part__IPN, part__description, part__keywords, - part__name, supplier__name, tags__name, tags__slug.' - schema: - type: string - - in: query - name: supplier - schema: - type: integer - - in: query - name: supplier_active - schema: - type: boolean - description: Supplier is Active - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSupplierPartList' - description: '' - post: - operationId: company_part_create - description: |- - API endpoint for list view of SupplierPart object. - - - GET: Return list of SupplierPart objects - - POST: Create a new SupplierPart object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - delete: - operationId: company_part_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/part/{id}/: - get: - operationId: company_part_retrieve - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - in: query - name: manufacturer_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked ManufacturerPart - in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - put: - operationId: company_part_update - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - patch: - operationId: company_part_partial_update - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - delete: - operationId: company_part_destroy - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/company/part/manufacturer/: - get: - operationId: company_part_manufacturer_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: MPN - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: manufacturer - schema: - type: integer - - in: query - name: manufacturer_active - schema: - type: boolean - description: Manufacturer is Active - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - MPN - - -MPN - - manufacturer - - -manufacturer - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Part is Active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - name: search - required: false - in: query - description: 'A search term. Searched fields: MPN, description, manufacturer__name, - part__IPN, part__description, part__name, tags__name, tags__slug.' - schema: - type: string - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedManufacturerPartList' - description: '' - post: - operationId: company_part_manufacturer_create - description: |- - API endpoint for list view of ManufacturerPart object. - - - GET: Return list of ManufacturerPart objects - - POST: Create a new ManufacturerPart object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/ManufacturerPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - delete: - operationId: company_part_manufacturer_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/part/manufacturer/{id}/: - get: - operationId: company_part_manufacturer_retrieve - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - put: - operationId: company_part_manufacturer_update - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/ManufacturerPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - patch: - operationId: company_part_manufacturer_partial_update - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - delete: - operationId: company_part_manufacturer_destroy - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/company/price-break/: - get: - operationId: company_price_break_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: base_part - schema: - type: integer - description: Base Part - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - supplier - - -supplier - - SKU - - -SKU - - price - - -price - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: quantity - schema: - type: number - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__SKU, part__supplier__name.' - schema: - type: string - - in: query - name: supplier - schema: - type: integer - description: Supplier - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSupplierPriceBreakList' - description: '' - post: - operationId: company_price_break_create - description: |- - API endpoint for list view of SupplierPriceBreak object. - - - GET: Retrieve list of SupplierPriceBreak objects - - POST: Create a new SupplierPriceBreak object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - /api/company/price-break/{id}/: - get: - operationId: company_price_break_retrieve - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - put: - operationId: company_price_break_update - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - patch: - operationId: company_price_break_partial_update - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - delete: - operationId: company_price_break_destroy - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/contenttype/: - get: - operationId: contenttype_list - description: List view for ContentTypes. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: app_label, model.' - schema: - type: string - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedContentTypeList' - description: '' - /api/contenttype/{id}/: - get: - operationId: contenttype_retrieve - description: Detail view for a ContentType model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ContentType' - description: '' - /api/contenttype/model/{model}/: - get: - operationId: contenttype_retrieve_model - description: Detail view for a ContentType model. - parameters: - - in: path - name: model - schema: - type: string - required: true - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ContentType' - description: '' - /api/currency/exchange/: - get: - operationId: currency_exchange_retrieve - description: Return information on available currency conversions. - tags: - - currency - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CurrencyExchange' - description: '' - /api/currency/refresh/: - post: - operationId: currency_refresh_create - description: Performing a POST request will update currency exchange rates. - tags: - - currency - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - description: No response body - /api/data-output/: - get: - operationId: data_output_list - description: Mixin class for DataOutput endpoints. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - user - - -user - - plugin - - -plugin - - output_type - - -output_type - - created - - -created - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataOutputList' - description: '' - delete: - operationId: data_output_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/data-output/{id}/: - get: - operationId: data_output_retrieve - description: Mixin class for DataOutput endpoints. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this data output. - required: true - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataOutput' - description: '' - delete: - operationId: data_output_destroy - description: Mixin class for DataOutput endpoints. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this data output. - required: true - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/email/generate/: - post: - operationId: email_generate_create - description: Get the token for the current user or fail. - tags: - - email - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - multipart/form-data: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - description: '' - /api/error-report/: - get: - operationId: error_report_list - description: List view for server error messages. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - when - - -when - - info - - -info - - name: search - required: false - in: query - description: 'A search term. Searched fields: data, info.' - schema: - type: string - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedErrorMessageList' - description: '' - delete: - operationId: error_report_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/error-report/{id}/: - get: - operationId: error_report_retrieve - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - put: - operationId: error_report_update - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ErrorMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/ErrorMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - patch: - operationId: error_report_partial_update - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - delete: - operationId: error_report_destroy - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/flags/: - get: - operationId: flags_list - description: List view for feature flags. - tags: - - flags - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Flag' - description: '' - /api/flags/{key}/: - get: - operationId: flags_retrieve - description: Detail view for an individual feature flag. - parameters: - - in: path - name: key - schema: - type: string - required: true - tags: - - flags - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Flag' - description: '' - /api/generate/batch-code/: - post: - operationId: generate_batch_code_create - description: Generate a new batch code. - tags: - - generate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - description: '' - /api/generate/serial-number/: - post: - operationId: generate_serial_number_create - description: Generate a new serial number. - tags: - - generate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - multipart/form-data: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - description: '' - /api/generic/status/: - get: - operationId: generic_status_retrieve_all - description: Perform a GET request to learn information about status codes. - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: object - additionalProperties: {} - description: Mapping from class name to GenericStateClass data - /api/generic/status/{statusmodel}/: - get: - operationId: generic_status_retrieve - description: Retrieve information about a specific status code - parameters: - - in: path - name: statusmodel - schema: - type: string - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/generic/status/custom/: - get: - operationId: generic_status_custom_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - key - - -key - - in: query - name: reference_status - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, label, name, reference_status.' - schema: - type: string - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCustomStateList' - description: '' - post: - operationId: generic_status_custom_create - description: List view for all custom states. - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomState' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - /api/generic/status/custom/{id}/: - get: - operationId: generic_status_custom_retrieve - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - put: - operationId: generic_status_custom_update - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomState' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - patch: - operationId: generic_status_custom_partial_update - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCustomState' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - delete: - operationId: generic_status_custom_destroy - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/icons/: - get: - operationId: icons_list - description: List view for available icon packages. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - icons - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedIconPackageList' - description: '' - /api/importer/column-mapping/: - get: - operationId: importer_column_mapping_list - description: API endpoint for accessing a list of DataImportColumnMap objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: session - schema: - type: integer - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportColumnMapList' - description: '' - /api/importer/column-mapping/{id}/: - get: - operationId: importer_column_mapping_retrieve - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - put: - operationId: importer_column_mapping_update - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - patch: - operationId: importer_column_mapping_partial_update - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - /api/importer/models/: - get: - operationId: importer_models_list - description: Return a list of models available for import. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/DataImporterModel' - description: '' - /api/importer/row/: - get: - operationId: importer_row_list - description: API endpoint for accessing a list of DataImportRow objects. - parameters: - - in: query - name: complete - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - row_index - - -row_index - - valid - - -valid - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: session - schema: - type: integer - - in: query - name: valid - schema: - type: boolean - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportRowList' - description: '' - delete: - operationId: importer_row_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/importer/row/{id}/: - get: - operationId: importer_row_retrieve - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - put: - operationId: importer_row_update - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportRow' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - patch: - operationId: importer_row_partial_update - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - delete: - operationId: importer_row_destroy - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/importer/session/: - get: - operationId: importer_session_list - description: API endpoint for accessing a list of DataImportSession objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - timestamp - - -timestamp - - status - - -status - - model_type - - -model_type - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: status - schema: - type: integer - enum: - - 0 - - 10 - - 20 - - 30 - - 40 - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - - in: query - name: user - schema: - type: integer - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportSessionList' - description: '' - post: - operationId: importer_session_create - description: API endpoint for accessing a list of DataImportSession objects. - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportSession' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - delete: - operationId: importer_session_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/importer/session/{id}/: - get: - operationId: importer_session_retrieve - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - put: - operationId: importer_session_update - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportSession' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - patch: - operationId: importer_session_partial_update - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - delete: - operationId: importer_session_destroy - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '204': - description: No response body - /api/importer/session/{id}/accept_fields/: - post: - operationId: importer_session_accept_fields_create - description: Accept the field mapping for a DataImportSession. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - /api/importer/session/{id}/accept_rows/: - post: - operationId: importer_session_accept_rows_create - description: API endpoint to accept the rows for a DataImportSession. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - description: '' - /api/label/print/: - post: - operationId: label_print_create - description: POST action for printing labels. - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelPrint' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelPrint' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelPrint' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelPrint' - description: '' - /api/label/template/: - get: - operationId: label_template_list - description: API endpoint for viewing list of LabelTemplate objects. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: items - schema: - type: string - description: Items - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - enum: - - build - - buildline - - company - - part - - purchaseorder - - returnorder - - salesorder - - salesordershipment - - stockitem - - stocklocation - - transferorder - description: |- - Model Type - - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLabelTemplateList' - description: '' - post: - operationId: label_template_create - description: API endpoint for viewing list of LabelTemplate objects. - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - /api/label/template/{id}/: - get: - operationId: label_template_retrieve - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - put: - operationId: label_template_update - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - patch: - operationId: label_template_partial_update - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - delete: - operationId: label_template_destroy - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/license/: - get: - operationId: license_retrieve - description: Return information about the InvenTree server. - tags: - - license - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseView' - description: '' - /api/locate/: - post: - operationId: locate_create - description: Identify or 'locate' a stock item or location with a plugin. - tags: - - locate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LocatePlugin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LocatePlugin' - multipart/form-data: - schema: - $ref: '#/components/schemas/LocatePlugin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LocatePlugin' - description: '' - /api/machine/: - get: - operationId: machine_list - description: |- - API endpoint for list of Machine objects. - - - GET: Return a list of all Machine objects - - POST: create a MachineConfig - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: driver - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: machine_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - machine_type - - -machine_type - - driver - - -driver - - active - - -active - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedMachineConfigList' - description: '' - post: - operationId: machine_create - description: |- - API endpoint for list of Machine objects. - - - GET: Return a list of all Machine objects - - POST: create a MachineConfig - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:admin - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - description: '' - /api/machine/{id}/: - get: - operationId: machine_retrieve - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - put: - operationId: machine_update - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineConfig' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineConfig' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - patch: - operationId: machine_partial_update - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - delete: - operationId: machine_destroy - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:admin - responses: - '204': - description: No response body - /api/machine/{id}/restart/: - post: - operationId: machine_restart_create - description: Restart machine by pk. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineRestart' - description: '' - /api/machine/{id}/settings/: - get: - operationId: machine_settings_list - description: Return all settings for a machine config. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineSetting' - description: '' - /api/machine/{id}/settings/{config_type}/{key}/: - get: - operationId: machine_settings_retrieve - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - put: - operationId: machine_settings_update - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - patch: - operationId: machine_settings_partial_update - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - /api/machine/drivers/: - get: - operationId: machine_drivers_list - description: List all machine drivers. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineDriver' - description: '' - /api/machine/status/: - get: - operationId: machine_status_retrieve - description: Provide status data for the machine registry. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineRegistryStatus' - description: '' - /api/machine/types/: - get: - operationId: machine_types_list - description: List of all machine types. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineType' - description: '' - /api/metadata/{model}/{lookup_field}/{lookup_value}/: - get: - operationId: metadata_retrieve - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - - r:view:part_category - - r:view:part - - r:view:stock_location - - r:view:stock - - r:view:bom - - r:view:build - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - - r:view:transfer_order - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - put: - operationId: metadata_update - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Metadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/Metadata' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - patch: - operationId: metadata_partial_update - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMetadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMetadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMetadata' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - /api/metadata/{model}/{id}/: - get: - operationId: metadata_pk_retrieve - description: Perform a GET request to retrieve metadata for the given object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - - r:view:part_category - - r:view:part - - r:view:stock_location - - r:view:stock - - r:view:bom - - r:view:build - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - - r:view:transfer_order - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - put: - operationId: metadata_pk_update - description: Perform a PUT request to update metadata for the given object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Metadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/Metadata' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - patch: - operationId: metadata_pk_partial_update - description: Perform a PATCH request to partially update metadata for the given - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMetadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMetadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMetadata' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - /api/news/: - get: - operationId: news_list - description: Newsfeed from the official inventree.org website. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - published - - -published - - author - - -author - - read - - -read - - in: query - name: read - schema: - type: boolean - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNewsFeedEntryList' - description: '' - delete: - operationId: news_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/news/{id}/: - get: - operationId: news_retrieve - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - put: - operationId: news_update - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - patch: - operationId: news_partial_update - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - delete: - operationId: news_destroy - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/notes-image-upload/: - get: - operationId: notes_image_upload_list - description: List view for all notes images. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: model_id, model_type, user.' - schema: - type: string - tags: - - notes-image-upload - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNotesImageList' - description: '' - post: - operationId: notes_image_upload_create - description: List view for all notes images. - tags: - - notes-image-upload - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotesImage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotesImage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotesImage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/NotesImage' - description: '' - /api/notifications/: - get: - operationId: notifications_list - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: query - name: category - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - category - - -category - - name - - -name - - read - - -read - - creation - - -creation - - in: query - name: read - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: message, name.' - schema: - type: string - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNotificationMessageList' - description: '' - delete: - operationId: notifications_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/notifications/{id}/: - get: - operationId: notifications_retrieve - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - put: - operationId: notifications_update - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotificationMessage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - patch: - operationId: notifications_partial_update - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - delete: - operationId: notifications_destroy - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/notifications/readall/: - post: - operationId: notifications_readall_create - description: Set all messages for the current user as read. - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotificationMessage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - /api/order/po/: - get: - operationId: order_po_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: external_build - schema: - type: integer - description: External Build Order - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - supplier__name - - -supplier__name - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - line_items - - -line_items - - status - - -status - - responsible - - -responsible - - total_price - - -total_price - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, project_code__code, - reference, supplier__name, supplier_reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: supplier - schema: - type: integer - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier in the response - - in: query - name: supplier_part - schema: - type: integer - description: Supplier Part - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderList' - description: '' - post: - operationId: order_po_create - description: |- - API endpoint for accessing a list of PurchaseOrder objects. - - - GET: Return list of PurchaseOrder objects (with filters) - - POST: Create a new PurchaseOrder object - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - /api/order/po-extra-line/: - get: - operationId: order_po_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderExtraLineList' - description: '' - post: - operationId: order_po_extra_line_create - description: API endpoint for accessing a list of PurchaseOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - /api/order/po-extra-line/{id}/: - get: - operationId: order_po_extra_line_retrieve - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - put: - operationId: order_po_extra_line_update - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - patch: - operationId: order_po_extra_line_partial_update - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - delete: - operationId: order_po_extra_line_destroy - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po-line/: - get: - operationId: order_po_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: base_part - schema: - type: integer - description: Internal Part - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - MPN - - -MPN - - part_name - - -part_name - - purchase_price - - -purchase_price - - quantity - - -quantity - - received - - -received - - reference - - -reference - - SKU - - -SKU - - IPN - - -IPN - - total_price - - -total_price - - target_date - - -target_date - - order - - -order - - status - - -status - - complete_date - - -complete_date - - line - - -line - - in: query - name: part - schema: - type: integer - description: Supplier Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: pending - schema: - type: boolean - description: Order Pending - - in: query - name: received - schema: - type: boolean - description: Items Received - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__SKU, part__manufacturer_part__MPN, - part__part__description, part__part__name, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderLineItemList' - description: '' - post: - operationId: order_po_line_create - description: |- - API endpoint for accessing a list of PurchaseOrderLineItem objects. - - - GET: Return a list of PurchaseOrder Line Item objects - - POST: Create a new PurchaseOrderLineItem object - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - delete: - operationId: order_po_line_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/order/po-line/{id}/: - get: - operationId: order_po_line_retrieve - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - put: - operationId: order_po_line_update - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - patch: - operationId: order_po_line_partial_update - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - delete: - operationId: order_po_line_destroy - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po/{id}/: - get: - operationId: order_po_retrieve - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - put: - operationId: order_po_update - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - patch: - operationId: order_po_partial_update - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - delete: - operationId: order_po_destroy - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po/{id}/cancel/: - post: - operationId: order_po_cancel_create - description: |- - API endpoint to 'cancel' a purchase order. - - The purchase order must be in a state which can be cancelled - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/complete/: - post: - operationId: order_po_complete_create - description: API endpoint to 'complete' a purchase order. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - description: '' - /api/order/po/{id}/hold/: - post: - operationId: order_po_hold_create - description: API endpoint to place a PurchaseOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/issue/: - post: - operationId: order_po_issue_create - description: API endpoint to 'issue' (place) a PurchaseOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/receive/: - post: - operationId: order_po_receive_create - description: |- - API endpoint to receive stock items against a PurchaseOrder. - - - The purchase order is specified in the URL. - - Items to receive are specified as a list called "items" with the following options: - - line_item: pk of the PO Line item - - supplier_part: pk value of the supplier part - - quantity: quantity to receive - - status: stock item status - - expiry_date: stock item expiry date (optional) - - location: destination for stock item (optional) - - batch_code: the batch code for this stock item - - serial_numbers: serial numbers for this stock item - - A global location must also be specified. This is used when no locations are specified for items, and no location is given in the PO line item - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/order/po/status/: - get: - operationId: order_po_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/repair/: - get: - operationId: order_repair_list - description: API endpoint for accessing a list of RepairOrder objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderList' - description: '' - post: - operationId: order_repair_create - description: API endpoint for accessing a list of RepairOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - /api/order/repair-allocation/: - get: - operationId: order_repair_allocation_list - description: API endpoint for accessing a list of RepairOrderAllocation objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderAllocationList' - description: '' - post: - operationId: order_repair_allocation_create - description: API endpoint for accessing a list of RepairOrderAllocation objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - /api/order/repair-allocation/{id}/: - get: - operationId: order_repair_allocation_retrieve - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - put: - operationId: order_repair_allocation_update - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - patch: - operationId: order_repair_allocation_partial_update - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - delete: - operationId: order_repair_allocation_destroy - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/repair-line/: - get: - operationId: order_repair_line_list - description: API endpoint for accessing a list of RepairOrderLineItem objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderLineItemList' - description: '' - post: - operationId: order_repair_line_create - description: API endpoint for accessing a list of RepairOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - /api/order/repair-line/{id}/: - get: - operationId: order_repair_line_retrieve - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - put: - operationId: order_repair_line_update - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - patch: - operationId: order_repair_line_partial_update - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - delete: - operationId: order_repair_line_destroy - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/repair/{id}/: - get: - operationId: order_repair_retrieve - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - put: - operationId: order_repair_update - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - patch: - operationId: order_repair_partial_update - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - delete: - operationId: order_repair_destroy - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/ro/: - get: - operationId: order_ro_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: customer - schema: - type: integer - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - customer__name - - -customer__name - - customer_reference - - -customer_reference - - line_items - - -line_items - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: customer__name, customer_reference, - description, project_code__code, reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderList' - description: '' - post: - operationId: order_ro_create - description: API endpoint for accessing a list of ReturnOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - /api/order/ro-extra-line/: - get: - operationId: order_ro_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderExtraLineList' - description: '' - post: - operationId: order_ro_extra_line_create - description: API endpoint for accessing a list of ReturnOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - /api/order/ro-extra-line/{id}/: - get: - operationId: order_ro_extra_line_retrieve - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - put: - operationId: order_ro_extra_line_update - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - patch: - operationId: order_ro_extra_line_partial_update - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - delete: - operationId: order_ro_extra_line_destroy - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro-line/: - get: - operationId: order_ro_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: true - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - stock - - -stock - - reference - - -reference - - target_date - - -target_date - - received_date - - -received_date - - line - - -line - - in: query - name: outcome - schema: - type: integer - description: outcome - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: received - schema: - type: boolean - description: received - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__part__description, item__part__name, - item__serial, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderLineItemList' - description: '' - post: - operationId: order_ro_line_create - description: API endpoint for accessing a list of ReturnOrderLineItemList objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - /api/order/ro-line/{id}/: - get: - operationId: order_ro_line_retrieve - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: item_detail - schema: - type: boolean - default: true - description: Include detailed information about the item in the response - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - put: - operationId: order_ro_line_update - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - patch: - operationId: order_ro_line_partial_update - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - delete: - operationId: order_ro_line_destroy - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro-line/status/: - get: - operationId: order_ro_line_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/ro/{id}/: - get: - operationId: order_ro_retrieve - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - put: - operationId: order_ro_update - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - patch: - operationId: order_ro_partial_update - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - delete: - operationId: order_ro_destroy - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro/{id}/cancel/: - post: - operationId: order_ro_cancel_create - description: API endpoint to cancel a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/complete/: - post: - operationId: order_ro_complete_create - description: API endpoint to complete a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/hold/: - post: - operationId: order_ro_hold_create - description: API endpoint to hold a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/issue/: - post: - operationId: order_ro_issue_create - description: API endpoint to issue (place) a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/receive/: - post: - operationId: order_ro_receive_create - description: API endpoint to receive items against a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - description: '' - /api/order/ro/status/: - get: - operationId: order_ro_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/so/: - get: - operationId: order_so_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: customer - schema: - type: integer - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - customer__name - - -customer__name - - customer_reference - - -customer_reference - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - line_items - - -line_items - - shipment_date - - -shipment_date - - total_price - - -total_price - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: customer__name, customer_reference, - description, project_code__code, reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderList' - description: '' - post: - operationId: order_so_create - description: |- - API endpoint for accessing a list of SalesOrder objects. - - - GET: Return list of SalesOrder objects (with filters) - - POST: Create a new SalesOrder - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - /api/order/so-allocation/: - get: - operationId: order_so_allocation_list - description: API endpoint for listing SalesOrderAllocation objects. - parameters: - - in: query - name: assigned_to_shipment - schema: - type: boolean - description: Has Shipment - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: line - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - part - - -part - - serial - - -serial - - IPN - - -IPN - - batch - - -batch - - location - - -location - - order - - -order - - shipment_date - - -shipment_date - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__batch, item__part__IPN, - item__part__name, item__serial.' - schema: - type: string - - in: query - name: shipment - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderAllocationList' - description: '' - put: - operationId: order_so_allocation_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - patch: - operationId: order_so_allocation_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - delete: - operationId: order_so_allocation_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/order/so-allocation/{id}/: - get: - operationId: order_so_allocation_retrieve - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - put: - operationId: order_so_allocation_update - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - patch: - operationId: order_so_allocation_partial_update - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - delete: - operationId: order_so_allocation_destroy - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so-extra-line/: - get: - operationId: order_so_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderExtraLineList' - description: '' - post: - operationId: order_so_extra_line_create - description: API endpoint for accessing a list of SalesOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - /api/order/so-extra-line/{id}/: - get: - operationId: order_so_extra_line_retrieve - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - put: - operationId: order_so_extra_line_update - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - patch: - operationId: order_so_extra_line_partial_update - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - delete: - operationId: order_so_extra_line_destroy - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so-line/: - get: - operationId: order_so_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: completed - schema: - type: boolean - description: Completed - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - customer - - -customer - - order - - -order - - part - - -part - - IPN - - -IPN - - part__name - - -part__name - - quantity - - -quantity - - allocated - - -allocated - - shipped - - -shipped - - reference - - -reference - - sale_price - - -sale_price - - target_date - - -target_date - - line - - -line - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__name, quantity, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderLineItemList' - description: '' - post: - operationId: order_so_line_create - description: API endpoint for accessing a list of SalesOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - /api/order/so-line/{id}/: - get: - operationId: order_so_line_retrieve - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - put: - operationId: order_so_line_update - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - patch: - operationId: order_so_line_partial_update - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - delete: - operationId: order_so_line_destroy - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/{id}/: - get: - operationId: order_so_retrieve - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - put: - operationId: order_so_update - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - patch: - operationId: order_so_partial_update - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - delete: - operationId: order_so_destroy - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/{id}/allocate/: - post: - operationId: order_so_allocate_create - description: |- - API endpoint to allocate stock items against a SalesOrder. - - - The SalesOrder is specified in the URL - - See the SalesOrderShipmentAllocationSerializer class - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - description: '' - /api/order/so/{id}/allocate-serials/: - post: - operationId: order_so_allocate_serials_create - description: API endpoint to allocation stock items against a SalesOrder, by - specifying serial numbers. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - description: '' - /api/order/so/{id}/auto-allocate/: - post: - operationId: order_so_auto_allocate_create - description: Validate parameters and offload auto-allocation to a background - task. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/order/so/{id}/cancel/: - post: - operationId: order_so_cancel_create - description: API endpoint to cancel a SalesOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/{id}/complete/: - post: - operationId: order_so_complete_create - description: API endpoint for manually marking a SalesOrder as "complete". - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - description: '' - /api/order/so/{id}/hold/: - post: - operationId: order_so_hold_create - description: API endpoint to place a SalesOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/{id}/issue/: - post: - operationId: order_so_issue_create - description: API endpoint to issue a SalesOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/shipment/: - get: - operationId: order_so_shipment_list - description: API list endpoint for SalesOrderShipment model. - parameters: - - in: query - name: checked - schema: - type: boolean - description: checked - - in: query - name: delivered - schema: - type: boolean - description: delivered - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: number - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - reference - - -reference - - delivery_date - - -delivery_date - - shipment_date - - -shipment_date - - allocated_items - - -allocated_items - - name: search - required: false - in: query - description: 'A search term. Searched fields: invoice_number, order__reference, - reference, tracking_number.' - schema: - type: string - - in: query - name: shipped - schema: - type: boolean - description: shipped - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderShipmentList' - description: '' - post: - operationId: order_so_shipment_create - description: API list endpoint for SalesOrderShipment model. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - /api/order/so/shipment/{id}/: - get: - operationId: order_so_shipment_retrieve - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - put: - operationId: order_so_shipment_update - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - patch: - operationId: order_so_shipment_partial_update - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - delete: - operationId: order_so_shipment_destroy - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/shipment/{id}/ship/: - post: - operationId: order_so_shipment_ship_create - description: Override the post method to handle shipment completion. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/order/so/status/: - get: - operationId: order_so_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/transfer-order/: - get: - operationId: order_transfer_order_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - line_items - - -line_items - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - project_code - - -project_code - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, project_code__code, - reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderList' - description: '' - post: - operationId: order_transfer_order_create - description: API endpoint for accessing a list of TransferOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:transfer_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - /api/order/transfer-order-allocation/: - get: - operationId: order_transfer_order_allocation_list - description: API endpoint for listing TransferOrderAllocation objects. - parameters: - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: line - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - part - - -part - - serial - - -serial - - IPN - - -IPN - - batch - - -batch - - location - - -location - - order - - -order - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__batch, item__part__IPN, - item__part__name, item__serial.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderAllocationList' - description: '' - put: - operationId: order_transfer_order_allocation_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - patch: - operationId: order_transfer_order_allocation_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - /api/order/transfer-order-allocation/{id}/: - get: - operationId: order_transfer_order_allocation_retrieve - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - put: - operationId: order_transfer_order_allocation_update - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - patch: - operationId: order_transfer_order_allocation_partial_update - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - delete: - operationId: order_transfer_order_allocation_destroy - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order-line/: - get: - operationId: order_transfer_order_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: completed - schema: - type: boolean - description: Completed - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - order - - -order - - part - - -part - - part__name - - -part__name - - quantity - - -quantity - - allocated - - -allocated - - transferred - - -transferred - - reference - - -reference - - target_date - - -target_date - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__name, quantity, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderLineItemList' - description: '' - post: - operationId: order_transfer_order_line_create - description: API endpoint for accessing a list of TransferOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:transfer_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - /api/order/transfer-order-line/{id}/: - get: - operationId: order_transfer_order_line_retrieve - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - put: - operationId: order_transfer_order_line_update - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - patch: - operationId: order_transfer_order_line_partial_update - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - delete: - operationId: order_transfer_order_line_destroy - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order/{id}/: - get: - operationId: order_transfer_order_retrieve - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - put: - operationId: order_transfer_order_update - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - patch: - operationId: order_transfer_order_partial_update - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - delete: - operationId: order_transfer_order_destroy - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order/{id}/allocate/: - post: - operationId: order_transfer_order_allocate_create - description: |- - API endpoint to allocate stock items against a TransferOrder. - - - The TransferOrder is specified in the URL - - See the TransferOrderAllocationSerializer class - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - description: '' - /api/order/transfer-order/{id}/allocate-serials/: - post: - operationId: order_transfer_order_allocate_serials_create - description: API endpoint to allocation stock items against a TransferOrder, - by specifying serial numbers. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - description: '' - /api/order/transfer-order/{id}/cancel/: - post: - operationId: order_transfer_order_cancel_create - description: API endpoint to cancel a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/transfer-order/{id}/complete/: - post: - operationId: order_transfer_order_complete_create - description: API endpoint to complete a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - description: '' - /api/order/transfer-order/{id}/hold/: - post: - operationId: order_transfer_order_hold_create - description: API endpoint to hold a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/transfer-order/{id}/issue/: - post: - operationId: order_transfer_order_issue_create - description: API endpoint to issue a Transfer Order. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/parameter/: - get: - operationId: parameter_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: enabled - schema: - type: boolean - description: Template Enabled - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_id - schema: - type: integer - - in: query - name: model_type - schema: - type: string - description: Model Type - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - data - - -data - - units - - -units - - template - - -template - - updated - - -updated - - updated_by - - -updated_by - - name: search - required: false - in: query - description: 'A search term. Searched fields: data, template__description, - template__name, template__units.' - schema: - type: string - - in: query - name: template - schema: - type: integer - - in: query - name: updated_by - schema: - type: integer - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedParameterList' - description: '' - post: - operationId: parameter_create - description: List API endpoint for Parameter objects. - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Parameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/Parameter' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - delete: - operationId: parameter_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/parameter/{id}/: - get: - operationId: parameter_retrieve - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - put: - operationId: parameter_update - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Parameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/Parameter' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - patch: - operationId: parameter_partial_update - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedParameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedParameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedParameter' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - delete: - operationId: parameter_destroy - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/parameter/template/: - get: - operationId: parameter_template_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: checkbox - schema: - type: boolean - - in: query - name: enabled - schema: - type: boolean - - in: query - name: exists_for_model - schema: - type: string - description: Exists For Model - - in: query - name: exists_for_model_id - schema: - type: number - description: Exists For Model ID - - in: query - name: exists_for_related_model - schema: - type: string - description: Exists For Related Model - - in: query - name: exists_for_related_model_id - schema: - type: number - description: Exists For Model ID - - in: query - name: for_model - schema: - type: string - description: For Model - - in: query - name: has_choices - schema: - type: boolean - description: Has Choice - - in: query - name: has_units - schema: - type: boolean - description: Has Units - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - description: Model Type - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - units - - -units - - checkbox - - -checkbox - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - - in: query - name: units - schema: - type: string - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedParameterTemplateList' - description: '' - post: - operationId: parameter_template_create - description: List view for ParameterTemplate objects. - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - /api/parameter/template/{id}/: - get: - operationId: parameter_template_retrieve - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - put: - operationId: parameter_template_update - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - patch: - operationId: parameter_template_partial_update - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - delete: - operationId: parameter_template_destroy - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/part/: - get: - operationId: part_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: IPN - schema: - type: string - description: Filter by exact IPN (internal part number) - - in: query - name: IPN_regex - schema: - type: string - description: Filter by regex on IPN (internal part number) - - in: query - name: active - schema: - type: boolean - - in: query - name: ancestor - schema: - type: integer - - in: query - name: assembly - schema: - type: boolean - - in: query - name: bom_valid - schema: - type: boolean - description: BOM Valid - - in: query - name: cascade - schema: - type: boolean - description: If true, include items in child categories of the given category - - in: query - name: category - schema: - type: integer - description: Filter by numeric category ID or the literal 'null' - - in: query - name: category_detail - schema: - type: boolean - default: false - - in: query - name: component - schema: - type: boolean - - in: query - name: convert_from - schema: - type: integer - - in: query - name: created_after - schema: - type: string - format: date - description: Updated after - - in: query - name: created_before - schema: - type: string - format: date - description: Updated before - - in: query - name: default_location - schema: - type: integer - description: Default Location - - in: query - name: depleted_stock - schema: - type: boolean - description: Depleted Stock - - in: query - name: exclude_id - schema: - type: array - items: - type: integer - description: Exclude parts with these IDs (comma-separated) - explode: false - style: form - - in: query - name: exclude_related - schema: - type: number - description: Exclude parts related to this part ID - - in: query - name: exclude_tree - schema: - type: integer - - in: query - name: has_ipn - schema: - type: boolean - description: Has IPN - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: has_revisions - schema: - type: boolean - description: Has Revisions - - in: query - name: has_stock - schema: - type: boolean - description: Has stock - - in: query - name: has_units - schema: - type: boolean - description: Has units - - in: query - name: high_stock - schema: - type: boolean - description: High stock - - in: query - name: in_bom_for - schema: - type: integer - - in: query - name: is_revision - schema: - type: boolean - description: Is Revision - - in: query - name: is_template - schema: - type: boolean - - in: query - name: is_variant - schema: - type: boolean - description: Is Variant - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: locked - schema: - type: boolean - - in: query - name: low_stock - schema: - type: boolean - description: Low stock - - in: query - name: name_regex - schema: - type: string - description: Filter by name (regex) - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - id - - -id - - name - - -name - - creation_date - - -creation_date - - IPN - - -IPN - - in_stock - - -in_stock - - total_in_stock - - -total_in_stock - - unallocated_stock - - -unallocated_stock - - category - - -category - - default_location - - -default_location - - units - - -units - - pricing_min - - -pricing_min - - pricing_max - - -pricing_max - - pricing_updated - - -pricing_updated - - revision - - -revision - - revision_count - - -revision_count - - in: query - name: parameters - schema: - type: boolean - default: false - description: Include part parameters in response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: price_breaks - schema: - type: boolean - default: false - - in: query - name: purchaseable - schema: - type: boolean - - in: query - name: related - schema: - type: number - description: Show parts related to this part ID - - in: query - name: revision_of - schema: - type: integer - - in: query - name: salable - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: IPN, category__name, description, - keywords, manufacturer_parts__MPN, name, revision, supplier_parts__SKU, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: starred - schema: - type: boolean - description: Starred - - in: query - name: stock_to_build - schema: - type: boolean - description: Required for Build Order - - in: query - name: tags - schema: - type: boolean - default: false - - in: query - name: tags_name - schema: - type: string - - in: query - name: tags_slug - schema: - type: string - - in: query - name: testable - schema: - type: boolean - - in: query - name: trackable - schema: - type: boolean - - in: query - name: unallocated_stock - schema: - type: boolean - description: Unallocated stock - - in: query - name: variant_of - schema: - type: integer - description: Variant Of - - in: query - name: virtual - schema: - type: boolean - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartList' - description: '' - post: - operationId: part_create - description: API endpoint for accessing a list of Part objects, or creating - a new Part instance. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - put: - operationId: part_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - patch: - operationId: part_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - /api/part/{id}/: - get: - operationId: part_retrieve - description: API endpoint for detail view of a single Part object. - parameters: - - in: query - name: category_detail - schema: - type: boolean - default: false - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: parameters - schema: - type: boolean - default: false - description: Include part parameters in response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: price_breaks - schema: - type: boolean - default: false - - in: query - name: tags - schema: - type: boolean - default: false - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - put: - operationId: part_update - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - patch: - operationId: part_partial_update - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - delete: - operationId: part_destroy - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:part - responses: - '204': - description: No response body - /api/part/{id}/bom-copy/: - post: - operationId: part_bom_copy_create - description: API endpoint for duplicating a BOM. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartCopyBOM' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartCopyBOM' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartCopyBOM' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartCopyBOM' - description: '' - /api/part/{id}/bom-validate/: - get: - operationId: part_bom_validate_retrieve - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - put: - operationId: part_bom_validate_update - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartBomValidate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartBomValidate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - patch: - operationId: part_bom_validate_partial_update - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - /api/part/{id}/pricing/: - get: - operationId: part_pricing_retrieve - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - put: - operationId: part_pricing_update - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartPricing' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartPricing' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - patch: - operationId: part_pricing_partial_update - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - /api/part/{id}/requirements/: - get: - operationId: part_requirements_retrieve - description: |- - API endpoint detailing 'requirements' information for a particular part. - - This endpoint returns information on upcoming requirements for: - - - Sales Orders - - Build Orders - - Total requirements - - How many of this part can be assembled with available stock - - As this data is somewhat complex to calculate, is it not included in the default API - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRequirements' - description: '' - /api/part/{id}/serial-numbers/: - get: - operationId: part_serial_numbers_retrieve - description: API endpoint for returning extra serial number information about - a particular part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSerialNumber' - description: '' - /api/part/category/: - get: - operationId: part_category_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: cascade - schema: - type: boolean - description: Include sub-categories in filtered results - - in: query - name: depth - schema: - type: number - description: Filter by category depth - - in: query - name: exclude_tree - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - pathstring - - -pathstring - - level - - -level - - tree_id - - -tree_id - - lft - - -lft - - part_count - - -part_count - - in: query - name: parent - schema: - type: integer - description: Filter by parent category - - in: query - name: path_detail - schema: - type: boolean - default: false - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, pathstring.' - schema: - type: string - - in: query - name: starred - schema: - type: boolean - description: Filter by starred categories - - in: query - name: structural - schema: - type: boolean - - in: query - name: top_level - schema: - type: boolean - description: Filter by top-level categories - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryList' - description: '' - post: - operationId: part_category_create - description: |- - API endpoint for accessing a list of PartCategory objects. - - - GET: Return a list of PartCategory objects - - POST: Create a new PartCategory object - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:part_category - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - put: - operationId: part_category_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - patch: - operationId: part_category_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategory' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategory' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategory' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - /api/part/category/{id}/: - get: - operationId: part_category_retrieve - description: Custom get method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: path_detail - schema: - type: boolean - default: false - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - put: - operationId: part_category_update - description: Custom put method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - patch: - operationId: part_category_partial_update - description: Custom patch method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategory' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategory' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategory' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - delete: - operationId: part_category_destroy - description: Custom delete method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:part_category - responses: - '204': - description: No response body - /api/part/category/parameters/: - get: - operationId: part_category_parameters_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryParameterTemplateList' - description: '' - post: - operationId: part_category_parameters_create - description: |- - API endpoint for accessing a list of PartCategoryParameterTemplate objects. - - - GET: Return a list of PartCategoryParameterTemplate objects - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part_category - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - /api/part/category/parameters/{id}/: - get: - operationId: part_category_parameters_retrieve - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - put: - operationId: part_category_parameters_update - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - patch: - operationId: part_category_parameters_partial_update - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - delete: - operationId: part_category_parameters_destroy - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part_category - responses: - '204': - description: No response body - /api/part/category/tree/: - get: - operationId: part_category_tree_list - description: API endpoint for accessing a list of PartCategory objects ready - for rendering a tree. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - level - - -level - - name - - -name - - subcategories - - -subcategories - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryTreeList' - description: '' - /api/part/internal-price/: - get: - operationId: part_internal_price_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - price - - -price - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartInternalPriceList' - description: '' - post: - operationId: part_internal_price_create - description: API endpoint for list view of PartInternalPriceBreak model. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartInternalPrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - /api/part/internal-price/{id}/: - get: - operationId: part_internal_price_retrieve - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - put: - operationId: part_internal_price_update - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartInternalPrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - patch: - operationId: part_internal_price_partial_update - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - delete: - operationId: part_internal_price_destroy - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/related/: - get: - operationId: part_related_list - description: API endpoint for accessing a list of PartRelated objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_1 - schema: - type: integer - - in: query - name: part_2 - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: part_1__name, part_2__name.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartRelationList' - description: '' - post: - operationId: part_related_create - description: API endpoint for accessing a list of PartRelated objects. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartRelation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - /api/part/related/{id}/: - get: - operationId: part_related_retrieve - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - put: - operationId: part_related_update - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartRelation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - patch: - operationId: part_related_partial_update - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - delete: - operationId: part_related_destroy - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/sale-price/: - get: - operationId: part_sale_price_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - price - - -price - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartSalePriceList' - description: '' - post: - operationId: part_sale_price_create - description: API endpoint for list view of PartSalePriceBreak model. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartSalePrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - /api/part/sale-price/{id}/: - get: - operationId: part_sale_price_retrieve - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - put: - operationId: part_sale_price_update - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartSalePrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - patch: - operationId: part_sale_price_partial_update - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - delete: - operationId: part_sale_price_destroy - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/stocktake/: - get: - operationId: part_stocktake_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - item_count - - -item_count - - quantity - - -quantity - - date - - -date - - user - - -user - - pk - - -pk - - in: query - name: part - schema: - type: integer - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartStocktakeList' - description: '' - post: - operationId: part_stocktake_create - description: API endpoint for listing part stocktake information. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktake' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - delete: - operationId: part_stocktake_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/part/stocktake/{id}/: - get: - operationId: part_stocktake_retrieve - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - put: - operationId: part_stocktake_update - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktake' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - patch: - operationId: part_stocktake_partial_update - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - delete: - operationId: part_stocktake_destroy - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/stocktake/generate/: - post: - operationId: part_stocktake_generate_create - description: Perform stocktake generation on POST request. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - description: '' - /api/part/test-template/: - get: - operationId: part_test_template_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: has_results - schema: - type: boolean - description: Has Results - - in: query - name: key - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - enabled - - -enabled - - required - - -required - - requires_value - - -requires_value - - requires_attachment - - -requires_attachment - - results - - -results - - test_name - - -test_name - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: required - schema: - type: boolean - - in: query - name: requires_attachment - schema: - type: boolean - - in: query - name: requires_value - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, test_name.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartTestTemplateList' - description: '' - post: - operationId: part_test_template_create - description: API endpoint for listing (and creating) a PartTestTemplate. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartTestTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - /api/part/test-template/{id}/: - get: - operationId: part_test_template_retrieve - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - put: - operationId: part_test_template_update - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartTestTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - patch: - operationId: part_test_template_partial_update - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - delete: - operationId: part_test_template_destroy - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/thumbs/: - get: - operationId: part_thumbs_list - description: API endpoint for retrieving information on available Part thumbnails. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: IPN, category__name, description, - keywords, name, revision.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartThumbList' - description: '' - /api/part/thumbs/{id}/: - get: - operationId: part_thumbs_retrieve - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - put: - operationId: part_thumbs_update - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - patch: - operationId: part_thumbs_partial_update - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - /api/plugins/: - get: - operationId: plugins_list - description: |- - API endpoint for list of PluginConfig objects. - - - GET: Return a list of all PluginConfig objects - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: builtin - schema: - type: boolean - description: Builtin - - in: query - name: installed - schema: - type: boolean - description: Installed - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: mandatory - schema: - type: boolean - description: Mandatory - - in: query - name: mixin - schema: - type: string - description: Mixin - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - key - - -key - - name - - -name - - active - - -active - - in: query - name: sample - schema: - type: boolean - description: Sample - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, name.' - schema: - type: string - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPluginConfigList' - description: '' - /api/plugins/{plugin}/: - get: - operationId: plugins_retrieve - description: |- - API detail endpoint for PluginConfig object. - - get: - Return a single PluginConfig object - - post: - Update a PluginConfig - - delete: - Remove a PluginConfig - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfig' - description: '' - delete: - operationId: plugins_destroy - description: |- - Handle DELETE request for a PluginConfig instance. - - We only allow plugin deletion if the plugin is not active. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - /api/plugins/{plugin}/activate/: - put: - operationId: plugins_activate_update - description: |- - Endpoint for activating a plugin. - - - PATCH: Activate a plugin - - Pass a boolean value for the 'active' field. - If not provided, it is assumed to be True, - and the plugin will be activated. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginActivate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginActivate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - description: '' - patch: - operationId: plugins_activate_partial_update - description: |- - Endpoint for activating a plugin. - - - PATCH: Activate a plugin - - Pass a boolean value for the 'active' field. - If not provided, it is assumed to be True, - and the plugin will be activated. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - description: '' - /api/plugins/{plugin}/admin/: - get: - operationId: plugins_admin_retrieve - description: |- - Endpoint for viewing admin integration plugin details. - - This endpoint is used to view the available admin integration options for a plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginAdminDetail' - description: '' - /api/plugins/{plugin}/settings/: - get: - operationId: plugins_settings_list - description: Get all settings for a plugin config. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginSetting' - description: '' - /api/plugins/{plugin}/settings/{key}/: - get: - operationId: plugins_settings_retrieve - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - put: - operationId: plugins_settings_update - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - patch: - operationId: plugins_settings_partial_update - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - /api/plugins/{plugin}/uninstall/: - put: - operationId: plugins_uninstall_update - description: Endpoint for uninstalling a single plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginUninstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginUninstall' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - description: '' - patch: - operationId: plugins_uninstall_partial_update - description: Endpoint for uninstalling a single plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - description: '' - /api/plugins/{plugin}/user-settings/: - get: - operationId: plugins_user_settings_list - description: Get all user settings for a plugin config. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - /api/plugins/{plugin}/user-settings/{key}/: - get: - operationId: plugins_user_settings_retrieve - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - put: - operationId: plugins_user_settings_update - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginUserSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginUserSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - patch: - operationId: plugins_user_settings_partial_update - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - /api/plugins/install/: - post: - operationId: plugins_install_create - description: Endpoint for installing a new plugin. - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - description: '' - /api/plugins/reload/: - post: - operationId: plugins_reload_create - description: Endpoint for reloading all plugins. - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginReload' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginReload' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginReload' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginReload' - description: '' - /api/plugins/settings/: - get: - operationId: plugins_settings_list_all - description: |- - List endpoint for all plugin related settings. - - - read only - - only accessible by staff users - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: plugin__active - schema: - type: boolean - - in: query - name: plugin__key - schema: - type: string - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPluginSettingList' - description: '' - /api/plugins/status/: - get: - operationId: plugins_status_retrieve - description: Show plugin registry status information. - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginRegistryStatus' - description: '' - /api/plugins/ui/features/{feature}/: - get: - operationId: plugins_ui_features_list - description: Show available plugin ui features. - parameters: - - in: path - name: feature - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginUIFeature' - description: '' - /api/project-code/: - get: - operationId: project_code_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - code - - -code - - name: search - required: false - in: query - description: 'A search term. Searched fields: code, description.' - schema: - type: string - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedProjectCodeList' - description: '' - post: - operationId: project_code_create - description: List view for all project codes. - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/ProjectCode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - /api/project-code/{id}/: - get: - operationId: project_code_retrieve - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - put: - operationId: project_code_update - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/ProjectCode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - patch: - operationId: project_code_partial_update - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - delete: - operationId: project_code_destroy - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/asset/: - get: - operationId: report_asset_list - description: API endpoint for listing ReportAsset objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportAssetList' - description: '' - post: - operationId: report_asset_create - description: API endpoint for listing ReportAsset objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportAsset' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - /api/report/asset/{id}/: - get: - operationId: report_asset_retrieve - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - put: - operationId: report_asset_update - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportAsset' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - patch: - operationId: report_asset_partial_update - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - delete: - operationId: report_asset_destroy - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/print/: - post: - operationId: report_print_create - description: POST action for printing a report. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportPrint' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportPrint' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportPrint' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportPrint' - description: '' - /api/report/snippet/: - get: - operationId: report_snippet_list - description: API endpoint for listing ReportSnippet objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportSnippetList' - description: '' - post: - operationId: report_snippet_create - description: API endpoint for listing ReportSnippet objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportSnippet' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - /api/report/snippet/{id}/: - get: - operationId: report_snippet_retrieve - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - put: - operationId: report_snippet_update - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportSnippet' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - patch: - operationId: report_snippet_partial_update - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - delete: - operationId: report_snippet_destroy - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/template/: - get: - operationId: report_template_list - description: API endpoint for viewing list of ReportTemplate objects. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: items - schema: - type: string - description: Items - - in: query - name: landscape - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - enum: - - build - - buildline - - company - - part - - purchaseorder - - returnorder - - salesorder - - salesordershipment - - stockitem - - stocklocation - - transferorder - description: |- - Model Type - - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportTemplateList' - description: '' - post: - operationId: report_template_create - description: API endpoint for viewing list of ReportTemplate objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - /api/report/template/{id}/: - get: - operationId: report_template_retrieve - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - put: - operationId: report_template_update - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - patch: - operationId: report_template_partial_update - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - delete: - operationId: report_template_destroy - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/search/: - post: - operationId: search_create - description: Perform search query against available models. - tags: - - search - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/APISearchView' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/APISearchView' - multipart/form-data: - schema: - $ref: '#/components/schemas/APISearchView' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/APISearchView' - description: '' - /api/selection/: - get: - operationId: selection_list - description: List view for SelectionList objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSelectionListList' - description: '' - post: - operationId: selection_create - description: List view for SelectionList objects. - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionList' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - /api/selection/{id}/: - get: - operationId: selection_retrieve - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - put: - operationId: selection_update - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionList' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - patch: - operationId: selection_partial_update - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - delete: - operationId: selection_destroy - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/selection/{id}/entry/: - get: - operationId: selection_entry_list - description: List view for SelectionEntry objects. - parameters: - - in: query - name: active - schema: - type: boolean - - in: path - name: id - schema: - type: integer - required: true - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: list - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - list - - -list - - label - - -label - - active - - -active - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, label.' - schema: - type: string - - in: query - name: value - schema: - type: string - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSelectionEntryList' - description: '' - post: - operationId: selection_entry_create - description: List view for SelectionEntry objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - /api/selection/{id}/entry/{entrypk}/: - get: - operationId: selection_entry_retrieve - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - put: - operationId: selection_entry_update - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - patch: - operationId: selection_entry_partial_update - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - delete: - operationId: selection_entry_destroy - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/settings/global/: - get: - operationId: settings_global_list - description: API endpoint for accessing a list of global settings objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - key - - -key - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: key.' - schema: - type: string - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedGlobalSettingsList' - description: '' - /api/settings/global/{key}/: - get: - operationId: settings_global_retrieve - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - put: - operationId: settings_global_update - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GlobalSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/GlobalSettings' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - patch: - operationId: settings_global_partial_update - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - /api/settings/user/: - get: - operationId: settings_user_list - description: API endpoint for accessing a list of user settings objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - key - - -key - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: key.' - schema: - type: string - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedUserSettingsList' - description: '' - /api/settings/user/{key}/: - get: - operationId: settings_user_retrieve - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - put: - operationId: settings_user_update - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserSettings' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - patch: - operationId: settings_user_partial_update - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - /api/stock/: - get: - operationId: stock_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: IPN - schema: - type: string - description: Part IPN (case insensitive) - - in: query - name: IPN_contains - schema: - type: string - description: Part IPN contains (case insensitive) - - in: query - name: IPN_regex - schema: - type: string - description: Part IPN (regex) - - in: query - name: active - schema: - type: boolean - description: Active - - in: query - name: allocated - schema: - type: boolean - description: Is Allocated - - in: query - name: ancestor - schema: - type: integer - - in: query - name: assembly - schema: - type: boolean - description: Assembly - - in: query - name: available - schema: - type: boolean - description: Available - - in: query - name: batch - schema: - type: string - description: Batch code filter (case insensitive) - - in: query - name: batch_regex - schema: - type: string - description: Batch code filter (regex) - - in: query - name: belongs_to - schema: - type: integer - - in: query - name: bom_item - schema: - type: integer - - in: query - name: build - schema: - type: integer - - in: query - name: cascade - schema: - type: boolean - description: If true, include items in child locations of the given location - - in: query - name: category - schema: - type: integer - - in: query - name: company - schema: - type: integer - - in: query - name: consumed - schema: - type: boolean - description: Consumed by Build Order - - in: query - name: consumed_by - schema: - type: integer - - in: query - name: created_after - schema: - type: string - format: date - description: Created after - - in: query - name: created_before - schema: - type: string - format: date - description: Created before - - in: query - name: customer - schema: - type: integer - - in: query - name: depleted - schema: - type: boolean - description: Depleted - - in: query - name: exclude_tree - schema: - type: number - description: Provide a StockItem PK to exclude that item and all its descendants - - in: query - name: expired - schema: - type: boolean - description: Expired - - in: query - name: expiry_after - schema: - type: string - format: date - description: Expiry date after - - in: query - name: expiry_before - schema: - type: string - format: date - description: Expiry date before - - in: query - name: external - schema: - type: boolean - description: External Location - - in: query - name: has_batch - schema: - type: boolean - description: Has batch code - - in: query - name: has_child_items - schema: - type: boolean - description: Has child items - - in: query - name: has_installed_items - schema: - type: boolean - description: Has installed items - - in: query - name: has_purchase_price - schema: - type: boolean - description: Has purchase price - - in: query - name: has_stocktake - schema: - type: boolean - description: Has Stocktake Date - - in: query - name: in_stock - schema: - type: boolean - description: In Stock - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: installed - schema: - type: boolean - description: Installed in other stock item - - in: query - name: is_building - schema: - type: boolean - description: In production - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Filter by numeric Location ID or the literal 'null' - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: manufacturer - schema: - type: integer - - in: query - name: manufacturer_part - schema: - type: integer - description: Manufacturer Part - - in: query - name: max_stock - schema: - type: number - description: Maximum stock - - in: query - name: min_stock - schema: - type: number - description: Minimum stock - - in: query - name: name - schema: - type: string - description: Part name (case insensitive) - - in: query - name: name_contains - schema: - type: string - description: Part name contains (case insensitive) - - in: query - name: name_regex - schema: - type: string - description: Part name (regex) - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - batch - - -batch - - location - - -location - - part - - -part - - part__name - - -part__name - - part__IPN - - -part__IPN - - updated - - -updated - - purchase_price - - -purchase_price - - creation_date - - -creation_date - - stocktake_date - - -stocktake_date - - expiry_date - - -expiry_date - - packaging - - -packaging - - quantity - - -quantity - - stock - - -stock - - status - - -status - - IPN - - -IPN - - SKU - - -SKU - - MPN - - -MPN - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: part_tree - schema: - type: integer - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: purchase_order - schema: - type: integer - - in: query - name: salable - schema: - type: boolean - description: Salable - - in: query - name: sales_order - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: batch, location__name, part__IPN, - part__description, part__name, serial, supplier_part__SKU, supplier_part__manufacturer_part__MPN, - supplier_part__manufacturer_part__manufacturer__name, supplier_part__supplier__name, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: sent_to_customer - schema: - type: boolean - description: Sent to customer - - in: query - name: serial - schema: - type: string - description: Serial number - - in: query - name: serial_gte - schema: - type: integer - description: Serial number GTE - - in: query - name: serial_lte - schema: - type: integer - description: Serial number LTE - - in: query - name: serialized - schema: - type: boolean - description: Has serial number - - in: query - name: stale - schema: - type: boolean - description: Stale - - in: query - name: status - schema: - type: integer - description: Status Code - - in: query - name: stocktake_after - schema: - type: string - format: date - description: Stocktake After - - in: query - name: stocktake_before - schema: - type: string - format: date - description: Stocktake Before - - in: query - name: supplier - schema: - type: integer - description: Supplier - - in: query - name: supplier_part - schema: - type: integer - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - - in: query - name: tests - schema: - type: boolean - default: false - - in: query - name: tracked - schema: - type: boolean - description: Tracked - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated after - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated before - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockItemList' - description: '' - post: - operationId: stock_create - description: |- - API endpoint for list view of Stock objects. - - - GET: Return a list of all StockItem objects (with optional query filters) - - POST: Create a new StockItem - - DELETE: Delete multiple StockItem objects - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:stock - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - put: - operationId: stock_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - patch: - operationId: stock_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - delete: - operationId: stock_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/stock/{id}/: - get: - operationId: stock_retrieve - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - - in: query - name: tests - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - put: - operationId: stock_update - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - patch: - operationId: stock_partial_update - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - delete: - operationId: stock_destroy - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock - responses: - '204': - description: No response body - /api/stock/{id}/convert/: - post: - operationId: stock_convert_create - description: API endpoint for converting a stock item to a variant part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ConvertStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConvertStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConvertStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ConvertStockItem' - description: '' - /api/stock/{id}/install/: - post: - operationId: stock_install_create - description: |- - API endpoint for installing a particular stock item into this stock item. - - - stock_item.part must be in the BOM for this part - - stock_item must currently be "in stock" - - stock_item must be serialized (and not belong to another item) - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InstallStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/InstallStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/InstallStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/InstallStockItem' - description: '' - /api/stock/{id}/serial-numbers/: - get: - operationId: stock_serial_numbers_retrieve - description: |- - View extra serial number information for a given stock item. - - Provides information on the "previous" and "next" stock items, - based on the serial number of the given stock item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemSerialNumbers' - description: '' - /api/stock/{id}/serialize/: - post: - operationId: stock_serialize_create - description: API endpoint for serializing a stock item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SerializeStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SerializeStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SerializeStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/stock/{id}/uninstall/: - post: - operationId: stock_uninstall_create - description: API endpoint for removing (uninstalling) items from this item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UninstallStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UninstallStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/UninstallStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/UninstallStockItem' - description: '' - /api/stock/add/: - post: - operationId: stock_add_create - description: Endpoint for adding a quantity of stock to an existing StockItem. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockAdd' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockAdd' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockAdd' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockAdd' - description: '' - /api/stock/assign/: - post: - operationId: stock_assign_create - description: API endpoint for assigning stock to a particular customer. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockAssignment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockAssignment' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockAssignment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockAssignment' - description: '' - /api/stock/change_status/: - post: - operationId: stock_change_status_create - description: API endpoint to change the status code of multiple StockItem objects. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockChangeStatus' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockChangeStatus' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockChangeStatus' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockChangeStatus' - description: '' - /api/stock/count/: - post: - operationId: stock_count_create - description: Endpoint for counting stock (performing a stocktake). - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockCount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockCount' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockCount' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockCount' - description: '' - /api/stock/location/: - get: - operationId: stock_location_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: cascade - schema: - type: boolean - description: Include sub-locations in filtered results - - in: query - name: depth - schema: - type: number - description: Filter by location depth - - in: query - name: external - schema: - type: boolean - - in: query - name: has_location_type - schema: - type: boolean - description: has_location_type - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location_type - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - pathstring - - -pathstring - - items - - -items - - level - - -level - - tree_id - - -tree_id - - lft - - -lft - - in: query - name: parent - schema: - type: integer - description: Filter by parent location - - in: query - name: path_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, pathstring, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: structural - schema: - type: boolean - - in: query - name: top_level - schema: - type: boolean - description: Filter by top-level locations - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLocationList' - description: '' - post: - operationId: stock_location_create - description: |- - API endpoint for list view of StockLocation objects. - - - GET: Return list of StockLocation objects - - POST: Create a new StockLocation - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:stock_location - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - put: - operationId: stock_location_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - patch: - operationId: stock_location_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - /api/stock/location-type/: - get: - operationId: stock_location_type_list - description: |- - API endpoint for a list of StockLocationType objects. - - - GET: Return a list of all StockLocationType objects - - POST: Create a StockLocationType - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - location_count - - -location_count - - icon - - -icon - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockLocationTypeList' - description: '' - post: - operationId: stock_location_type_create - description: |- - API endpoint for a list of StockLocationType objects. - - - GET: Return a list of all StockLocationType objects - - POST: Create a StockLocationType - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockLocationType' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:stock_location - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - /api/stock/location-type/{id}/: - get: - operationId: stock_location_type_retrieve - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - put: - operationId: stock_location_type_update - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockLocationType' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - patch: - operationId: stock_location_type_partial_update - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - delete: - operationId: stock_location_type_destroy - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock_location - responses: - '204': - description: No response body - /api/stock/location/{id}/: - get: - operationId: stock_location_retrieve - description: Custom get method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: path_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - put: - operationId: stock_location_update - description: Custom put method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - patch: - operationId: stock_location_partial_update - description: Custom patch method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - delete: - operationId: stock_location_destroy - description: Custom delete method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock_location - responses: - '204': - description: No response body - /api/stock/location/tree/: - get: - operationId: stock_location_tree_list - description: API endpoint for accessing a list of StockLocation objects, ready - for rendering as a tree. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - level - - -level - - name - - -name - - sublocations - - -sublocations - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLocationTreeList' - description: '' - /api/stock/merge/: - post: - operationId: stock_merge_create - description: API endpoint for merging multiple stock items. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockMerge' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockMerge' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockMerge' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockMerge' - description: '' - /api/stock/remove/: - post: - operationId: stock_remove_create - description: Endpoint for removing a quantity of stock from an existing StockItem. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockRemove' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockRemove' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockRemove' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockRemove' - description: '' - /api/stock/return/: - post: - operationId: stock_return_create - description: |- - API endpoint for returning items into stock. - - This API endpoint is for items that are initially considered "not in stock", - and the user wants to return them to stock, marking them as - "available" for further consumption or sale. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockReturn' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockReturn' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockReturn' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockReturn' - description: '' - /api/stock/status/: - get: - operationId: stock_status_retrieve - description: Retrieve information about a specific status code - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/stock/test/: - get: - operationId: stock_test_list - description: API endpoint for listing (and creating) a StockItemTestResult object. - parameters: - - in: query - name: build - schema: - type: integer - description: Build - - in: query - name: enabled - schema: - type: boolean - description: Enabled - - in: query - name: include_installed - schema: - type: boolean - description: If true, include test results for items installed underneath - the given stock item - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - date - - -date - - result - - -result - - started_datetime - - -started_datetime - - finished_datetime - - -finished_datetime - - test_station - - -test_station - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: required - schema: - type: boolean - description: Required - - in: query - name: result - schema: - type: boolean - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: stock_item - schema: - type: integer - description: Filter by numeric Stock Item ID - - in: query - name: template - schema: - type: integer - - in: query - name: template_detail - schema: - type: boolean - default: false - - in: query - name: test - schema: - type: string - description: Test name (case insensitive) - - in: query - name: user - schema: - type: integer - - in: query - name: user_detail - schema: - type: boolean - default: false - - in: query - name: value - schema: - type: string - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockItemTestResultList' - description: '' - post: - operationId: stock_test_create - description: API endpoint for listing (and creating) a StockItemTestResult object. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItemTestResult' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:stock - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - delete: - operationId: stock_test_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/stock/test/{id}/: - get: - operationId: stock_test_retrieve - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: template_detail - schema: - type: boolean - default: false - - in: query - name: user_detail - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - put: - operationId: stock_test_update - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItemTestResult' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - patch: - operationId: stock_test_partial_update - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - delete: - operationId: stock_test_destroy - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock - responses: - '204': - description: No response body - /api/stock/track/: - get: - operationId: stock_track_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: include_variants - schema: - type: boolean - description: Include Part Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Date before - - in: query - name: min_date - schema: - type: string - format: date - description: Date after - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - date - - -date - - in: query - name: part - schema: - type: integer - description: Part - - name: search - required: false - in: query - description: 'A search term. Searched fields: notes.' - schema: - type: string - - in: query - name: user - schema: - type: integer - - in: query - name: user_detail - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockTrackingList' - description: '' - /api/stock/track/{id}/: - get: - operationId: stock_track_retrieve - description: Detail API endpoint for StockItemTracking model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockTracking' - description: '' - /api/stock/track/status/: - get: - operationId: stock_track_status_retrieve - description: Retrieve information about a specific status code - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/stock/transfer/: - post: - operationId: stock_transfer_create - description: API endpoint for performing stock movements. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockTransfer' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockTransfer' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockTransfer' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockTransfer' - description: '' - /api/supplier/import/: - post: - operationId: supplier_import_create - description: Import a part by supplier. - tags: - - supplier - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImportRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ImportRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ImportRequest' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ImportResult' - description: '' - /api/supplier/list/: - get: - operationId: supplier_list_list - description: List all available supplier plugins. - tags: - - supplier - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SupplierList' - description: '' - /api/supplier/search/: - get: - operationId: supplier_search_list - description: Search parts by supplier. - parameters: - - in: query - name: plugin - schema: - type: string - description: Plugin slug - required: true - - in: query - name: supplier - schema: - type: string - description: Supplier slug - required: true - - in: query - name: term - schema: - type: string - description: Search term - required: true - tags: - - supplier - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: '' - /api/system-internal/observability/end: - post: - operationId: system_internal_observability_end_create - description: Endpoint for observability tools. - tags: - - system-internal - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - multipart/form-data: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - description: '' - /api/system/health/: - get: - operationId: system_health_retrieve - description: |- - Simple health check endpoint for monitoring purposes. - - Use the root API endpoint for more detailed information (using an authenticated request). - tags: - - system - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/HealthCheckStatus' - description: InvenTree server health status - /api/units/: - get: - operationId: units_list - description: List view for custom units. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCustomUnitList' - description: '' - post: - operationId: units_create - description: List view for custom units. - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomUnit' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - /api/units/{id}/: - get: - operationId: units_retrieve - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - put: - operationId: units_update - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomUnit' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - patch: - operationId: units_partial_update - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - delete: - operationId: units_destroy - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/units/all/: - get: - operationId: units_all_retrieve - description: Return a list of all available units. - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/AllUnitListResponse' - description: '' - /api/user/: - get: - operationId: user_list - description: |- - List endpoint for detail on all users. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: query - name: is_active - schema: - type: boolean - - in: query - name: is_staff - schema: - type: boolean - - in: query - name: is_superuser - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - email - - -email - - username - - -username - - first_name - - -first_name - - last_name - - -last_name - - is_staff - - -is_staff - - is_superuser - - -is_superuser - - is_active - - -is_active - - name: search - required: false - in: query - description: 'A search term. Searched fields: first_name, last_name, username.' - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedUserCreateList' - description: '' - post: - operationId: user_create - description: |- - List endpoint for detail on all users. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/UserCreate' - description: '' - /api/user/{id}/: - get: - operationId: user_retrieve - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - put: - operationId: user_update - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ExtendedUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/ExtendedUser' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - patch: - operationId: user_partial_update - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - delete: - operationId: user_destroy - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/{id}/set-password/: - put: - operationId: user_set_password_update - description: Allows superusers to set the password for a user. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserSetPassword' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserSetPassword' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - description: '' - patch: - operationId: user_set_password_partial_update - description: Allows superusers to set the password for a user. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - description: '' - /api/user/group/: - get: - operationId: user_group_list - description: List endpoint for all auth groups. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - in: query - name: permission_detail - schema: - type: boolean - default: false - description: Include permission details - - in: query - name: role_detail - schema: - type: boolean - default: true - description: Include role details - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - - in: query - name: user_detail - schema: - type: boolean - default: false - description: Include user details - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedGroupList' - description: '' - post: - operationId: user_group_create - description: List endpoint for all auth groups. - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Group' - multipart/form-data: - schema: - $ref: '#/components/schemas/Group' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - /api/user/group/{id}/: - get: - operationId: user_group_retrieve - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: permission_detail - schema: - type: boolean - default: false - description: Include permission details - - in: query - name: role_detail - schema: - type: boolean - default: true - description: Include role details - - in: query - name: user_detail - schema: - type: boolean - default: false - description: Include user details - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - put: - operationId: user_group_update - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Group' - multipart/form-data: - schema: - $ref: '#/components/schemas/Group' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - patch: - operationId: user_group_partial_update - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedGroup' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedGroup' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedGroup' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - delete: - operationId: user_group_destroy - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/me/: - get: - operationId: user_me_retrieve - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - put: - operationId: user_me_update - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MeUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/MeUser' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - patch: - operationId: user_me_partial_update - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMeUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMeUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMeUser' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - delete: - operationId: user_me_destroy - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/user/me/profile/: - get: - operationId: user_me_profile_retrieve - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - put: - operationId: user_me_profile_update - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserProfile' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserProfile' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - patch: - operationId: user_me_profile_partial_update - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - /api/user/me/roles/: - get: - operationId: user_me_roles_retrieve - description: API endpoint which lists the available role permissions for the - current user. - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Role' - description: '' - /api/user/me/token/: - get: - operationId: user_me_token_retrieve - description: |- - Return an API token if the user is authenticated. - - - If the user already has a matching token, delete it and create a new one - - Existing tokens are *never* exposed again via the API - - Once the token is provided, it can be used for auth until it expires - parameters: - - in: query - name: name - schema: - type: string - description: Name of the token - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetAuthToken' - description: '' - /api/user/owner/: - get: - operationId: user_owner_list - description: |- - List API endpoint for Owner model. - - Cannot create a new Owner object via the API, but can view existing instances. - parameters: - - in: query - name: is_active - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedOwnerList' - description: '' - /api/user/owner/{id}/: - get: - operationId: user_owner_retrieve - description: |- - Detail API endpoint for Owner model. - - Cannot edit or delete - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Owner' - description: '' - /api/user/ruleset/: - get: - operationId: user_ruleset_list - description: List endpoint for all RuleSet instances. - parameters: - - in: query - name: group - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - enum: - - admin - - bom - - build - - part - - part_category - - purchase_order - - repair_order - - return_order - - sales_order - - stock - - stock_location - - transfer_order - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRuleSetList' - description: '' - /api/user/ruleset/{id}/: - get: - operationId: user_ruleset_retrieve - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - put: - operationId: user_ruleset_update - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RuleSet' - multipart/form-data: - schema: - $ref: '#/components/schemas/RuleSet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - patch: - operationId: user_ruleset_partial_update - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - delete: - operationId: user_ruleset_destroy - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/tokens/: - get: - operationId: user_tokens_list - description: List of user tokens for current user. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - created - - -created - - expiry - - -expiry - - last_seen - - -last_seen - - user - - -user - - name - - -name - - revoked - - -revoked - - revoked - - -revoked - - in: query - name: revoked - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, name.' - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedApiTokenList' - description: '' - post: - operationId: user_tokens_create - description: List of user tokens for current user. - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ApiToken' - multipart/form-data: - schema: - $ref: '#/components/schemas/ApiToken' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - description: '' - /api/user/tokens/{id}/: - get: - operationId: user_tokens_retrieve - description: Details for a user token. - parameters: - - in: query - name: all_users - schema: - type: boolean - description: Display tokens for all users (superuser only) - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - description: '' - delete: - operationId: user_tokens_destroy - description: Details for a user token. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/version/: - get: - operationId: version_retrieve - description: Return information about the InvenTree server. - tags: - - version - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/VersionView' - description: '' - /api/version-text: - get: - operationId: version_text_list - description: Simple JSON endpoint for InvenTree version text. - parameters: - - in: query - name: start_version - schema: - type: integer - description: First version to report. Defaults to return the latest {versions} - versions. - - in: query - name: versions - schema: - type: integer - default: 10 - description: Number of versions to return. - tags: - - version-text - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VersionInformation' - description: '' - /api/webhook/{endpoint}/: - post: - operationId: webhook_create - description: Process incoming webhook. - parameters: - - in: path - name: endpoint - schema: - type: string - required: true - tags: - - webhook - responses: - '200': - description: Any data can be posted to the endpoint - everything will be - passed to the WebhookEndpoint model. - /api/auth/v1/config: - get: - summary: Get configuration - tags: - - Configuration - description: | - There are many configuration options that alter the functionality - and behavior of django-allauth, some of which can also impact the - frontend. Therefore, relevant configuration options are exposed via - this endpoint. The data returned is not user/authentication - dependent. Hence, it suffices to only fetch this data once at boot - time of your application. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Configuration' - operationId: allauth_config_get - /api/auth/v1/auth/login: - post: - tags: - - 'Authentication: Account' - summary: Login - description: | - Login using a username-password or email-password combination. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Login' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - password_mismatch: - $ref: '#/components/examples/allauth.PasswordMismatch' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - '409': - description: | - Conflict. For example, when logging in when a user is already logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_login_post - /api/auth/v1/auth/signup: - post: - tags: - - 'Authentication: Account' - summary: Signup - description: | - Whether or not `username`, `email`, `phone` or combination of those are - required depends on the configuration of django-allauth. Additionally, - if a custom signup form is used there may be other custom properties - required. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Signup' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. For example, when signing up while user is logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_signup_post - /api/auth/v1/auth/email/verify: - get: - tags: - - 'Authentication: Account' - summary: Get email verification information - description: | - Obtain email verification information, given the token that was sent to - the user by email. - parameters: - - $ref: '#/components/parameters/allauth.EmailVerificationKey' - responses: - '200': - $ref: '#/components/responses/allauth.EmailVerificationInfo' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_email_verify_get - post: - tags: - - 'Authentication: Account' - summary: Verify an email - description: | - Complete the email verification process. Depending on the configuration, - email addresses are either verified by opening a link that is sent to - their email address, or, by inputting a code that is sent. On the API, - both cases are handled identically. Meaning, the required key is either - the one from the link, or, the code itself. - - Note that a status code of 401 does not imply failure. It indicates that - the email verification was successful, yet, the user is still not signed - in. For example, in case `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` is set to - `False`, a 401 is returned when verifying as part of login/signup. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.VerifyEmail' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_email_verify_post - /api/auth/v1/auth/email/verify/resend: - post: - tags: - - 'Authentication: Account' - summary: Resend email verification code - description: | - Requests a new email verification code. - Requires `ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True`. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - '429': - $ref: '#/components/responses/allauth.TooManyRequests' - operationId: allauth_auth_email_verify_resend_post - /api/auth/v1/auth/phone/verify: - post: - tags: - - 'Authentication: Account' - summary: Verify a phone number - description: | - Complete the phone number verification process. Note that a status code - of 401 does not imply failure. It merely indicates that the phone number - verification was successful, yet, the user is still not signed in. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.VerifyPhone' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - '409': - description: | - Conflict. The phone verification flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_phone_verify_post - /api/auth/v1/auth/phone/verify/resend: - post: - tags: - - 'Authentication: Account' - summary: Resend phone number verification code - description: | - Requests a new phone number verification code. - Requires `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True`. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '409': - description: | - Conflict. The phone verification flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - '429': - $ref: '#/components/responses/allauth.TooManyRequests' - operationId: allauth_auth_phone_verify_resend_post - /api/auth/v1/auth/reauthenticate: - post: - tags: - - 'Authentication: Account' - summary: Reauthenticate - description: | - In order to safeguard the account, some actions require the user to be - recently authenticated. If you try to perform such an action without - having been recently authenticated, a `401` status is returned, listing - flows that can be performed to reauthenticate. One such flow is the flow - with ID `reauthenticate`, which allows for the user to input the - password. This is the endpoint related towards that flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Reauthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.IncorrectPassword' - operationId: allauth_auth_reauthenticate_post - /api/auth/v1/auth/password/request: - post: - summary: Request password - description: | - Initiates the password reset procedure. Depending on whether or not - `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED` is `True`, the procedure is - either stateless or stateful. - - In case codes are used, it is stateful, and a new - `password_reset_by_code` flow is started. In this case, on a successful - password reset request, you will receive a 401 indicating the pending - status of this flow. - - In case password reset is configured to use (stateless) links, you will - receive a 200 on a successful password reset request. - tags: - - 'Authentication: Password Reset' - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.RequestPassword' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_password_request_post - /api/auth/v1/auth/password/reset: - get: - summary: Get password reset information - description: | - Used to obtain information on and validate a password reset key. The - key passed is either the key encoded in the password reset URL that the - user has received per email, or, the password reset code in case of - `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED`. Note that in case of a code, - the number of requests you can make is limited (by - `ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS`). - tags: - - 'Authentication: Password Reset' - parameters: - - $ref: '#/components/parameters/allauth.PasswordResetKey' - responses: - '200': - $ref: '#/components/responses/allauth.PasswordResetInfo' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - password_reset_key_invalid: - $ref: '#/components/examples/allauth.InvalidPasswordResetKey' - '409': - description: | - Conflict. There is no password reset (by code) flow pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_password_reset_get - post: - summary: Reset password - description: | - Perform the password reset, by handing over the password reset key and - the new password. After successfully completing the password reset, the - user is either logged in (in case `ACCOUNT_LOGIN_ON_PASSWORD_RESET` is - `True`), or, the user will need to proceed to the login page. In case - of the former, a `200` status code is returned, in case of the latter a - 401. - tags: - - 'Authentication: Password Reset' - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ResetPassword' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.Authentication' - '409': - description: | - Conflict. There is no password reset (by code) flow pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_password_reset_post - /api/auth/v1/auth/provider/redirect: - post: - tags: - - 'Authentication: Providers' - summary: Provider redirect - description: | - Initiates the third-party provider authentication redirect flow. As calling - this endpoint results in a user facing redirect (302), this call is only - available in a browser, and must be called in a synchronous (non-XHR) - manner. - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderRedirect' - responses: - '302': - description: The provider authorization URL to which the client should be - redirected. - headers: - location: - schema: - type: string - description: The redirect URL. - operationId: allauth_auth_provider_redirect_post - /api/auth/v1/auth/provider/token: - post: - tags: - - 'Authentication: Providers' - summary: Provider token - description: | - Authenticates with a third-party provider using provider tokens received - by other means. For example, in case of a mobile app, the authentication - flow runs completely on the device itself, without any interaction with - the API. Then, when the (device) authentication completes and the mobile - app receives an access and/or ID token, it can hand over these tokens - via this endpoint to authenticate on the server. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderToken' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_token: - $ref: '#/components/examples/allauth.InvalidProviderToken' - '401': - description: Not authenticated, more steps are required to be completed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - operationId: allauth_auth_provider_token_post - /api/auth/v1/auth/provider/signup: - get: - tags: - - 'Authentication: Providers' - summary: Provider signup information - description: | - If, while signing up using a third-party provider account, there is - insufficient information received from the provider to automatically - complete the signup process, an additional step is needed to complete - the missing data before the user is fully signed up and authenticated. - The information available so far, such as the pending provider account, - can be retrieved via this endpoint. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.ProviderSignup' - '409': - description: | - Conflict. The provider signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_provider_signup_get - post: - tags: - - 'Authentication: Providers' - summary: Provider signup - description: | - If, while signing up using a third-party provider account, there is - insufficient information received from the provider to automatically - complete the signup process, an additional step is needed to complete - the missing data before the user is fully signed up and authenticated. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderSignup' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: Not authenticated, more steps are required to be completed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. The provider signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_provider_signup_post - /api/auth/v1/auth/2fa/authenticate: - post: - tags: - - 'Authentication: 2FA' - summary: Two-factor authentication - description: | - If, during authentication, a response with status 401 is encountered where one of the pending - flows has ID `mfa_authenticate`, that indicates that the Two-Factor Authentication stage needs to - be completed. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFAAuthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_2fa_authenticate_post - /api/auth/v1/auth/2fa/reauthenticate: - post: - tags: - - 'Authentication: 2FA' - summary: Reauthenticate using 2FA - description: | - In order to safeguard the account, some actions require the user to be - recently authenticated. If you try to perform such an action without - having been recently authenticated, a `401` status is returned, listing - flows that can be performed to reauthenticate. One such flow is the flow - with ID `mfa_reauthenticate`, which allows for the user to input an - authenticator code (e.g. TOTP or recovery code). This is the endpoint - related towards that flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFAAuthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - operationId: allauth_auth_2fa_reauthenticate_post - /api/auth/v1/auth/2fa/trust: - post: - tags: - - 'Authentication: 2FA' - summary: Trust this browser - description: | - If "Trust this browser?" is enabled (`MFA_TRUST_ENABLED`), the - `mfa_trust` flow activates after the user completes the MFA - authentication flow, offering to skip MFA for this particular - browser. This endpoint is used to complete the `mfa_trust` flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFATrust' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_2fa_trust_post - /api/auth/v1/auth/webauthn/authenticate: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for 2FA - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_authenticate_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Perform 2FA using WebAuthn - parameters: [] - description: | - Perform Two-Factor Authentication using a WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.AuthenticateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_webauthn_authenticate_post - /api/auth/v1/auth/webauthn/reauthenticate: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for reauthentication - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_reauthenticate_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Reauthenticate using WebAuthn - parameters: [] - description: | - Reauthenticate the user using a WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.ReauthenticateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_webauthn_reauthenticate_post - /api/auth/v1/auth/webauthn/login: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for login - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_login_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Login using WebAuthn - parameters: [] - description: | - Login using a WebAuthn credential (Passkey). Both 200 and 401 can be - expected after a successful request. The 401 can, for example, occur - when the credential passed was valid, but the email attached to the - account still requires verification. - requestBody: - $ref: '#/components/requestBodies/allauth.LoginWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - operationId: allauth_auth_webauthn_login_post - /api/auth/v1/auth/webauthn/signup: - post: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Initiate the passkey signup flow - parameters: [] - description: | - You initiate the passkey signup flow by inputting (`POST`) the required properties (e.g. email) - similar to the regular account signup, except that the `password` is to be left out. - The user will then be required to verify the email address, after which WebAuthn credential - creation options can be retrieved (`GET`) and used to actually complete (`PUT`) the flow. - requestBody: - $ref: '#/components/requestBodies/allauth.PasskeySignup' - responses: - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated, email verification pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. For example, when signing up while user is logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_post - get: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Get passkey credential request options - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - '409': - description: | - Conflict. For example, when the passkey signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_get - put: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Complete the passkey signup flow - parameters: [] - description: | - Complete the passkey signup flow by handing over the WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '409': - description: | - Conflict. For example, when the passkey signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_put - /api/auth/v1/auth/code/request: - post: - tags: - - 'Authentication: Login By Code' - summary: Request login code - description: | - Request a "special" login code that is sent to the user by email. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.RequestLoginCode' - responses: - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_login_by_code: - $ref: '#/components/examples/allauth.UnauthenticatedPendingLoginByCode' - operationId: allauth_auth_code_request_post - /api/auth/v1/auth/code/confirm: - post: - tags: - - 'Authentication: Login By Code' - summary: Confirm login code - description: | - Use this endpoint to pass along the received "special" login code. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ConfirmLoginCode' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByCode' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - '409': - description: | - Conflict. The "login by code" flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_code_confirm_post - /api/auth/v1/account/providers: - get: - tags: - - 'Account: Providers' - summary: List the connected third-party provider accounts - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.ProviderAccounts' - operationId: allauth_account_providers_get - delete: - tags: - - 'Account: Providers' - summary: | - Disconnect a third-party provider account - description: | - Disconnect a third-party provider account, returning the remaining - accounts that are still connected. The disconnect is not allowed if it - would leave the account unusable. For example, if no password was - set up yet. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderAccount' - responses: - '200': - $ref: '#/components/responses/allauth.ProviderAccounts' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - no_password: - $ref: '#/components/examples/allauth.DisconnectNotAllowedNoPassword' - no_email: - $ref: '#/components/examples/allauth.DisconnectNotAllowedNoVerifiedEmail' - operationId: allauth_account_providers_delete - /api/auth/v1/account/email: - get: - tags: - - 'Account: Email' - summary: List email addresses - description: | - Retrieves the list of email addresses of the account. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_email_get - post: - tags: - - 'Account: Email' - summary: | - Add/Change email address - description: | - The following functionality is available: - - - Adding a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = False`). - - Change to a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = True`). - - Change to a new email address during the email verification process at signup (`ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True`). - - In all cases, an email verification mail will be sent containing a link or code that needs to be verified. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' - '409': - description: | - Conflict. For example, when no user is authenticated and no email verification flow is pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_account_email_post - put: - tags: - - 'Account: Email' - summary: Request email verification - description: | - Requests for (another) email verification email to be sent. Note that - sending emails is rate limited, so when you send too many requests the - email will not be sent. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - '403': - description: | - Too many email verification mails were already sent. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - operationId: allauth_account_email_put - patch: - tags: - - 'Account: Email' - summary: Change primary email address - description: | - Used to change primary email address to a different one. Note that only verified email addresses - can be marked as primary. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MarkPrimaryEmail' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - operationId: allauth_account_email_patch - delete: - tags: - - 'Account: Email' - summary: Remove an email address - description: | - Used to remove an email address. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - operationId: allauth_account_email_delete - /api/auth/v1/account/phone: - get: - tags: - - 'Account: Phone' - summary: Get the phone number - description: | - Retrieves the phone number of the account, if any. Note that while the - endpoint returns a list of phone numbers, at most one entry is returned. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.PhoneNumbers' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_phone_get - post: - tags: - - 'Account: Phone' - summary: | - Change the phone number - description: | - The following functionality is available: - - - Initiate the phone number change process for signed in users. - - Change to a new phone number during the phone number verification - process at signup for unauthenticated users. Note that this requires: - `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True`. - - In both cases, after posting a new phone number, proceed with the phone - verification endpoint to confirm the change of the phone number by - posting the verification code. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Phone' - responses: - '202': - description: Phone number change process initiated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PhoneNumberChangeResponse' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' - '409': - description: | - Conflict. For example, when no user is authenticated and no phone verification flow is pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_account_phone_post - /api/auth/v1/account/authenticators: - get: - tags: - - 'Account: 2FA' - summary: List authenticators - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Authenticators' - '401': - $ref: '#/components/responses/allauth.Authentication' - '410': - $ref: '#/components/responses/allauth.SessionGone' - operationId: allauth_account_authenticators_get - /api/auth/v1/account/authenticators/totp: - get: - tags: - - 'Account: 2FA' - summary: TOTP authenticator status - description: | - Retrieve the information about the current TOTP authenticator, if any. - parameters: [] - responses: - '404': - $ref: '#/components/responses/allauth.TOTPAuthenticatorNotFound' - '200': - $ref: '#/components/responses/allauth.TOTPAuthenticator' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_totp_get - post: - tags: - - 'Account: 2FA' - summary: Activate TOTP - description: | - The code should be provided from the consuming TOTP authenticator - application which was generated using the TOTP authenticator secret - retrieved from the TOTP authenticator status endpoint. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.SetupTOTP' - responses: - '200': - $ref: '#/components/responses/allauth.TOTPAuthenticator' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_totp_post - delete: - tags: - - 'Account: 2FA' - summary: Deactivate TOTP - description: | - Deactivates TOTP authentication. If the user authentication is not - sufficiently recent, a reauthentication flow (`401`) will is presented. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_totp_delete - /api/auth/v1/account/authenticators/recovery-codes: - get: - tags: - - 'Account: 2FA' - summary: List recovery codes - description: | - List recovery codes. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.RecoveryCodes' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '404': - $ref: '#/components/responses/allauth.NotFound' - operationId: allauth_account_authenticators_recovery-codes_get - post: - tags: - - 'Account: 2FA' - summary: Regenerate recovery codes - parameters: [] - responses: - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.CannotGenerateRecoveryCodes' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_recovery-codes_post - /api/auth/v1/account/authenticators/webauthn: - get: - tags: - - 'Account: WebAuthn' - summary: | - Get WebAuthn credential creation options - parameters: - - $ref: '#/components/parameters/allauth.PasswordLess' - description: | - Returns the WebAuthn credential creation options, that can be - processed using `parseCreationOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnCreationOptionsResponse' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_webauthn_get - put: - tags: - - 'Account: WebAuthn' - summary: | - Rename a WebAuthn credential - description: | - You can alter the name of a WebAuthn credential by PUT'ting the ID and - name of the authenticator representing that credential. You can obtain - the credentials via the "List authenticators" endpoint. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.UpdateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnAuthenticator' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_webauthn_put - delete: - tags: - - 'Account: WebAuthn' - summary: | - Delete a WebAuthn credential - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.DeleteWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_webauthn_delete - post: - tags: - - 'Account: WebAuthn' - summary: | - Add a WebAuthn credential - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' - responses: - '200': - $ref: '#/components/responses/allauth.AddWebAuthnAuthenticator' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_webauthn_post - /api/auth/v1/auth/session: - get: - tags: - - 'Authentication: Current Session' - summary: | - Get authentication status - description: | - Retrieve information about the authentication status for the current - session. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '401': - $ref: '#/components/responses/allauth.Authentication' - '410': - $ref: '#/components/responses/allauth.SessionGone' - operationId: allauth_auth_session_get - delete: - tags: - - 'Authentication: Current Session' - summary: Logout - description: | - Logs out the user from the current session. - parameters: [] - responses: - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - operationId: allauth_auth_session_delete - /api/auth/v1/tokens/refresh: - post: - tags: - - Tokens - summary: | - Refresh the access token - description: | - Used to retrieve a new access token. Depending on `settings.HEADLESS_JWT_ROTATE_REFRESH_TOKEN`, - a new refresh token is returned as well. - requestBody: - $ref: '#/components/requestBodies/allauth.RefreshToken' - responses: - '200': - $ref: '#/components/responses/allauth.RefreshToken' - '400': - description: The refresh token is invalid or expired. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_tokens_refresh_post - /api/auth/v1/account/password/change: - post: - tags: - - 'Account: Password' - summary: Change password - description: | - In order to change the password of an account, the current and new - password must be provider. However, accounts that were created by - signing up using a third-party provider do not have a password set. In - that case, the current password is not required. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ChangePassword' - responses: - '400': - $ref: '#/components/responses/allauth.Error' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_password_change_post - /api/auth/v1/auth/sessions: - get: - tags: - - Sessions - summary: List sessions - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Sessions' - operationId: allauth_auth_sessions_get - delete: - tags: - - Sessions - summary: End one or more sessions - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.EndSessions' - responses: - '200': - $ref: '#/components/responses/allauth.Sessions' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_sessions_delete -components: - examples: - allauth.AuthenticatedByCode: - summary: | - Authenticated by code. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: code - at: 1711555057.065702 - email: email@domain.org - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AuthenticatedByPassword: - summary: | - Authenticated by password. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AuthenticatedByPasswordAnd2FA: - summary: | - Fully authenticated using by password and 2FA. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.CannotGenerateRecoveryCodes: - summary: | - Unable to generate recovery codes. - value: - status: 400 - errors: - - message: | - You cannot deactivate two-factor authentication. - code: cannot_generate_recovery_codes - allauth.DisconnectNotAllowedNoPassword: - summary: Account without a password. - value: - status: 400 - errors: - - message: Your account has no password set up. - code: no_password - param: account - allauth.DisconnectNotAllowedNoVerifiedEmail: - summary: Account without a verified email. - value: - status: 400 - errors: - - message: Your account has no verified email address. - code: no_verified_email - param: account - allauth.IncorrectPassword: - value: - status: 400 - errors: - - message: Incorrect password. - param: password - code: incorrect_password - allauth.InvalidAuthenticatorCode: - summary: | - An error response indicating that the provided code is incorrect. - value: - status: 400 - errors: - - message: Incorrect code. - code: incorrect_code - param: code - allauth.InvalidEmail: - value: - status: 400 - errors: - - message: Enter a valid email address. - code: invalid - param: email - allauth.InvalidEmailVerificationKey: - summary: | - Email verification key invalid. - value: - status: 400 - errors: - - message: Invalid or expired key. - code: invalid - param: key - allauth.InvalidPasswordResetKey: - summary: | - Password reset key invalid. - value: - status: 400 - errors: - - message: The password reset token was invalid. - code: token_invalid - param: key - allauth.InvalidProviderToken: - summary: | - Provider token invalid. - value: - status: 400 - errors: - - message: The token was invalid. - code: invalid - param: token - allauth.PasswordMismatch: - value: - status: 400 - errors: - - message: The email address and/or password you specified are not correct. - code: email_password_mismatch - param: password - allauth.ReauthenticationRequired: - summary: | - Reauthentication required - value: - status: 401 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - flows: - - id: reauthenticate - - id: mfa_reauthenticate - meta: - is_authenticated: true - allauth.UnauthenticatedInitial: - summary: | - Unauthenticated: Initial - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - meta: - is_authenticated: false - allauth.UnauthenticatedPending2FA: - summary: | - Unauthenticated: pending 2FA - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: mfa_authenticate - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingEmailVerification: - summary: | - Unauthenticated: pending email verification - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: verify_email - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingLoginByCode: - summary: | - Unauthenticated: pending login by code - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: mfa_authenticate - - id: login_by_code - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingProviderSignup: - summary: | - Unauthenticated: pending provider signup - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: provider_signup - provider: - id: google - name: Google - client_id: 123.apps.googleusercontent.com - flows: - - provider_redirect - - provider_token - is_pending: true - meta: - is_authenticated: false - allauth.User: - value: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - parameters: - allauth.EmailVerificationKey: - in: header - name: X-Email-Verification-Key - schema: - type: string - required: true - description: The email verification key - allauth.PasswordLess: - in: query - name: passwordless - required: false - schema: - type: boolean - allowEmptyValue: true - description: | - When present (regardless of its value), enables passwordless sign-in via a WebAuthn credential (Passkey), - but may enforce additional multi-factor authentication (MFA) requirements. Omit the parameter to disable. - allauth.PasswordResetKey: - in: header - name: X-Password-Reset-Key - schema: - type: string - required: true - description: The password reset key - requestBodies: - allauth.AddWebAuthnAuthenticator: - content: - application/json: - schema: - type: object - properties: - name: - type: string - example: Master key - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.AuthenticateWebAuthn: - description: Authenticate using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.ChangePassword: - content: - application/json: - schema: - type: object - properties: - current_password: - $ref: '#/components/schemas/allauth.Password' - new_password: - type: string - description: | - The current password. - example: Aberto! - required: - - new_password - allauth.ConfirmLoginCode: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConfirmLoginCode' - allauth.DeleteWebAuthn: - content: - application/json: - schema: - type: object - properties: - authenticators: - description: | - The IDs of the authenticator that are to be deleted. - type: array - items: - $ref: '#/components/schemas/allauth.AuthenticatorID' - required: - - authenticators - allauth.Email: - content: - application/json: - schema: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.EndSessions: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.EndSessions' - allauth.Login: - description: Login. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Login' - allauth.LoginWebAuthn: - description: Login using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.MFAAuthenticate: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.MFAAuthenticate' - allauth.MFATrust: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.MFATrust' - allauth.MarkPrimaryEmail: - content: - application/json: - schema: - type: object - properties: - email: - type: string - description: | - An email address. - example: email@domain.org - primary: - type: boolean - enum: - - true - description: | - Primary flag. - required: - - email - - primary - allauth.PasskeySignup: - description: Signup using a passkey - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PasskeySignup' - allauth.Phone: - content: - application/json: - schema: - type: object - properties: - phone: - type: string - example: '+314159265359' - required: - - phone - allauth.ProviderAccount: - content: - application/json: - schema: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - account: - $ref: '#/components/schemas/allauth.ProviderAccountID' - required: - - account - - provider - allauth.ProviderRedirect: - required: true - description: | - Initiate the provider redirect flow. - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/allauth.ProviderRedirect' - allauth.ProviderSignup: - description: Provider signup. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ProviderSignup' - allauth.ProviderToken: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ProviderToken' - allauth.Reauthenticate: - description: Reauthenticate. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Reauthenticate' - allauth.ReauthenticateWebAuthn: - description: Reauthenticate using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.RefreshToken: - content: - application/json: - schema: - type: object - properties: - refresh_token: - $ref: '#/components/schemas/allauth.RefreshToken' - required: - - refresh_token - allauth.RequestLoginCode: - description: Request a login code. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.RequestLoginCode' - allauth.RequestPassword: - description: Request password. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.RequestPassword' - allauth.ResetPassword: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ResetPassword' - allauth.SetupTOTP: - content: - application/json: - schema: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - code - allauth.Signup: - description: Signup - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Signup' - allauth.UpdateWebAuthn: - content: - application/json: - schema: - type: object - properties: - id: - $ref: '#/components/schemas/allauth.AuthenticatorID' - name: - type: string - example: Master key - allauth.VerifyEmail: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.VerifyEmail' - allauth.VerifyPhone: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.VerifyPhone' - responses: - allauth.AddAuthenticatorConflict: - description: | - The account prohibits adding an authenticator, e.g. because of an unverified email address. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - allauth.AddWebAuthnAuthenticator: - description: A WebAuthn authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - meta: - type: object - properties: - recovery_codes_generated: - type: boolean - description: | - Whether or not recovery codes where generated automatically. - required: - - status - - data - - meta - allauth.Authenticated: - description: The user is authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - allauth.AuthenticatedByCode: - description: | - Authenticated by code. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByCode' - allauth.AuthenticatedByPassword: - description: | - Authenticated by password. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByPassword' - allauth.AuthenticatedByPasswordAnd2FA: - description: | - Authenticated by password and 2FA. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByPasswordAnd2FA' - allauth.Authentication: - description: Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_initial: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - unauthenticated_pending_provider_signup: - $ref: '#/components/examples/allauth.UnauthenticatedPendingProviderSignup' - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - reauthentication_required: - $ref: '#/components/examples/allauth.ReauthenticationRequired' - allauth.AuthenticationOrReauthentication: - description: | - The response indicates authentication or re-authentication is required. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/allauth.AuthenticationResponse' - - $ref: '#/components/schemas/allauth.ReauthenticationResponse' - allauth.Authenticators: - description: | - List of authenticators. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.AuthenticatorList' - required: - - status - - data - allauth.Configuration: - description: | - The django-allauth configuration. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConfigurationResponse' - allauth.EmailAddresses: - description: | - List of email addresses. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.EmailAddress' - required: - - status - - data - allauth.EmailVerificationInfo: - description: Email verification information. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.EmailVerificationInfo' - allauth.Error: - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - allauth.Forbidden: - description: | - A forbidden response. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - allauth.NotFound: - description: | - Not found. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 404 - required: - - status - allauth.PasswordResetInfo: - description: Information about the password reset key. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - user: - $ref: '#/components/schemas/allauth.User' - required: - - status - - data - allauth.PhoneNumbers: - description: | - List of phone numbers. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PhoneNumbersResponse' - allauth.ProviderAccounts: - description: | - List of third-party provider accounts. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.ProviderAccount' - required: - - status - - data - allauth.ProviderSignup: - description: | - Information relating to the pending provider signup. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - email: - type: array - items: - $ref: '#/components/schemas/allauth.EmailAddress' - account: - $ref: '#/components/schemas/allauth.ProviderAccount' - user: - $ref: '#/components/schemas/allauth.User' - required: - - email - - account - - user - required: - - status - - data - allauth.ReauthenticationRequired: - description: | - The response indicates reauthentication is required. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ReauthenticationResponse' - examples: - reauthentication_required: - summary: | - Reauthentication required - value: - status: 401 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - flows: - - id: reauthenticate - - id: mfa_reauthenticate - meta: - is_authenticated: true - allauth.RecoveryCodes: - description: | - Information on the recovery codes. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.SensitiveRecoveryCodesAuthenticator' - required: - - status - - data - allauth.RefreshToken: - description: A new access token (and optionally new refresh token). - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - access_token: - $ref: '#/components/schemas/allauth.AccessToken' - refresh_token: - $ref: '#/components/schemas/allauth.RefreshToken' - required: - - access_token - required: - - data - - status - allauth.SessionGone: - description: | - The response indicates session is invalid or no longer exists. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.SessionGoneResponse' - examples: - unauth: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - allauth.Sessions: - description: | - List of sessions. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.Session' - required: - - status - - data - allauth.StatusOK: - description: | - A success response. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - required: - - status - allauth.TOTPAuthenticator: - description: | - Information on the TOTP authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - meta: - properties: - recovery_codes_generated: - description: Whether or not recovery codes where generated automatically. - type: boolean - type: object - data: - $ref: '#/components/schemas/allauth.TOTPAuthenticator' - required: - - status - - data - allauth.TOTPAuthenticatorNotFound: - description: | - No TOTP authenticator has been set up. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 404 - meta: - type: object - properties: - secret: - type: string - description: | - A TOTP secret that can be used to setup a new authenticator. - example: J4ZKKXTK7NOVU7EPUVY23LCDV4T2QZYM - totp_url: - type: string - description: | - otpauth URI from which a QR code can be generated and scanned by OTP clients. - example: otpauth://totp/Example:alice@fsf.org?secret=JBSWY3DPEHPK3PXP&issuer=Example - required: - - secret - - totp_url - required: - - status - - meta - allauth.TooManyRequests: - description: | - Too many requests. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 429 - required: - - status - allauth.Unauthenticated: - description: | - There is no authenticated session. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauth: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - allauth.WebAuthnAuthenticator: - description: A WebAuthn authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - required: - - status - - data - allauth.WebAuthnCreationOptionsResponse: - description: WebAuthn credential creation options. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnCredentialCreationOptions' - required: - - status - - data - allauth.WebAuthnRequestOptionsResponse: - description: WebAuthn credential request options. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnCredentialRequestOptions' - required: - - status - - data - schemas: - APISearchView: - type: object - description: Serializer for the APISearchView. - properties: - search: - type: string - search_regex: - type: boolean - default: false - search_whole: - type: boolean - default: false - search_notes: - type: boolean - default: false - limit: - type: integer - default: 1 - offset: - type: integer - default: 0 - required: - - search - AcceptOverallocatedEnum: - enum: - - reject - - accept - - trim - type: string - description: |- - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - ActionPlugin: - type: object - description: Serializer for the ActionPluginView responses. - properties: - action: - type: string - data: - type: object - additionalProperties: {} - required: - - action - - data - ActionPluginError: - type: object - description: Serializer for the ActionPluginView error responses. - properties: - error: - type: string - action: - type: string - required: - - error - Address: - type: object - description: Serializer for the Address Model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - link: - type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - required: - - company - - pk - - title - AddressBrief: - type: object - description: Serializer for Address Model (limited). - properties: - pk: - type: integer - readOnly: true - title: ID - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - required: - - pk - AllUnitListResponse: - type: object - description: Serializer for the AllUnitList. - properties: - default_system: - type: string - available_systems: - type: array - items: - type: string - available_units: - type: object - additionalProperties: - $ref: '#/components/schemas/Unit' - required: - - available_systems - - available_units - - default_system - Allauth.AuthenticationMethodMethodEnum: - type: string - enum: - - password - Allauth.ConflictResponseStatusEnum: - type: integer - enum: - - 409 - Allauth.ErrorResponseStatusEnum: - type: integer - enum: - - 400 - Allauth.ForbiddenResponseStatusEnum: - type: integer - enum: - - 403 - Allauth.RecoveryCodesAuthenticatorTypeEnum: - type: string - enum: - - recovery_codes - Allauth.SessionGoneResponseStatusEnum: - type: integer - enum: - - 410 - Allauth.TOTPAuthenticatorTypeEnum: - type: string - enum: - - totp - Allauth.WebAuthnAuthenticatorTypeEnum: - type: string - enum: - - webauthn - ApiToken: - type: object - description: Serializer for the ApiToken model. - properties: - created: - type: string - format: date-time - readOnly: true - expiry: - type: string - format: date - title: Expiry Date - description: Token expiry date - id: - type: integer - readOnly: true - last_seen: - type: string - format: date - nullable: true - description: Last time the token was used - name: - type: string - title: Token Name - description: Custom token name - maxLength: 100 - token: - type: string - description: |- - Provide a redacted version of the token. - - The *raw* key value should never be displayed anywhere! - readOnly: true - active: - type: boolean - description: Test if this token is active. - readOnly: true - revoked: - type: boolean - description: Token has been revoked - user: - type: integer - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - in_use: - type: boolean - description: Return True if the token is currently used to call the endpoint. - readOnly: true - required: - - active - - created - - id - - in_use - - token - - user_detail - Attachment: - type: object - description: Serializer class for the Attachment model. - properties: - pk: - type: integer - readOnly: true - title: ID - attachment: - type: string - format: uri - nullable: true - thumbnail: - type: string - format: uri - readOnly: true - nullable: true - filename: - type: string - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - comment: - type: string - description: Attachment comment - maxLength: 250 - is_image: - type: boolean - readOnly: true - description: True if this attachment is a valid image file - upload_date: - type: string - format: date - readOnly: true - upload_user: - type: integer - readOnly: true - nullable: true - title: User - description: User - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - file_size: - type: integer - readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - tags: - type: array - items: - type: string - required: - - file_size - - is_image - - model_id - - model_type - - pk - - upload_date - - user_detail - AttachmentModelTypeEnum: - enum: - - build - - company - - manufacturerpart - - supplierpart - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - transferorder - - part - - stockitem - type: string - description: |- - * `build` - Build Order - * `company` - Company - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - Barcode: - type: object - description: Generic serializer for receiving barcode data. - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - required: - - barcode - BarcodeAssign: - type: object - description: Serializer class for linking a barcode to an internal model. - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - build: - type: integer - nullable: true - title: Build Order - manufacturerpart: - type: integer - nullable: true - title: Manufacturer Part - supplierpart: - type: integer - nullable: true - title: Supplier Part - purchaseorder: - type: integer - nullable: true - title: Purchase Order - returnorder: - type: integer - nullable: true - title: Return Order - salesorder: - type: integer - nullable: true - title: Sales Order - salesordershipment: - type: integer - nullable: true - title: Sales Order Shipment - transferorder: - type: integer - nullable: true - title: Transfer Order - part: - type: integer - nullable: true - stockitem: - type: integer - nullable: true - title: Stock Item - stocklocation: - type: integer - nullable: true - title: Stock Location - required: - - barcode - BarcodeGenerate: - type: object - description: Serializer for generating a barcode. - properties: - model: - type: string - description: Model name to generate barcode for - pk: - type: integer - description: Primary key of model object to generate barcode for - required: - - model - - pk - BarcodePOAllocate: - type: object - description: |- - Serializer for allocating items against a purchase order. - - The scanned barcode could be a Part, ManufacturerPart or SupplierPart object - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - purchase_order: - type: integer - description: Purchase Order to allocate items against - required: - - barcode - - purchase_order - BarcodePOReceive: - type: object - description: |- - Serializer for receiving items against a purchase order. - - The following additional fields may be specified: - - - purchase_order: PurchaseOrder object to receive items against - - location: Location to receive items into - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - supplier: - type: integer - nullable: true - description: Supplier to receive items from - purchase_order: - type: integer - nullable: true - description: PurchaseOrder to receive items against - location: - type: integer - nullable: true - description: Location to receive items into - line_item: - type: integer - nullable: true - description: Purchase order line item to receive items against - auto_allocate: - type: boolean - default: true - description: Automatically allocate stock items to the purchase order - required: - - barcode - BarcodeSOAllocate: - type: object - description: |- - Serializr for allocating stock items to a sales order. - - The scanned barcode must map to a StockItem object - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - sales_order: - type: integer - description: Sales Order to allocate items against - line: - type: integer - nullable: true - description: Sales order line item to allocate items against - shipment: - type: integer - nullable: true - description: Sales order shipment to allocate items against - quantity: - type: integer - description: Quantity to allocate - required: - - barcode - - sales_order - BarcodeScanResult: - type: object - description: Serializer for barcode scan results. - properties: - pk: - type: integer - readOnly: true - title: ID - data: - type: string - readOnly: true - description: Barcode data - timestamp: - type: string - format: date-time - readOnly: true - description: Date and time of the barcode scan - endpoint: - type: string - readOnly: true - nullable: true - title: Path - description: URL endpoint which processed the barcode - context: - readOnly: true - nullable: true - description: Context data for the barcode scan - response: - readOnly: true - nullable: true - description: Response data from the barcode scan - result: - type: boolean - readOnly: true - description: Was the barcode scan successful? - user: - type: integer - readOnly: true - nullable: true - description: User who scanned the barcode - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - required: - - data - - pk - - result - - timestamp - - user_detail - BarcodeUnassign: - type: object - description: Serializer class for unlinking a barcode from an internal model. - properties: - build: - type: integer - nullable: true - title: Build Order - manufacturerpart: - type: integer - nullable: true - title: Manufacturer Part - supplierpart: - type: integer - nullable: true - title: Supplier Part - purchaseorder: - type: integer - nullable: true - title: Purchase Order - returnorder: - type: integer - nullable: true - title: Return Order - salesorder: - type: integer - nullable: true - title: Sales Order - salesordershipment: - type: integer - nullable: true - title: Sales Order Shipment - transferorder: - type: integer - nullable: true - title: Transfer Order - part: - type: integer - nullable: true - stockitem: - type: integer - nullable: true - title: Stock Item - stocklocation: - type: integer - nullable: true - title: Stock Location - BlankEnum: - enum: - - '' - BomItem: - type: object - description: Serializer for BomItem object. - properties: - part: - type: integer - title: Assembly - description: Select the parent assembly - sub_part: - type: integer - title: Component - description: Select the component part - reference: - type: string - description: BOM item reference - maxLength: 5000 - raw_amount: - type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: - type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: - type: boolean - description: This BOM item is optional - consumable: - type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double - nullable: true - note: - type: string - description: BOM item notes - maxLength: 500 - pk: - type: integer - readOnly: true - title: ID - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_min_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - substitutes: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - readOnly: true - nullable: true - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double - readOnly: true - nullable: true - available_substitute_stock: - type: number - format: double - readOnly: true - nullable: true - available_variant_stock: - type: number - format: double - readOnly: true - nullable: true - external_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - title: In Production - can_build: - type: number - format: double - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - sub_part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Component - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - required: - - part - - pk - - sub_part - BomItemSubstitute: - type: object - description: Serializer for the BomItemSubstitute class. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_item: - type: integer - description: Parent BOM item - part: - type: integer - description: Substitute part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - required: - - bom_item - - part - - part_detail - - pk - BomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - BriefUserProfile: - type: object - description: Brief serializer for the UserProfile model. - properties: - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - Build: - type: object - description: Serializes a Build object. - properties: - pk: - type: integer - readOnly: true - title: ID - title: - type: string - title: Description - description: Brief description of the build (optional) - maxLength: 100 - barcode_hash: - type: string - readOnly: true - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this build output - maxLength: 100 - creation_date: - type: string - format: date - readOnly: true - completed: - type: integer - readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: - type: string - format: date - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: - type: boolean - title: External Build - description: This build order is fulfilled externally - parent: - type: integer - nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: - type: integer - description: Select part to build - part_name: - type: string - readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: - type: integer - nullable: true - description: Project code for this build order - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - default: false - reference: - type: string - sales_order: - type: integer - nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: - type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' - readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - target_date: - type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: - type: integer - nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer - readOnly: true - nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - responsible: - type: integer - nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer - readOnly: true - title: Build Level - required: - - barcode_hash - - completed - - creation_date - - issued_by_detail - - level - - overdue - - part - - part_detail - - part_name - - pk - - quantity - - reference - - status - BuildAllocation: - type: object - description: Serializer for allocating stock items against a build order. - properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildAllocationItem' - required: - - items - BuildAllocationItem: - type: object - description: A serializer for allocating a single stock item against a build - order. - properties: - build_line: - type: integer - title: Build Line Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - output: - type: integer - nullable: true - title: Build Output - required: - - build_line - - quantity - - stock_item - BuildAutoAllocation: - type: object - description: DRF serializer for auto allocating stock items against a build - order. - properties: - location: - type: integer - nullable: true - title: Source Location - description: Stock location where parts are to be sourced (leave blank to - take from any location) - exclude_location: - type: integer - nullable: true - description: Exclude stock items from this selected location - interchangeable: - type: boolean - default: false - title: Interchangeable Stock - description: Stock items in multiple locations can be used interchangeably - substitutes: - type: boolean - default: true - title: Substitute Stock - description: Allow allocation of substitute parts - optional_items: - type: boolean - default: false - description: Allocate optional BOM items to build order - item_type: - allOf: - - $ref: '#/components/schemas/ItemTypeEnum' - default: untracked - description: |- - Select item type to auto-allocate - - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - build_lines: - type: array - items: - type: integer - title: Build Lines - description: Limit allocation to these build lines (leave blank to allocate - all lines) - BuildCancel: - type: object - description: Cancel an active BuildOrder. - properties: - remove_allocated_stock: - type: boolean - default: false - title: Consume Allocated Stock - description: Consume any stock which has already been allocated to this - build - remove_incomplete_outputs: - type: boolean - default: false - description: Delete any build outputs which have not been completed - BuildComplete: - type: object - description: DRF serializer for marking a BuildOrder as complete. - properties: - accept_overallocated: - allOf: - - $ref: '#/components/schemas/AcceptOverallocatedEnum' - default: reject - title: Overallocated Stock - description: |- - How do you want to handle extra stock items assigned to the build order - - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - accept_unallocated: - type: boolean - default: false - description: Accept that stock items have not been fully allocated to this - build order - accept_incomplete: - type: boolean - default: false - description: Accept that the required number of build outputs have not been - completed - BuildConsume: - type: object - description: |- - Serializer for consuming allocations against a BuildOrder. - - - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. - - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. - properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildConsumeAllocation' - lines: - type: array - items: - $ref: '#/components/schemas/BuildConsumeLineItem' - notes: - type: string - description: Optional notes for the stock consumption - BuildConsumeAllocation: - type: object - description: Serializer for an individual BuildItem to be consumed against a - BuildOrder. - properties: - build_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - build_item - - quantity - BuildConsumeLineItem: - type: object - description: Serializer for an individual BuildLine to be consumed against a - BuildOrder. - properties: - build_line: - type: integer - required: - - build_line - BuildItem: - type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - build_line: - type: integer - nullable: true - install_into: - type: integer - nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer - readOnly: true - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - stock_item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Stock Item - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - install_into_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Install Into - bom_reference: - type: string - readOnly: true - required: - - bom_reference - - build - - location - - pk - - quantity - - stock_item - BuildLine: - type: object - description: Serializer for a BuildItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - description: Build object - bom_item: - type: integer - readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - allocations: - type: array - items: - $ref: '#/components/schemas/BuildItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - build_reference: - type: string - readOnly: true - reference: - type: string - readOnly: true - consumable: - type: boolean - readOnly: true - optional: - type: boolean - readOnly: true - testable: - type: boolean - readOnly: true - trackable: - type: boolean - readOnly: true - inherited: - type: boolean - readOnly: true - allow_variants: - type: boolean - readOnly: true - allocated: - type: number - format: double - readOnly: true - in_production: - type: number - format: double - readOnly: true - scheduled_to_build: - type: number - format: double - readOnly: true - on_order: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_substitute_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - external_stock: - type: number - format: double - readOnly: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' - readOnly: true - nullable: true - title: BOM Item - assembly_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - required: - - allocated - - allow_variants - - available_stock - - available_substitute_stock - - available_variant_stock - - bom_item - - build - - build_reference - - consumable - - consumed - - external_stock - - in_production - - inherited - - on_order - - optional - - part - - pk - - quantity - - reference - - scheduled_to_build - - testable - - trackable - BuildOutput: - type: object - description: |- - Serializer for a "BuildOutput". - - Note that a "BuildOutput" is really just a StockItem which is "in production"! - properties: - output: - type: integer - title: Build Output - required: - - output - BuildOutputComplete: - type: object - description: DRF serializer for completing one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: - type: integer - description: Location for completed build outputs - status_custom_key: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - title: Status - accept_incomplete_allocation: - type: boolean - default: false - description: Complete outputs if stock has not been fully allocated - notes: - type: string - required: - - location - - outputs - BuildOutputCreate: - type: object - description: |- - Serializer for creating a new BuildOutput against a BuildOrder. - - URL pattern is "/api/build//create-output/", where is the PK of a Build. - - The Build object is provided to the serializer context. - properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - batch_code: - type: string - description: Batch code for this build output - serial_numbers: - type: string - description: Enter serial numbers for build outputs - location: - type: integer - nullable: true - description: Stock location for build output - auto_allocate: - type: boolean - nullable: true - default: false - title: Auto Allocate Serial Numbers - description: Automatically allocate required items with matching serial - numbers - required: - - quantity - BuildOutputDelete: - type: object - description: DRF serializer for deleting (cancelling) one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutput' - required: - - outputs - BuildOutputQuantity: - type: object - description: Build output with quantity field. - properties: - output: - type: integer - title: Build Output - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - required: - - output - BuildOutputScrap: - type: object - description: Scrapping one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: - type: integer - description: Stock location for scrapped outputs - discard_allocations: - type: boolean - default: false - description: Discard any stock allocations for scrapped outputs - notes: - type: string - description: Reason for scrapping build output(s) - required: - - location - - notes - - outputs - BuildStatusEnum: - enum: - - 10 - - 20 - - 25 - - 30 - - 40 - type: integer - description: |- - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - BuildUnallocation: - type: object - description: |- - DRF serializer for unallocating stock from a BuildOrder. - - Allocated stock can be unallocated with a number of filters: - - - output: Filter against a particular build output (blank = untracked stock) - - bom_item: Filter against a particular BOM line item - properties: - build_line: - type: integer - nullable: true - output: - type: integer - nullable: true - title: Build output - BulkRequest: - type: object - description: Parameters for selecting items for bulk operations. - properties: - items: - type: array - items: - type: integer - title: A list of primary key values - filters: - type: object - additionalProperties: {} - title: A dictionary of filter values - Category: - type: object - description: Serializer for PartCategory. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - default_location: - type: integer - nullable: true - description: Default location for parts in this category - default_keywords: - type: string - nullable: true - description: Default keywords for parts in this category - maxLength: 250 - level: - type: integer - readOnly: true - parent: - type: integer - nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer - readOnly: true - nullable: true - title: Parts - subcategories: - type: integer - readOnly: true - nullable: true - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - starred: - type: boolean - description: Return True if the category is directly "starred" by the current - user. - readOnly: true - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: - type: string - nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: - type: integer - readOnly: true - nullable: true - required: - - level - - name - - pathstring - - pk - - starred - CategoryParameterTemplate: - type: object - description: Serializer for the PartCategoryParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - template: - type: integer - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: - type: string - description: Default Parameter Value - maxLength: 500 - required: - - category - - pk - - template - - template_detail - CategoryTree: - type: object - description: Serializer for PartCategory tree. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - parent: - type: integer - nullable: true - icon: - type: string - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - subcategories: - type: integer - readOnly: true - required: - - name - - pk - - subcategories - ColorEnum: - enum: - - primary - - secondary - - success - - danger - - warning - - info - - dark - type: string - description: |- - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - Company: - type: object - description: Serializer for Company object (full detail). - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - website: - type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: - type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: - type: string - format: email - nullable: true - default: '' - currency: - type: string - description: |- - Default currency used for this supplier - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: - type: string - format: uri - nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parts_supplied: - type: integer - readOnly: true - parts_manufactured: - type: integer - readOnly: true - primary_address: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - currency - - name - - parts_manufactured - - parts_supplied - - pk - CompanyBrief: - type: object - description: Serializer for Company object (limited detail). - properties: - pk: - type: integer - readOnly: true - title: ID - active: - type: boolean - description: Is this company active? - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - image: - type: string - format: uri - readOnly: true - thumbnail: - type: string - readOnly: true - currency: - type: string - readOnly: true - description: Default currency used for this company - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - required: - - currency - - image - - name - - pk - - thumbnail - Config: - type: object - description: |- - Serializer for the InvenTree configuration. - - This is a read-only serializer. - properties: - key: - type: string - readOnly: true - env_var: - type: string - readOnly: true - nullable: true - config_key: - type: string - readOnly: true - nullable: true - source: - type: string - readOnly: true - accessed: - type: string - format: date-time - readOnly: true - required: - - accessed - - key - - source - ConfigTypeEnum: - enum: - - M - - D - type: string - description: |- - * `M` - Machine - * `D` - Driver - Contact: - type: object - description: Serializer class for the Contact model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - company_name: - type: string - readOnly: true - name: - type: string - maxLength: 100 - phone: - type: string - maxLength: 100 - email: - type: string - format: email - maxLength: 254 - role: - type: string - maxLength: 100 - required: - - company - - company_name - - name - - pk - ContentType: - type: object - description: Serializer for ContentType models. - properties: - pk: - type: integer - readOnly: true - app_label: - type: string - readOnly: true - model: - type: string - readOnly: true - app_labeled_name: - type: string - readOnly: true - is_plugin: - type: boolean - description: Return True if the model is a plugin model. - readOnly: true - required: - - app_label - - app_labeled_name - - is_plugin - - model - - pk - ConvertStockItem: - type: object - description: DRF serializer class for converting a StockItem to a valid variant - part. - properties: - part: - type: integer - description: Select part to convert stock item into - required: - - part - CurrencyExchange: - type: object - description: |- - Serializer for a Currency Exchange request. - - It's only purpose is describing the results correctly in the API schema right now. - properties: - base_currency: - type: string - readOnly: true - exchange_rates: - type: object - additionalProperties: - type: number - format: double - updated: - type: string - format: date-time - readOnly: true - required: - - base_currency - - exchange_rates - - updated - CustomState: - type: object - description: Serializer for the custom state model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: - type: string - description: Name of the state - maxLength: 250 - label: - type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: State logical key that is equal to this custom state in business - logic - model: - type: integer - nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - required: - - key - - label - - logical_key - - model_name - - name - - pk - - reference_status - CustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: - type: string - description: Optional unit symbol - maxLength: 10 - definition: - type: string - description: Unit definition - maxLength: 50 - required: - - definition - - name - - pk - Customize: - type: object - description: Serializer for customize field. - properties: - logo: - type: string - splash: - type: string - login_message: - type: string - nullable: true - navbar_message: - type: string - nullable: true - disable_theme_storage: - type: boolean - default: false - required: - - login_message - - logo - - navbar_message - - splash - DataImportAcceptRow: - type: object - description: Serializer for accepting rows of data. - properties: - rows: - type: array - items: - type: integer - title: Rows - description: List of row IDs to accept - required: - - rows - DataImportColumnMap: - type: object - description: Serializer for the DataImportColumnMap model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - column: - type: string - maxLength: 100 - field: - type: string - readOnly: true - label: - type: string - readOnly: true - description: - type: string - readOnly: true - required: - - description - - field - - label - - pk - - session - DataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true - nullable: true - title: Original row data - data: - nullable: true - errors: - readOnly: true - nullable: true - valid: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - required: - - complete - - pk - - row_index - - session - - valid - DataImportSession: - type: object - description: Serializer for the DataImportSession model. - properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: - type: string - format: date-time - readOnly: true - data_file: - type: string - format: uri - update_records: - type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: - readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' - readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - columns: - readOnly: true - nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - readOnly: true - field_defaults: - nullable: true - field_overrides: - nullable: true - field_filters: - nullable: true - row_count: - type: integer - readOnly: true - completed_row_count: - type: integer - readOnly: true - required: - - available_fields - - column_mappings - - completed_row_count - - data_file - - model_type - - pk - - row_count - - status - - timestamp - - user_detail - DataImportSessionModelTypeEnum: - enum: - - projectcode - - inventreecustomuserstatemodel - - customunit - - parametertemplate - - parameter - - partcategory - - parttesttemplate - - partsellpricebreak - - part - - bomitem - - partcategoryparametertemplate - - address - - company - - contact - - manufacturerpart - - supplierpart - - supplierpricebreak - - stockitemtestresult - - stockitem - - stocklocation - - stockitemtracking - - purchaseorder - - purchaseorderlineitem - - purchaseorderextraline - - salesorder - - salesorderlineitem - - salesordershipment - - salesorderextraline - - returnorder - - returnorderlineitem - - returnorderextraline - - transferorder - - transferorderlineitem - type: string - description: |- - * `projectcode` - Project Code - * `inventreecustomuserstatemodel` - Custom State - * `customunit` - Custom Unit - * `parametertemplate` - Parameter Template - * `parameter` - Parameter - * `partcategory` - Part Category - * `parttesttemplate` - Part Test Template - * `partsellpricebreak` - Part Sale Price Break - * `part` - Part - * `bomitem` - BOM Item - * `partcategoryparametertemplate` - Part Category Parameter Template - * `address` - Address - * `company` - Company - * `contact` - Contact - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `supplierpricebreak` - Supplier Price Break - * `stockitemtestresult` - Stock Item Test Result - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - * `stockitemtracking` - Stock Item Tracking - * `purchaseorder` - Purchase Order - * `purchaseorderlineitem` - Purchase Order Line Item - * `purchaseorderextraline` - Purchase Order Extra Line - * `salesorder` - Sales Order - * `salesorderlineitem` - Sales Order Line Item - * `salesordershipment` - Sales Order Shipment - * `salesorderextraline` - Sales Order Extra Line - * `returnorder` - Return Order - * `returnorderlineitem` - Return Order Line Item - * `returnorderextraline` - Return Order Extra Line - * `transferorder` - Transfer Order - * `transferorderlineitem` - Transfer Order Line Item - DataImportSessionStatusEnum: - enum: - - 0 - - 10 - - 20 - - 30 - - 40 - type: integer - description: |- - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - DataImporterModel: - type: object - description: Model references to map info that might get imported. - properties: - serializer: - type: string - readOnly: true - model_type: - type: string - readOnly: true - api_url: - type: string - format: uri - readOnly: true - nullable: true - required: - - model_type - - serializer - DataOutput: - type: object - description: Serializer for the DataOutput model. - properties: - pk: - type: integer - readOnly: true - title: ID - created: - type: string - format: date - readOnly: true - user: - type: integer - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - total: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - progress: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - complete: - type: boolean - output_type: - type: string - nullable: true - maxLength: 100 - template_name: - type: string - nullable: true - maxLength: 100 - plugin: - type: string - nullable: true - maxLength: 100 - output: - type: string - format: uri - readOnly: true - nullable: true - errors: - nullable: true - required: - - created - - pk - - user_detail - DefaultLocation: - type: object - description: |- - Brief serializer for a StockLocation object. - - Defined here, rather than stock.serializers, to negotiate circular imports. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - DirectionEnum: - enum: - - I - - O - type: string - description: |- - * `I` - Inbound - * `O` - Outbound - DuplicateOrder: - type: object - description: Serializer for specifying options when duplicating an order. - properties: - order_id: - type: integer - description: ID of the order to duplicate - copy_lines: - type: boolean - default: true - description: Copy line items from the original order - copy_extra_lines: - type: boolean - default: true - description: Copy extra line items from the original order - copy_parameters: - type: boolean - default: true - description: Copy order parameters from the original order - required: - - order_id - DuplicatePart: - type: object - description: |- - Serializer for specifying options when duplicating a Part. - - The fields in this serializer control how the Part is duplicated. - properties: - part: - type: integer - title: Original Part - description: Select original part to duplicate - copy_image: - type: boolean - default: false - description: Copy image from original part - copy_bom: - type: boolean - default: false - description: Copy bill of materials from original part - copy_parameters: - type: boolean - default: false - description: Copy parameter data from original part - copy_notes: - type: boolean - default: true - description: Copy notes from original part - copy_tests: - type: boolean - default: false - description: Copy test templates from original part - required: - - part - EmailMessage: - type: object - description: Serializer for the EmailMessage model. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Global ID - description: Unique identifier for this message - global_id: - type: string - format: uuid - readOnly: true - description: Unique identifier for this message - message_id_key: - type: string - nullable: true - title: Message ID - description: Identifier for this message (might be supplied by external - system) - maxLength: 250 - thread_id_key: - type: string - nullable: true - title: Thread ID - description: Identifier for this message thread (might be supplied by external - system) - maxLength: 250 - thread: - type: string - format: uuid - description: Linked thread for this message - nullable: true - subject: - type: string - maxLength: 250 - body: - type: string - to: - type: string - format: email - maxLength: 254 - sender: - type: string - format: email - maxLength: 254 - status: - nullable: true - oneOf: - - $ref: '#/components/schemas/EmailMessageStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - timestamp: - type: string - format: date-time - readOnly: true - headers: - nullable: true - full_message: - type: string - nullable: true - direction: - nullable: true - oneOf: - - $ref: '#/components/schemas/DirectionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - priority: - allOf: - - $ref: '#/components/schemas/PriorityEnum' - minimum: -9223372036854775808 - maximum: 9223372036854775807 - error_code: - type: string - nullable: true - maxLength: 50 - error_message: - type: string - nullable: true - error_timestamp: - type: string - format: date-time - nullable: true - delivery_options: - nullable: true - required: - - body - - global_id - - pk - - priority - - sender - - subject - - timestamp - - to - EmailMessageStatusEnum: - enum: - - A - - S - - F - - D - - R - - C - type: string - description: |- - * `A` - Announced - * `S` - Sent - * `F` - Failed - * `D` - Delivered - * `R` - Read - * `C` - Confirmed - ErrorMessage: - type: object - description: DRF serializer for server error messages. - properties: - when: - type: string - format: date-time - readOnly: true - info: - type: string - readOnly: true - data: - type: string - readOnly: true - nullable: true - path: - type: string - format: uri - readOnly: true - nullable: true - maxLength: 200 - pk: - type: integer - readOnly: true - title: ID - required: - - info - - pk - - when - ExtendedUser: - type: object - description: Serializer for a User with a bit more info. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - required: - - email - - first_name - - groups - - last_name - - pk - - profile - - username - FailedTask: - type: object - description: Serializer for an individual failed task object. - properties: - pk: - type: string - readOnly: true - name: - type: string - readOnly: true - description: Optional human-readable name for lookup and display. - func: - type: string - title: Function - description: Dotted import path to the callable, e.g. myapp.tasks.job. - maxLength: 256 - args: - type: string - readOnly: true - nullable: true - title: Arguments - description: Pickled positional arguments (tuple). - kwargs: - type: string - readOnly: true - nullable: true - title: Keyword arguments - description: Pickled keyword arguments (dict). - started: - type: string - format: date-time - readOnly: true - title: Started at - description: When the worker started executing the task. - stopped: - type: string - format: date-time - readOnly: true - title: Stopped at - description: When the worker finished (success or failure). - attempt_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: How many times execution was attempted. - result: - type: string - required: - - func - - name - - pk - - result - - started - - stopped - Flag: - type: object - description: Serializer for feature flags. - properties: - key: - type: string - readOnly: true - state: - type: string - readOnly: true - conditions: - type: array - items: - type: object - additionalProperties: {} - readOnly: true - nullable: true - required: - - key - - state - FlowsEnum: - type: string - enum: - - provider_redirect - - provider_token - GenerateBatchCode: - type: object - description: |- - Serializer for generating a batch code. - - Any of the provided write-only fields can be used for additional context. - properties: - batch_code: - type: string - readOnly: true - description: Generated batch code - build_order: - type: integer - nullable: true - description: Select build order - item: - type: integer - nullable: true - title: Stock Item - description: Select stock item to generate batch code for - location: - type: integer - nullable: true - description: Select location to generate batch code for - part: - type: integer - nullable: true - description: Select part to generate batch code for - purchase_order: - type: integer - nullable: true - description: Select purchase order - quantity: - type: number - format: double - nullable: true - description: Enter quantity for batch code - required: - - batch_code - GenerateSerialNumber: - type: object - description: |- - Serializer for generating one or multiple serial numbers. - - Any of the provided write-only fields can be used for additional context. - - Note that in the case where multiple serial numbers are required, - the "serial_number" field will return a string with multiple serial numbers - separated by a comma. - properties: - serial_number: - type: string - readOnly: true - nullable: true - description: Generated serial number - part: - type: integer - nullable: true - description: Select part to generate serial number for - quantity: - type: integer - default: 1 - description: Quantity of serial numbers to generate - GenericStateClass: - type: object - description: API serializer for generic state class information. - properties: - status_class: - type: string - readOnly: true - title: Class - values: - type: object - additionalProperties: - $ref: '#/components/schemas/GenericStateValue' - required: - - status_class - - values - GenericStateValue: - type: object - description: API serializer for generic state information. - properties: - key: - type: integer - logical_key: - type: string - name: - type: string - label: - type: string - color: - type: string - custom: - type: boolean - required: - - key - - label - - name - GetAuthToken: - type: object - description: Serializer for the GetAuthToken API endpoint. - properties: - token: - type: string - readOnly: true - name: - type: string - expiry: - type: string - format: date - readOnly: true - required: - - expiry - - name - - token - GetSimpleLogin: - type: object - description: Serializer for the simple login view. - properties: - email: - type: string - required: - - email - GlobalSettings: - type: object - description: Serializer for the InvenTreeSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - read_only: - type: boolean - description: Indicates if the setting is overridden by an environment variable - readOnly: true - title: Override - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - name - - pk - - read_only - - typ - - type - - units - - value - Group: - type: object - description: Serializer for a 'Group'. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - maxLength: 150 - permissions: - type: object - additionalProperties: {} - description: Return a list of permissions associated with the group. - readOnly: true - nullable: true - roles: - type: array - items: - $ref: '#/components/schemas/RuleSet' - readOnly: true - nullable: true - users: - type: array - items: - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - name - - pk - HealthCheckStatus: - type: object - description: Status of the overall system health. - properties: - status: - allOf: - - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' - readOnly: true - default: ok - description: |- - Health status of the InvenTree server - - * `ok` - ok - * `loading` - loading - required: - - status - HealthCheckStatusStatusEnum: - enum: - - ok - - loading - type: string - description: |- - * `ok` - ok - * `loading` - loading - Icon: - type: object - description: Serializer for an icon. - properties: - name: - type: string - category: - type: string - tags: - type: array - items: - type: string - variants: - type: object - additionalProperties: - type: string - required: - - category - - name - - tags - - variants - IconPackage: - type: object - description: Serializer for a list of icons. - properties: - name: - type: string - prefix: - type: string - fonts: - type: object - additionalProperties: - type: string - icons: - type: object - additionalProperties: - $ref: '#/components/schemas/Icon' - required: - - fonts - - icons - - name - - prefix - IdEnum: - type: string - enum: - - login - - login_by_code - - mfa_authenticate - - mfa_reauthenticate - - provider_redirect - - provider_signup - - provider_token - - reauthenticate - - signup - - verify_email - - verify_phone - ImportParameter: - type: object - description: Serializer for a ImportParameter. - properties: - name: - type: string - value: - type: string - parameter_template: - type: integer - nullable: true - description: Return the ID of the parameter template if available. - readOnly: true - on_category: - type: boolean - required: - - name - - on_category - - value - ImportRequest: - type: object - description: Serializer for the import request. - properties: - plugin: - type: string - supplier: - type: string - part_import_id: - type: string - category_id: - type: integer - nullable: true - part_id: - type: integer - nullable: true - required: - - part_import_id - - plugin - - supplier - ImportResult: - type: object - description: Serializer for the import result. - properties: - part_id: - type: integer - part_detail: - $ref: '#/components/schemas/Part' - manufacturer_part_id: - type: integer - supplier_part_id: - type: integer - pricing: - type: array - items: - type: array - items: - type: number - format: double - minLength: 2 - maxLength: 2 - description: Return the pricing data as a dictionary. - readOnly: true - parameters: - type: array - items: - $ref: '#/components/schemas/ImportParameter' - required: - - manufacturer_part_id - - parameters - - part_detail - - part_id - - pricing - - supplier_part_id - InfoApi: - type: object - description: InvenTree server information - some information might be blanked - if called without elevated credentials. - properties: - server: - type: string - readOnly: true - id: - type: string - readOnly: true - nullable: true - version: - type: string - readOnly: true - instance: - type: string - readOnly: true - apiVersion: - type: integer - readOnly: true - worker_running: - type: boolean - readOnly: true - worker_count: - type: integer - readOnly: true - worker_pending_tasks: - type: integer - readOnly: true - plugins_enabled: - type: boolean - readOnly: true - plugins_install_disabled: - type: boolean - readOnly: true - active_plugins: - readOnly: true - email_configured: - type: boolean - readOnly: true - debug_mode: - type: boolean - readOnly: true - docker_mode: - type: boolean - readOnly: true - default_locale: - type: string - readOnly: true - customize: - allOf: - - $ref: '#/components/schemas/Customize' - readOnly: true - system_health: - type: boolean - readOnly: true - database: - type: string - readOnly: true - platform: - type: string - readOnly: true - installer: - type: string - readOnly: true - target: - type: string - readOnly: true - nullable: true - django_admin: - type: string - readOnly: true - settings: - allOf: - - $ref: '#/components/schemas/Settings' - readOnly: true - required: - - active_plugins - - apiVersion - - customize - - database - - debug_mode - - default_locale - - django_admin - - docker_mode - - email_configured - - installer - - instance - - platform - - plugins_enabled - - plugins_install_disabled - - server - - settings - - system_health - - version - - worker_count - - worker_pending_tasks - - worker_running - InitialStock: - type: object - description: Serializer for creating initial stock quantity. - properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - title: Initial Stock Quantity - description: Specify initial stock quantity for this Part. If quantity is - zero, no stock is added. - location: - type: integer - nullable: true - title: Initial Stock Location - description: Specify initial stock location for this Part - required: - - quantity - InitialSupplier: - type: object - description: Serializer for adding initial supplier / manufacturer information. - properties: - supplier: - type: integer - nullable: true - description: Select supplier (or leave blank to skip) - sku: - type: string - description: Supplier stock keeping unit - maxLength: 100 - manufacturer: - type: integer - nullable: true - description: Select manufacturer (or leave blank to skip) - mpn: - type: string - description: Manufacturer part number - maxLength: 100 - InstallStockItem: - type: object - description: Serializer for installing a stock item into a given part. - properties: - stock_item: - type: integer - description: Select stock item to install - quantity: - type: integer - minimum: 1 - default: 1 - title: Quantity to Install - description: Enter the quantity of items to install - note: - type: string - description: Add transaction note (optional) - required: - - stock_item - IsTrueEnum: - type: boolean - enum: - - true - ItemTypeEnum: - enum: - - all - - untracked - - tracked - type: string - description: |- - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - LabelPrint: - type: object - description: Serializer class for printing a label. - properties: - template: - type: integer - description: Select label template - plugin: - type: string - title: Printing Plugin - description: Select plugin to use for label printing - items: - type: array - items: - type: integer - description: List of item primary keys to include in the report - required: - - items - - template - LabelTemplate: - type: object - description: Serializer class for label template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: - type: number - format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm - required: - - description - - model_type - - name - - pk - - revision - - template - LicenseView: - type: object - description: Serializer for license information. - properties: - backend: - type: array - items: {} - readOnly: true - description: Backend licenses texts - frontend: - type: array - items: {} - readOnly: true - description: Frontend licenses texts - required: - - backend - - frontend - Link: - type: object - description: Serializer for all possible links. - properties: - doc: - type: string - format: uri - code: - type: string - format: uri - app: - type: string - format: uri - bug: - type: string - format: uri - required: - - app - - bug - - code - - doc - LocatePlugin: - type: object - description: Serializer for the LocatePluginView API endpoint. - properties: - plugin: - type: string - description: Plugin to use for location identification - item: - type: integer - description: StockItem to identify - location: - type: integer - description: StockLocation to identify - required: - - plugin - Location: - type: object - description: Detailed information about a stock location. - properties: - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - name: - type: string - description: Name - maxLength: 100 - level: - type: integer - readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer - nullable: true - title: Parent Location - description: Parent stock location - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - items: - type: integer - readOnly: true - title: Stock Items - sublocations: - type: integer - readOnly: true - owner: - type: integer - nullable: true - description: Select Owner - icon: - type: string - readOnly: true - custom_icon: - type: string - nullable: true - title: Icon - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: - type: integer - nullable: true - description: Stock location type of this location - location_type_detail: - allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - barcode_hash - - icon - - items - - level - - name - - pathstring - - pk - - sublocations - LocationBrief: - type: object - description: Provides a brief serializer for a StockLocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - LocationTree: - type: object - description: Serializer for a simple tree view. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - parent: - type: integer - nullable: true - icon: - type: string - description: |- - Get the current icon used for this location. - - The icon field on this model takes precedences over the possibly assigned stock location type - readOnly: true - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - sublocations: - type: integer - readOnly: true - required: - - icon - - name - - pk - - sublocations - LoginMethodsEnum: - type: string - enum: - - email - - username - MachineConfig: - type: object - description: Serializer for a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - readOnly: true - description: Type of machine - driver: - type: string - readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type - - name - - pk - - properties - - restart_required - - status - - status_text - MachineConfigCreate: - type: object - description: Serializer for creating a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - description: Type of machine - maxLength: 255 - driver: - type: string - description: Driver used for the machine - maxLength: 255 - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type - - name - - pk - - properties - - restart_required - - status - - status_text - MachineDriver: - type: object - description: Machine drivers. - properties: - slug: - type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: - type: string - description: - type: string - provider_file: - type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} - nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - machine_type: - type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - driver_errors: - type: array - items: - type: string - description: Errors registered against driver. - readOnly: true - required: - - description - - driver_errors - - is_builtin - - machine_type - - name - - provider_file - - slug - MachineProperty: - type: object - description: Machine Properties are set by the driver/machine to represent specific - state. - properties: - key: - type: string - description: Key of the property - value: - type: string - description: Value of the property - group: - type: string - description: Grouping of the property - type: - allOf: - - $ref: '#/components/schemas/MachinePropertyTypeEnum' - default: str - description: |- - Type of the property - - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - max_progress: - type: integer - nullable: true - description: Maximum value for progress type, required if type=progress - required: - - key - - value - MachinePropertyTypeEnum: - enum: - - str - - bool - - progress - - int - - float - type: string - description: |- - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - MachineRegistryError: - type: object - description: Machine registry error. - properties: - message: - type: string - required: - - message - MachineRegistryStatus: - type: object - description: Machine registry status, showing all errors that were registered. - properties: - registry_errors: - type: array - items: - $ref: '#/components/schemas/MachineRegistryError' - required: - - registry_errors - MachineRestart: - type: object - description: Serializer for the machine restart response. - properties: - ok: - type: boolean - required: - - ok - MachineSetting: - type: object - description: Serializer for the MachineSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - required: - - choices - - config_type - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - required - - typ - - type - - units - - value - MachineType: - type: object - description: Available machine types. - properties: - slug: - type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: - type: string - description: - type: string - provider_file: - type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} - nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - required: - - description - - is_builtin - - name - - provider_file - - slug - ManufacturerPart: - type: object - description: Serializer for ManufacturerPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - pretty_name: - type: string - readOnly: true - nullable: true - manufacturer: - type: integer - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - description: - type: string - nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: - type: string - nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string - format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - manufacturer - - part - - pk - MeUser: - type: object - description: API serializer specifically for the 'me' endpoint. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - required: - - email - - first_name - - groups - - is_active - - is_staff - - is_superuser - - last_name - - pk - - profile - - username - Metadata: - type: object - description: Serializer class for model metadata API access. - properties: - metadata: {} - required: - - metadata - ModelTypeDf8Enum: - enum: - - build.build - - company.company - - company.manufacturerpart - - company.supplierpart - - order.purchaseorder - - order.returnorder - - order.salesorder - - order.salesordershipment - - order.transferorder - - part.part - - stock.stocklocation - type: string - description: |- - * `build.build` - Build Order - * `company.company` - Company - * `company.manufacturerpart` - Manufacturer Part - * `company.supplierpart` - Supplier Part - * `order.purchaseorder` - Purchase Order - * `order.returnorder` - Return Order - * `order.salesorder` - Sales Order - * `order.salesordershipment` - Sales Order Shipment - * `order.transferorder` - Transfer Order - * `part.part` - Part - * `stock.stocklocation` - Stock Location - NameEnum: - enum: - - admin - - part_category - - part - - bom - - stock_location - - stock - - build - - purchase_order - - sales_order - - return_order - - transfer_order - - repair_order - type: string - description: |- - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - NewsFeedEntry: - type: object - description: Serializer for the NewsFeedEntry model. - properties: - pk: - type: integer - readOnly: true - title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: - type: string - format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: - type: string - maxLength: 250 - read: - type: boolean - required: - - author - - feed_id - - link - - pk - - published - - read - - summary - - title - NotesImage: - type: object - description: Serializer for the NotesImage model. - properties: - pk: - type: integer - readOnly: true - title: ID - image: - type: string - format: uri - user: - type: integer - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - model_type: - type: string - nullable: true - description: Target model type for this image - maxLength: 100 - model_id: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Target model ID for this image - required: - - date - - image - - pk - NotificationMessage: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. - readOnly: true - user: - type: integer - readOnly: true - category: - type: string - readOnly: true - name: - type: string - readOnly: true - message: - type: string - readOnly: true - nullable: true - creation: - type: string - format: date-time - readOnly: true - age: - type: integer - description: Age of the message in seconds. - readOnly: true - age_human: - type: string - description: Humanized age. - readOnly: true - read: - type: boolean - required: - - age - - age_human - - category - - creation - - name - - pk - - read - - source - - target - - user - NullEnum: - enum: - - null - ObservabilityEnd: - type: object - description: Serializer for observability end endpoint. - properties: - traceid: - type: string - description: Trace ID to end - maxLength: 128 - service: - type: string - description: Service name - maxLength: 128 - required: - - service - - traceid - OutcomeEnum: - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - - 60 - type: integer - description: |- - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - Owner: - type: object - description: Serializer for an "Owner" (either a "user" or a "group"). - properties: - pk: - type: integer - readOnly: true - title: ID - owner_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - nullable: true - owner_model: - type: string - readOnly: true - name: - type: string - readOnly: true - label: - type: string - readOnly: true - required: - - label - - name - - owner_model - - pk - PageSizeEnum: - enum: - - A4 - - A3 - - Legal - - Letter - type: string - description: |- - * `A4` - A4 - * `A3` - A3 - * `Legal` - Legal - * `Letter` - Letter - PaginatedAddressList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Address' - PaginatedApiTokenList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ApiToken' - PaginatedAttachmentList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Attachment' - PaginatedBarcodeScanResultList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BarcodeScanResult' - PaginatedBomItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BomItem' - PaginatedBomItemSubstituteList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - PaginatedBuildItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BuildItem' - PaginatedBuildLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BuildLine' - PaginatedBuildList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Build' - PaginatedCategoryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Category' - PaginatedCategoryParameterTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CategoryParameterTemplate' - PaginatedCategoryTreeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CategoryTree' - PaginatedCompanyList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Company' - PaginatedContactList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Contact' - PaginatedContentTypeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ContentType' - PaginatedCustomStateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CustomState' - PaginatedCustomUnitList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CustomUnit' - PaginatedDataImportColumnMapList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - PaginatedDataImportRowList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportRow' - PaginatedDataImportSessionList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportSession' - PaginatedDataOutputList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataOutput' - PaginatedEmailMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/EmailMessage' - PaginatedErrorMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ErrorMessage' - PaginatedFailedTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/FailedTask' - PaginatedGlobalSettingsList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/GlobalSettings' - PaginatedGroupList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Group' - PaginatedIconPackageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/IconPackage' - PaginatedLabelTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/LabelTemplate' - PaginatedLocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Location' - PaginatedLocationTreeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/LocationTree' - PaginatedMachineConfigList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/MachineConfig' - PaginatedManufacturerPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ManufacturerPart' - PaginatedNewsFeedEntryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NewsFeedEntry' - PaginatedNotesImageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NotesImage' - PaginatedNotificationMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NotificationMessage' - PaginatedOwnerList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Owner' - PaginatedParameterList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Parameter' - PaginatedParameterTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ParameterTemplate' - PaginatedPartInternalPriceList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartInternalPrice' - PaginatedPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Part' - PaginatedPartRelationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartRelation' - PaginatedPartSalePriceList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - PaginatedPartStocktakeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartStocktake' - PaginatedPartTestTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartTestTemplate' - PaginatedPartThumbList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartThumb' - PaginatedPendingTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PendingTask' - PaginatedPluginConfigList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PluginConfig' - PaginatedPluginSettingList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PluginSetting' - PaginatedProjectCodeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ProjectCode' - PaginatedPurchaseOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - PaginatedPurchaseOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderLineItem' - PaginatedPurchaseOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrder' - PaginatedRepairOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrderAllocation' - PaginatedRepairOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrderLineItem' - PaginatedRepairOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrder' - PaginatedReportAssetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportAsset' - PaginatedReportSnippetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportSnippet' - PaginatedReportTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportTemplate' - PaginatedReturnOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrderExtraLine' - PaginatedReturnOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrderLineItem' - PaginatedReturnOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrder' - PaginatedRuleSetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RuleSet' - PaginatedSalesOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderAllocation' - PaginatedSalesOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderExtraLine' - PaginatedSalesOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderLineItem' - PaginatedSalesOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrder' - PaginatedSalesOrderShipmentList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipment' - PaginatedScheduledTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ScheduledTask' - PaginatedSelectionEntryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - PaginatedSelectionListList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionList' - PaginatedStockItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItem' - PaginatedStockItemTestResultList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - PaginatedStockLocationTypeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockLocationType' - PaginatedStockTrackingList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockTracking' - PaginatedSupplierPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPart' - PaginatedSupplierPriceBreakList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreak' - PaginatedTransferOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocation' - PaginatedTransferOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderLineItem' - PaginatedTransferOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrder' - PaginatedUserCreateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserCreate' - PaginatedUserSettingsList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserSettings' - Parameter: - type: object - description: Serializer for the Parameter model. - properties: - pk: - type: integer - readOnly: true - title: ID - template: - type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - default: '' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: ID of the target model for this parameter - data: - type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: - type: number - format: double - nullable: true - note: - type: string - description: Optional note field - maxLength: 500 - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - updated_by: - type: integer - readOnly: true - nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - data - - model_id - - pk - - template - - template_detail - ParameterTemplate: - type: object - description: Serializer for the ParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Parameter Name - maxLength: 100 - units: - type: string - description: Physical units for this parameter - maxLength: 25 - description: - type: string - description: Parameter description - maxLength: 250 - model_type: - nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: - type: boolean - description: Is this parameter a checkbox? - choices: - type: string - description: Valid choices for this parameter (comma-separated) - maxLength: 5000 - selectionlist: - type: integer - nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? - required: - - name - - pk - Part: - type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. - properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category: - type: integer - nullable: true - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - category_name: - type: string - readOnly: true - component: - type: boolean - description: Can this part be used to build other parts? - creation_date: - type: string - format: date - readOnly: true - nullable: true - creation_user: - type: integer - nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_location_detail: - allOf: - - $ref: '#/components/schemas/DefaultLocation' - readOnly: true - nullable: true - description: - type: string - description: Part description (optional) - maxLength: 250 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - image: - type: string - format: uri - nullable: true - existing_image: - type: string - writeOnly: true - description: Filename of an existing part image - IPN: - type: string - default: '' - maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: - type: string - nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - locked: - type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: - type: string - description: Part name - maxLength: 100 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - pk: - type: integer - readOnly: true - title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: - type: string - nullable: true - default: '' - maxLength: 100 - revision_of: - type: integer - nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer - readOnly: true - nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: - type: boolean - description: Return "true" if the part is starred by the current user. - readOnly: true - thumbnail: - type: string - readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: - type: integer - nullable: true - description: Is this part a variant of another part? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - responsible: - type: integer - nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - readOnly: true - nullable: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - nullable: true - allocated_to_sales_orders: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: - type: number - format: double - readOnly: true - nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: - type: integer - readOnly: true - nullable: true - in_stock: - type: number - format: double - readOnly: true - nullable: true - ordering: - type: number - format: double - readOnly: true - nullable: true - title: On Order - required_for_build_orders: - type: integer - readOnly: true - nullable: true - required_for_sales_orders: - type: integer - readOnly: true - nullable: true - stock_item_count: - type: integer - readOnly: true - nullable: true - title: Stock Items - total_in_stock: - type: number - format: double - readOnly: true - nullable: true - title: Total Stock - external_stock: - type: number - format: double - readOnly: true - nullable: true - unallocated_stock: - type: number - format: double - readOnly: true - nullable: true - variant_stock: - type: number - format: double - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: - allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: - type: boolean - writeOnly: true - default: true - description: Copy parameter templates from selected part category - tags: - type: array - items: - type: string - required: - - barcode_hash - - category_name - - full_name - - name - - pk - - starred - - thumbnail - PartBomValidate: - type: object - description: Serializer for Part BOM information. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: - type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: - type: integer - readOnly: true - nullable: true - bom_checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - bom_checked_date: - type: string - format: date - readOnly: true - nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - required: - - bom_checksum - - bom_validated - - pk - PartBrief: - type: object - description: Serializer for Part (brief detail). - properties: - pk: - type: integer - readOnly: true - title: ID - IPN: - type: string - nullable: true - description: Internal Part Number - maxLength: 100 - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category_default_location: - type: integer - readOnly: true - nullable: true - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - name: - type: string - description: Part name - maxLength: 100 - revision: - type: string - nullable: true - default: '' - maxLength: 100 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - description: - type: string - description: Part description (optional) - maxLength: 250 - image: - type: string - format: uri - readOnly: true - nullable: true - thumbnail: - type: string - readOnly: true - active: - type: boolean - description: Is this part active? - locked: - type: boolean - description: Locked parts cannot be edited - assembly: - type: boolean - description: Can this part be built from other parts? - component: - type: boolean - description: Can this part be used to build other parts? - minimum_stock: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - description: Minimum allowed stock level - is_template: - type: boolean - description: Is this part a template part? - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - salable: - type: boolean - description: Can this part be sold to customers? - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - required: - - barcode_hash - - full_name - - name - - pk - - thumbnail - PartCopyBOM: - type: object - description: Serializer for copying a BOM from another part. - properties: - part: - type: integer - description: Select part to copy BOM from - remove_existing: - type: boolean - default: true - title: Remove Existing Data - description: Remove existing BOM items before copying - include_inherited: - type: boolean - default: false - description: Include BOM items which are inherited from templated parts - skip_invalid: - type: boolean - default: false - title: Skip Invalid Rows - description: Enable this option to skip invalid rows - copy_substitutes: - type: boolean - default: true - title: Copy Substitute Parts - description: Copy substitute parts when duplicate BOM items - required: - - part - PartInternalPrice: - type: object - description: Serializer for internal prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - required: - - part - - pk - - quantity - PartPricing: - type: object - description: Serializer for Part pricing information. - properties: - currency: - type: string - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - scheduled_for_update: - type: boolean - readOnly: true - bom_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - bom_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - override_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - overall_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - required: - - scheduled_for_update - PartRelation: - type: object - description: Serializer for a PartRelated model. - properties: - pk: - type: integer - readOnly: true - title: ID - part_1: - type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - part_2: - type: integer - description: Select Related Part - part_2_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - note: - type: string - description: Note for this relationship - maxLength: 500 - required: - - part_1 - - part_1_detail - - part_2 - - part_2_detail - - pk - PartRequirements: - type: object - description: Serializer for Part requirements. - properties: - total_stock: - type: number - format: double - readOnly: true - unallocated_stock: - type: number - format: double - readOnly: true - title: Available Stock - can_build: - type: number - format: double - readOnly: true - ordering: - type: number - format: double - readOnly: true - title: On Order - building: - type: number - format: double - readOnly: true - title: In Production - scheduled_to_build: - type: integer - readOnly: true - required_for_build_orders: - type: number - format: double - readOnly: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - required_for_sales_orders: - type: number - format: double - readOnly: true - allocated_to_sales_orders: - type: number - format: double - description: Return the allocated sales order quantity. - readOnly: true - required: - - allocated_to_build_orders - - allocated_to_sales_orders - - building - - can_build - - ordering - - required_for_build_orders - - required_for_sales_orders - - scheduled_to_build - - total_stock - - unallocated_stock - PartSalePrice: - type: object - description: Serializer for sale prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - required: - - part - - pk - - quantity - PartSerialNumber: - type: object - description: Serializer for Part serial number information. - properties: - latest: - type: string - readOnly: true - nullable: true - next: - type: string - readOnly: true - required: - - next - PartStocktake: - type: object - description: Serializer for the PartStocktake model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Part for stocktake - part_name: - type: string - readOnly: true - part_ipn: - type: string - readOnly: true - nullable: true - part_description: - type: string - readOnly: true - nullable: true - date: - type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_min_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_max_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - required: - - date - - part - - part_name - - pk - - quantity - PartStocktakeGenerate: - type: object - description: Serializer for generating PartStocktake entries. - properties: - part: - type: integer - nullable: true - description: Select a part to generate stocktake information for that part - (and any variant parts) - category: - type: integer - nullable: true - description: Select a category to include all parts within that category - (and subcategories) - location: - type: integer - nullable: true - description: Select a location to include all parts with stock in that location - (including sub-locations) - generate_entry: - type: boolean - writeOnly: true - default: false - title: Generate Stocktake Entries - description: Save stocktake entries for the selected parts - generate_report: - type: boolean - writeOnly: true - default: false - description: Generate a stocktake report for the selected parts - output: - allOf: - - $ref: '#/components/schemas/DataOutput' - readOnly: true - required: - - output - PartTestTemplate: - type: object - description: Serializer for the PartTestTemplate class. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - part: - type: integer - test_name: - type: string - description: Enter a name for the test - maxLength: 100 - description: - type: string - nullable: true - title: Test Description - description: Enter description for this test - maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: - type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - required: - - key - - part - - pk - - results - - test_name - PartThumb: - type: object - description: |- - Serializer for the 'image' field of the Part model. - - Used to serve and display existing Part images. - properties: - image: - type: string - format: uri - readOnly: true - count: - type: integer - readOnly: true - required: - - count - - image - PartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: - type: string - format: uri - required: - - image - PatchedAddress: - type: object - description: Serializer for the Address Model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - link: - type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - PatchedAttachment: - type: object - description: Serializer class for the Attachment model. - properties: - pk: - type: integer - readOnly: true - title: ID - attachment: - type: string - format: uri - nullable: true - thumbnail: - type: string - format: uri - readOnly: true - nullable: true - filename: - type: string - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - comment: - type: string - description: Attachment comment - maxLength: 250 - is_image: - type: boolean - readOnly: true - description: True if this attachment is a valid image file - upload_date: - type: string - format: date - readOnly: true - upload_user: - type: integer - readOnly: true - nullable: true - title: User - description: User - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - file_size: - type: integer - readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - tags: - type: array - items: - type: string - PatchedBomItem: - type: object - description: Serializer for BomItem object. - properties: - part: - type: integer - title: Assembly - description: Select the parent assembly - sub_part: - type: integer - title: Component - description: Select the component part - reference: - type: string - description: BOM item reference - maxLength: 5000 - raw_amount: - type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: - type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: - type: boolean - description: This BOM item is optional - consumable: - type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double - nullable: true - note: - type: string - description: BOM item notes - maxLength: 500 - pk: - type: integer - readOnly: true - title: ID - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_min_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - substitutes: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - readOnly: true - nullable: true - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double - readOnly: true - nullable: true - available_substitute_stock: - type: number - format: double - readOnly: true - nullable: true - available_variant_stock: - type: number - format: double - readOnly: true - nullable: true - external_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - title: In Production - can_build: - type: number - format: double - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - sub_part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Component - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - PatchedBomItemSubstitute: - type: object - description: Serializer for the BomItemSubstitute class. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_item: - type: integer - description: Parent BOM item - part: - type: integer - description: Substitute part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - PatchedBomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - PatchedBuild: - type: object - description: Serializes a Build object. - properties: - pk: - type: integer - readOnly: true - title: ID - title: - type: string - title: Description - description: Brief description of the build (optional) - maxLength: 100 - barcode_hash: - type: string - readOnly: true - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this build output - maxLength: 100 - creation_date: - type: string - format: date - readOnly: true - completed: - type: integer - readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: - type: string - format: date - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: - type: boolean - title: External Build - description: This build order is fulfilled externally - parent: - type: integer - nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: - type: integer - description: Select part to build - part_name: - type: string - readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: - type: integer - nullable: true - description: Project code for this build order - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - default: false - reference: - type: string - sales_order: - type: integer - nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: - type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' - readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - target_date: - type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: - type: integer - nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer - readOnly: true - nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - responsible: - type: integer - nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer - readOnly: true - title: Build Level - PatchedBuildItem: - type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - build_line: - type: integer - nullable: true - install_into: - type: integer - nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer - readOnly: true - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - stock_item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Stock Item - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - install_into_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Install Into - bom_reference: - type: string - readOnly: true - PatchedBuildLine: - type: object - description: Serializer for a BuildItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - description: Build object - bom_item: - type: integer - readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - allocations: - type: array - items: - $ref: '#/components/schemas/BuildItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - build_reference: - type: string - readOnly: true - reference: - type: string - readOnly: true - consumable: - type: boolean - readOnly: true - optional: - type: boolean - readOnly: true - testable: - type: boolean - readOnly: true - trackable: - type: boolean - readOnly: true - inherited: - type: boolean - readOnly: true - allow_variants: - type: boolean - readOnly: true - allocated: - type: number - format: double - readOnly: true - in_production: - type: number - format: double - readOnly: true - scheduled_to_build: - type: number - format: double - readOnly: true - on_order: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_substitute_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - external_stock: - type: number - format: double - readOnly: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' - readOnly: true - nullable: true - title: BOM Item - assembly_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - PatchedCategory: - type: object - description: Serializer for PartCategory. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - default_location: - type: integer - nullable: true - description: Default location for parts in this category - default_keywords: - type: string - nullable: true - description: Default keywords for parts in this category - maxLength: 250 - level: - type: integer - readOnly: true - parent: - type: integer - nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer - readOnly: true - nullable: true - title: Parts - subcategories: - type: integer - readOnly: true - nullable: true - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - starred: - type: boolean - description: Return True if the category is directly "starred" by the current - user. - readOnly: true - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: - type: string - nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: - type: integer - readOnly: true - nullable: true - PatchedCategoryParameterTemplate: - type: object - description: Serializer for the PartCategoryParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - template: - type: integer - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: - type: string - description: Default Parameter Value - maxLength: 500 - PatchedCompany: - type: object - description: Serializer for Company object (full detail). - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - website: - type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: - type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: - type: string - format: email - nullable: true - default: '' - currency: - type: string - description: |- - Default currency used for this supplier - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: - type: string - format: uri - nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parts_supplied: - type: integer - readOnly: true - parts_manufactured: - type: integer - readOnly: true - primary_address: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedContact: - type: object - description: Serializer class for the Contact model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - company_name: - type: string - readOnly: true - name: - type: string - maxLength: 100 - phone: - type: string - maxLength: 100 - email: - type: string - format: email - maxLength: 254 - role: - type: string - maxLength: 100 - PatchedCustomState: - type: object - description: Serializer for the custom state model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: - type: string - description: Name of the state - maxLength: 250 - label: - type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: State logical key that is equal to this custom state in business - logic - model: - type: integer - nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - PatchedCustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: - type: string - description: Optional unit symbol - maxLength: 10 - definition: - type: string - description: Unit definition - maxLength: 50 - PatchedDataImportColumnMap: - type: object - description: Serializer for the DataImportColumnMap model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - column: - type: string - maxLength: 100 - field: - type: string - readOnly: true - label: - type: string - readOnly: true - description: - type: string - readOnly: true - PatchedDataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true - nullable: true - title: Original row data - data: - nullable: true - errors: - readOnly: true - nullable: true - valid: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - PatchedDataImportSession: - type: object - description: Serializer for the DataImportSession model. - properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: - type: string - format: date-time - readOnly: true - data_file: - type: string - format: uri - update_records: - type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: - readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' - readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - columns: - readOnly: true - nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - readOnly: true - field_defaults: - nullable: true - field_overrides: - nullable: true - field_filters: - nullable: true - row_count: - type: integer - readOnly: true - completed_row_count: - type: integer - readOnly: true - PatchedErrorMessage: - type: object - description: DRF serializer for server error messages. - properties: - when: - type: string - format: date-time - readOnly: true - info: - type: string - readOnly: true - data: - type: string - readOnly: true - nullable: true - path: - type: string - format: uri - readOnly: true - nullable: true - maxLength: 200 - pk: - type: integer - readOnly: true - title: ID - PatchedExtendedUser: - type: object - description: Serializer for a User with a bit more info. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - PatchedGlobalSettings: - type: object - description: Serializer for the InvenTreeSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - read_only: - type: boolean - description: Indicates if the setting is overridden by an environment variable - readOnly: true - title: Override - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - PatchedGroup: - type: object - description: Serializer for a 'Group'. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - maxLength: 150 - permissions: - type: object - additionalProperties: {} - description: Return a list of permissions associated with the group. - readOnly: true - nullable: true - roles: - type: array - items: - $ref: '#/components/schemas/RuleSet' - readOnly: true - nullable: true - users: - type: array - items: - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - PatchedLabelTemplate: - type: object - description: Serializer class for label template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: - type: number - format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm - PatchedLocation: - type: object - description: Detailed information about a stock location. - properties: - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - name: - type: string - description: Name - maxLength: 100 - level: - type: integer - readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer - nullable: true - title: Parent Location - description: Parent stock location - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - items: - type: integer - readOnly: true - title: Stock Items - sublocations: - type: integer - readOnly: true - owner: - type: integer - nullable: true - description: Select Owner - icon: - type: string - readOnly: true - custom_icon: - type: string - nullable: true - title: Icon - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: - type: integer - nullable: true - description: Stock location type of this location - location_type_detail: - allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedMachineConfig: - type: object - description: Serializer for a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - readOnly: true - description: Type of machine - driver: - type: string - readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - PatchedMachineSetting: - type: object - description: Serializer for the MachineSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - PatchedManufacturerPart: - type: object - description: Serializer for ManufacturerPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - pretty_name: - type: string - readOnly: true - nullable: true - manufacturer: - type: integer - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - description: - type: string - nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: - type: string - nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string - format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedMeUser: - type: object - description: API serializer specifically for the 'me' endpoint. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - PatchedMetadata: - type: object - description: Serializer class for model metadata API access. - properties: - metadata: {} - PatchedNewsFeedEntry: - type: object - description: Serializer for the NewsFeedEntry model. - properties: - pk: - type: integer - readOnly: true - title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: - type: string - format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: - type: string - maxLength: 250 - read: - type: boolean - PatchedNotificationMessage: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. - readOnly: true - user: - type: integer - readOnly: true - category: - type: string - readOnly: true - name: - type: string - readOnly: true - message: - type: string - readOnly: true - nullable: true - creation: - type: string - format: date-time - readOnly: true - age: - type: integer - description: Age of the message in seconds. - readOnly: true - age_human: - type: string - description: Humanized age. - readOnly: true - read: - type: boolean - PatchedParameter: - type: object - description: Serializer for the Parameter model. - properties: - pk: - type: integer - readOnly: true - title: ID - template: - type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - default: '' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: ID of the target model for this parameter - data: - type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: - type: number - format: double - nullable: true - note: - type: string - description: Optional note field - maxLength: 500 - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - updated_by: - type: integer - readOnly: true - nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - PatchedParameterTemplate: - type: object - description: Serializer for the ParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Parameter Name - maxLength: 100 - units: - type: string - description: Physical units for this parameter - maxLength: 25 - description: - type: string - description: Parameter description - maxLength: 250 - model_type: - nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeDf8Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: - type: boolean - description: Is this parameter a checkbox? - choices: - type: string - description: Valid choices for this parameter (comma-separated) - maxLength: 5000 - selectionlist: - type: integer - nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? - PatchedPart: - type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. - properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category: - type: integer - nullable: true - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - category_name: - type: string - readOnly: true - component: - type: boolean - description: Can this part be used to build other parts? - creation_date: - type: string - format: date - readOnly: true - nullable: true - creation_user: - type: integer - nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_location_detail: - allOf: - - $ref: '#/components/schemas/DefaultLocation' - readOnly: true - nullable: true - description: - type: string - description: Part description (optional) - maxLength: 250 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - image: - type: string - format: uri - nullable: true - existing_image: - type: string - writeOnly: true - description: Filename of an existing part image - IPN: - type: string - default: '' - maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: - type: string - nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - locked: - type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: - type: string - description: Part name - maxLength: 100 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - pk: - type: integer - readOnly: true - title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: - type: string - nullable: true - default: '' - maxLength: 100 - revision_of: - type: integer - nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer - readOnly: true - nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: - type: boolean - description: Return "true" if the part is starred by the current user. - readOnly: true - thumbnail: - type: string - readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: - type: integer - nullable: true - description: Is this part a variant of another part? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - responsible: - type: integer - nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - readOnly: true - nullable: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - nullable: true - allocated_to_sales_orders: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: - type: number - format: double - readOnly: true - nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: - type: integer - readOnly: true - nullable: true - in_stock: - type: number - format: double - readOnly: true - nullable: true - ordering: - type: number - format: double - readOnly: true - nullable: true - title: On Order - required_for_build_orders: - type: integer - readOnly: true - nullable: true - required_for_sales_orders: - type: integer - readOnly: true - nullable: true - stock_item_count: - type: integer - readOnly: true - nullable: true - title: Stock Items - total_in_stock: - type: number - format: double - readOnly: true - nullable: true - title: Total Stock - external_stock: - type: number - format: double - readOnly: true - nullable: true - unallocated_stock: - type: number - format: double - readOnly: true - nullable: true - variant_stock: - type: number - format: double - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: - allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: - type: boolean - writeOnly: true - default: true - description: Copy parameter templates from selected part category - tags: - type: array - items: - type: string - PatchedPartBomValidate: - type: object - description: Serializer for Part BOM information. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: - type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: - type: integer - readOnly: true - nullable: true - bom_checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - bom_checked_date: - type: string - format: date - readOnly: true - nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - PatchedPartInternalPrice: - type: object - description: Serializer for internal prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - PatchedPartPricing: - type: object - description: Serializer for Part pricing information. - properties: - currency: - type: string - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - scheduled_for_update: - type: boolean - readOnly: true - bom_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - bom_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - override_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - overall_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - PatchedPartRelation: - type: object - description: Serializer for a PartRelated model. - properties: - pk: - type: integer - readOnly: true - title: ID - part_1: - type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - part_2: - type: integer - description: Select Related Part - part_2_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - note: - type: string - description: Note for this relationship - maxLength: 500 - PatchedPartSalePrice: - type: object - description: Serializer for sale prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - PatchedPartStocktake: - type: object - description: Serializer for the PartStocktake model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Part for stocktake - part_name: - type: string - readOnly: true - part_ipn: - type: string - readOnly: true - nullable: true - part_description: - type: string - readOnly: true - nullable: true - date: - type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_min_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_max_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - PatchedPartTestTemplate: - type: object - description: Serializer for the PartTestTemplate class. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - part: - type: integer - test_name: - type: string - description: Enter a name for the test - maxLength: 100 - description: - type: string - nullable: true - title: Test Description - description: Enter description for this test - maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: - type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - PatchedPartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: - type: string - format: uri - PatchedPluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PatchedPluginSetting: - type: object - description: Serializer for the PluginSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - PatchedPluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PatchedPluginUserSetting: - type: object - description: Serializer for the PluginUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - user: - type: integer - readOnly: true - description: The user for which this setting applies - PatchedProjectCode: - type: object - description: Serializer for the ProjectCode model. - properties: - pk: - type: integer - readOnly: true - title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: - type: string - description: Project description - maxLength: 200 - responsible: - type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - PatchedPurchaseOrder: - type: object - description: Serializer for a PurchaseOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - readOnly: true - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Placed - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - readOnly: true - nullable: true - title: Completion Date - description: Date order was completed - supplier: - type: integer - nullable: true - description: Company from which the items are being ordered - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string - readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - destination: - type: integer - nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedPurchaseOrderExtraLine: - type: object - description: Serializer for a PurchaseOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedPurchaseOrderLineItem: - type: object - description: Serializer class for the PurchaseOrderLineItem model. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - minimum: 0 - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer - nullable: true - description: External Build Order to be fulfilled by this line item - overdue: - type: boolean - readOnly: true - nullable: true - received: - type: number - format: double - readOnly: true - default: 0.0 - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: - type: number - format: double - readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string - readOnly: true - nullable: true - mpn: - type: string - readOnly: true - nullable: true - ipn: - type: string - readOnly: true - nullable: true - title: Internal Part Number - internal_part: - type: integer - readOnly: true - internal_part_name: - type: string - readOnly: true - build_order_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - destination_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - PatchedRepairOrder: - type: object - description: Serializer for a RepairOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - reference: - type: string - description: Repair Order Reference - maxLength: 100 - customer: - type: integer - nullable: true - description: Customer reference - description: - type: string - description: Repair order description - maxLength: 250 - symptoms: - type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' - description: |- - Repair order status - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: -9223372036854775808 - maximum: 9223372036854775807 - PatchedRepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity - PatchedRepairOrderLineItem: - type: object - description: Serializer for a RepairOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - title: Repair Order - part: - type: integer - nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair - PatchedReportAsset: - type: object - description: Serializer class for the ReportAsset model. - properties: - pk: - type: integer - readOnly: true - title: ID - asset: - type: string - format: uri - description: - type: string - description: Asset file description - maxLength: 250 - PatchedReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: - type: integer - readOnly: true - title: ID - snippet: - type: string - format: uri - description: - type: string - description: Snippet file description - maxLength: 250 - PatchedReportTemplate: - type: object - description: Serializer class for report template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - page_size: - allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items - PatchedReturnOrder: - type: object - description: Serializer for the ReturnOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - customer: - type: integer - nullable: true - description: Company from which items are being returned - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedReturnOrderExtraLine: - type: object - description: Serializer for a ReturnOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedReturnOrderLineItem: - type: object - description: Serializer for a ReturnOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - item: - type: integer - description: Select item to return from customer - received_date: - type: string - format: date - nullable: true - description: The date this return item was received - outcome: - allOf: - - $ref: '#/components/schemas/OutcomeEnum' - description: |- - Outcome for this line item - - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Line price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - PatchedRuleSet: - type: object - description: Serializer for a RuleSet. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - PatchedSalesOrder: - type: object - description: Serializer for the SalesOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `15` - In Progress - * `20` - Shipped - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipments_count: - type: integer - readOnly: true - nullable: true - title: Shipments - completed_shipments_count: - type: integer - readOnly: true - nullable: true - title: Completed Shipments - allocated_lines: - type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedSalesOrderAllocation: - type: object - description: |- - Serializer for the SalesOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true - nullable: true - PatchedSalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedSalesOrderLineItem: - type: object - description: Serializer for a SalesOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - sale_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - sale_price_currency: - type: string - title: Currency - description: |- - Sale price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipped: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - PatchedSalesOrderShipment: - type: object - description: Serializer for the SalesOrderShipment class. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - description: Sales Order - allocated_items: - type: integer - readOnly: true - nullable: true - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer - nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - checked_by: - type: integer - nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - PatchedSelectionEntry: - type: object - description: Serializer for a selection entry. - properties: - id: - type: integer - readOnly: true - value: - type: string - description: Value of the selection list entry - maxLength: 255 - label: - type: string - description: Label for the selection list entry - maxLength: 255 - description: - type: string - description: Description of the selection list entry - maxLength: 250 - active: - type: boolean - description: Is this selection list entry active? - list: - type: integer - nullable: true - title: Selection List - description: Selection list to which this entry belongs - PatchedSelectionList: - type: object - description: Serializer for a selection list. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name of the selection list - maxLength: 100 - description: - type: string - description: Description of the selection list - maxLength: 250 - active: - type: boolean - description: Can this selection list be used? - locked: - type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' - readOnly: true - nullable: true - created: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was created - last_updated: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: - type: integer - readOnly: true - PatchedStockItem: - type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: - type: number - format: double - serial: - type: string - nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer - nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer - nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer - nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer - nullable: true - description: Build order which consumed this stock item - customer: - type: integer - nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: - type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean - readOnly: true - is_building: - type: boolean - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: - type: integer - nullable: true - description: Select Owner - packaging: - type: string - nullable: true - description: Packaging this stock item is stored in - maxLength: 50 - parent: - type: integer - readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: - type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: - type: string - readOnly: true - nullable: true - sales_order: - type: integer - nullable: true - title: Destination Sales Order - sales_order_reference: - type: string - readOnly: true - nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - supplier_part: - type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: - type: string - readOnly: true - nullable: true - title: Supplier Part Number - MPN: - type: string - readOnly: true - nullable: true - title: Manufacturer Part Number - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - creation_date: - type: string - format: date-time - readOnly: true - nullable: true - description: Date that this stock item was created - stocktake_date: - type: string - format: date - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: - type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double - readOnly: true - nullable: true - title: Allocated Quantity - expired: - type: boolean - readOnly: true - nullable: true - installed_items: - type: integer - readOnly: true - nullable: true - child_items: - type: integer - readOnly: true - nullable: true - stale: - type: boolean - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - location_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - tags: - type: array - items: - type: string - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - readOnly: true - nullable: true - tracking_items: - type: integer - readOnly: true - nullable: true - PatchedStockItemTestResult: - type: object - description: Serializer for the StockItemTestResult model. - properties: - pk: - type: integer - readOnly: true - title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: - type: string - description: Test output value - maxLength: 500 - attachment: - type: string - format: uri - nullable: true - description: Test result attachment - notes: - type: string - description: Test notes - maxLength: 500 - test_station: - type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: - type: string - format: date-time - nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: - type: string - format: date-time - nullable: true - title: Finished - description: The timestamp of the test finish - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - template: - type: integer - nullable: true - title: Test template for this result - description: Template - template_detail: - allOf: - - $ref: '#/components/schemas/PartTestTemplate' - readOnly: true - nullable: true - PatchedStockLocationType: - type: object - description: Serializer for StockLocationType model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - icon: - type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: - type: integer - readOnly: true - nullable: true - PatchedSupplierPart: - type: object - description: Serializer for SupplierPart object. - properties: - available: - type: number - format: double - availability_updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Date of last update of availability data - description: - type: string - nullable: true - description: Supplier part description - maxLength: 250 - in_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - link: - type: string - format: uri - nullable: true - description: URL for external supplier part link - maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Manufacturer - manufacturer_part: - type: integer - nullable: true - description: Select manufacturer part - manufacturer_part_detail: - allOf: - - $ref: '#/components/schemas/ManufacturerPart' - readOnly: true - nullable: true - title: Manufacturer Part - MPN: - type: string - readOnly: true - nullable: true - note: - type: string - nullable: true - description: Notes - maxLength: 100 - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - packaging: - type: string - nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: - type: number - format: double - readOnly: true - part: - type: integer - title: Base Part - description: Select part - pretty_name: - type: string - readOnly: true - nullable: true - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: - type: integer - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Supplier - updated: - type: string - format: date-time - readOnly: true - nullable: true - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - tags: - type: array - items: - type: string - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedSupplierPriceBreak: - type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - PatchedTransferOrder: - type: object - description: Serializer for a TransferOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Issued - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - PatchedTransferOrderAllocation: - type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - PatchedTransferOrderLineItem: - type: object - description: Serializer for a TransferOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Transfer Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - PatchedUserProfile: - type: object - description: Serializer for the UserProfile model. - properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - PatchedUserSetPassword: - type: object - description: Serializer for setting a password for a user. - properties: - password: - type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules - PatchedUserSettings: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - user: - type: integer - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - PendingTask: - type: object - description: Serializer for an individual pending task object. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - title: Cluster key - description: Name of the target cluster - maxLength: 100 - lock: - type: string - format: date-time - description: Lock time - task_id: - type: string - description: Unique task ID - name: - type: string - description: Task name - func: - type: string - title: Function - description: Function name - args: - type: string - title: Arguments - description: Task arguments - kwargs: - type: string - title: Keyword Arguments - description: Task keyword arguments - required: - - args - - func - - key - - kwargs - - lock - - name - - pk - - task_id - PluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PluginAdminDetail: - type: object - description: Serializer for a PluginConfig with admin details. - properties: - source: - type: string - nullable: true - title: Source File - description: Path to the source file for admin integration - context: - nullable: true - description: Optional context data for the admin integration - required: - - context - - source - PluginConfig: - type: object - description: Serializer for a PluginConfig. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - description: Key of plugin - name: - type: string - nullable: true - description: Name of the plugin - maxLength: 255 - package_name: - type: string - nullable: true - description: Name of the installed package, if the plugin was installed - via PIP - maxLength: 255 - active: - type: boolean - description: Is the plugin active - meta: - type: object - additionalProperties: {} - readOnly: true - mixins: - type: object - additionalProperties: {} - readOnly: true - is_builtin: - type: boolean - description: Return True if this is a 'builtin' plugin. - readOnly: true - is_sample: - type: boolean - description: Is this plugin a sample app? - readOnly: true - is_installed: - type: boolean - description: |- - Simple check to determine if this plugin is installed. - - A plugin might not be installed if it has been removed from the system, - but the PluginConfig associated with it still exists. - readOnly: true - is_package: - type: boolean - description: Return True if this is a 'package' plugin. - readOnly: true - is_mandatory: - type: boolean - readOnly: true - required: - - is_builtin - - is_installed - - is_mandatory - - is_package - - is_sample - - key - - meta - - mixins - - pk - PluginConfigInstall: - type: object - description: Serializer for installing a new plugin. - properties: - url: - type: string - title: Source URL - description: Source for the package - this can be a custom registry or a - VCS path - packagename: - type: string - title: Package Name - description: Name for the Plugin Package - can also contain a version indicator - version: - type: string - description: Version specifier for the plugin. Leave blank for latest version. - confirm: - type: boolean - title: Confirm plugin installation - description: This will install this plugin now into the current instance. - The instance will go into maintenance. - required: - - confirm - PluginRegistryError: - type: object - description: Serializer for a plugin registry error. - properties: - stage: - type: string - name: - type: string - message: - type: string - required: - - message - - name - - stage - PluginRegistryStatus: - type: object - description: Serializer for plugin registry status. - properties: - active_plugins: - type: integer - readOnly: true - registry_errors: - type: array - items: - $ref: '#/components/schemas/PluginRegistryError' - required: - - active_plugins - - registry_errors - PluginReload: - type: object - description: Serializer for remotely forcing plugin registry reload. - properties: - full_reload: - type: boolean - default: false - description: Perform a full reload of the plugin registry - force_reload: - type: boolean - default: false - description: Force a reload of the plugin registry, even if it is already - loaded - collect_plugins: - type: boolean - default: false - description: Collect plugins and add them to the registry - PluginSetting: - type: object - description: Serializer for the PluginSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - plugin - - required - - typ - - type - - units - - value - PluginUIFeature: - type: object - description: Serializer for a plugin ui feature. - properties: - plugin_name: - type: string - feature_type: - type: string - key: - type: string - title: Feature Label - title: - type: string - title: Feature Title - description: - type: string - title: Feature Description - icon: - type: string - title: Feature Icon - options: - type: object - additionalProperties: {} - title: Feature Options - context: - type: object - additionalProperties: {} - title: Feature Context - source: - type: string - title: Feature Source (javascript) - required: - - feature_type - - key - - plugin_name - PluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PluginUserSetting: - type: object - description: Serializer for the PluginUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - user: - type: integer - readOnly: true - description: The user for which this setting applies - required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - plugin - - required - - typ - - type - - units - - user - - value - PriorityEnum: - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - type: integer - description: |- - * `0` - None - * `1` - Very High - * `2` - High - * `3` - Normal - * `4` - Low - * `5` - Very Low - ProjectCode: - type: object - description: Serializer for the ProjectCode model. - properties: - pk: - type: integer - readOnly: true - title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: - type: string - description: Project description - maxLength: 200 - responsible: - type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - required: - - code - - pk - PurchaseOrder: - type: object - description: Serializer for a PurchaseOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - readOnly: true - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Placed - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - readOnly: true - nullable: true - title: Completion Date - description: Date order was completed - supplier: - type: integer - nullable: true - description: Company from which the items are being ordered - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string - readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - destination: - type: integer - nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - - supplier - - supplier_name - PurchaseOrderComplete: - type: object - description: Serializer for completing a purchase order. - properties: - accept_incomplete: - type: boolean - default: false - description: Allow order to be closed with incomplete line items - PurchaseOrderExtraLine: - type: object - description: Serializer for a PurchaseOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - PurchaseOrderLineItem: - type: object - description: Serializer class for the PurchaseOrderLineItem model. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - minimum: 0 - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer - nullable: true - description: External Build Order to be fulfilled by this line item - overdue: - type: boolean - readOnly: true - nullable: true - received: - type: number - format: double - readOnly: true - default: 0.0 - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: - type: number - format: double - readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string - readOnly: true - nullable: true - mpn: - type: string - readOnly: true - nullable: true - ipn: - type: string - readOnly: true - nullable: true - title: Internal Part Number - internal_part: - type: integer - readOnly: true - internal_part_name: - type: string - readOnly: true - build_order_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - destination_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - required: - - internal_part - - internal_part_name - - order - - part - - pk - - quantity - - received - - total_price - PurchaseOrderLineItemReceive: - type: object - description: A serializer for receiving a single purchase order line item against - a purchase order. - properties: - line_item: - type: integer - location: - type: integer - nullable: true - description: Select destination location for received items - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch_code: - type: string - default: '' - description: Enter batch code for incoming stock items - expiry_date: - type: string - format: date - nullable: true - description: Enter expiry date for incoming stock items - serial_numbers: - type: string - default: '' - description: Enter serial numbers for incoming stock items - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - packaging: - type: string - default: '' - description: Override packaging information for incoming stock items - note: - type: string - default: '' - description: Additional note for incoming stock items - barcode: - type: string - nullable: true - default: '' - description: Scanned barcode - required: - - line_item - - quantity - PurchaseOrderReceive: - type: object - description: Serializer for receiving items against a PurchaseOrder. - properties: - items: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderLineItemReceive' - location: - type: integer - nullable: true - description: Select destination location for received items - required: - - items - ReferenceStatusEnum: - enum: - - BuildStatus - - DataImportStatusCode - - MachineStatus - - PurchaseOrderStatus - - RepairOrderStatus - - ReturnOrderLineStatus - - ReturnOrderStatus - - SalesOrderStatus - - StockHistoryCode - - StockStatus - - TransferOrderStatus - type: string - description: |- - * `BuildStatus` - BuildStatus - * `DataImportStatusCode` - DataImportStatusCode - * `MachineStatus` - MachineStatus - * `PurchaseOrderStatus` - PurchaseOrderStatus - * `RepairOrderStatus` - RepairOrderStatus - * `ReturnOrderLineStatus` - ReturnOrderLineStatus - * `ReturnOrderStatus` - ReturnOrderStatus - * `SalesOrderStatus` - SalesOrderStatus - * `StockHistoryCode` - StockHistoryCode - * `StockStatus` - StockStatus - * `TransferOrderStatus` - TransferOrderStatus - RepairOrder: - type: object - description: Serializer for a RepairOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - reference: - type: string - description: Repair Order Reference - maxLength: 100 - customer: - type: integer - nullable: true - description: Customer reference - description: - type: string - description: Repair order description - maxLength: 250 - symptoms: - type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' - description: |- - Repair order status - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: -9223372036854775808 - maximum: 9223372036854775807 - required: - - description - - pk - - reference - RepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity - required: - - item - - line - - pk - RepairOrderLineItem: - type: object - description: Serializer for a RepairOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - title: Repair Order - part: - type: integer - nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair - required: - - order - - pk - RepairOrderStatusEnum: - enum: - - 10 - - 20 - - 25 - - 30 - - 40 - type: integer - description: |- - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - ReportAsset: - type: object - description: Serializer class for the ReportAsset model. - properties: - pk: - type: integer - readOnly: true - title: ID - asset: - type: string - format: uri - description: - type: string - description: Asset file description - maxLength: 250 - required: - - asset - - description - - pk - ReportPrint: - type: object - description: Serializer class for printing a report. - properties: - template: - type: integer - description: Select report template - items: - type: array - items: - type: integer - description: List of item primary keys to include in the report - required: - - items - - template - ReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: - type: integer - readOnly: true - title: ID - snippet: - type: string - format: uri - description: - type: string - description: Snippet file description - maxLength: 250 - required: - - description - - pk - - snippet - ReportTemplate: - type: object - description: Serializer class for report template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - page_size: - allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items - required: - - description - - model_type - - name - - pk - - revision - - template - ReturnOrder: - type: object - description: Serializer for the ReturnOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - customer: - type: integer - nullable: true - description: Company from which items are being returned - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - ReturnOrderExtraLine: - type: object - description: Serializer for a ReturnOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - ReturnOrderLineItem: - type: object - description: Serializer for a ReturnOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - item: - type: integer - description: Select item to return from customer - received_date: - type: string - format: date - nullable: true - description: The date this return item was received - outcome: - allOf: - - $ref: '#/components/schemas/OutcomeEnum' - description: |- - Outcome for this line item - - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Line price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - required: - - item - - order - - pk - - quantity - ReturnOrderLineItemReceive: - type: object - description: Serializer for receiving a single line item against a ReturnOrder. - properties: - item: - type: integer - title: Return order line item - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - required: - - item - ReturnOrderReceive: - type: object - description: Serializer for receiving items against a ReturnOrder. - properties: - items: - type: array - items: - $ref: '#/components/schemas/ReturnOrderLineItemReceive' - location: - type: integer - description: Select destination location for received items - note: - type: string - default: '' - description: Additional note for incoming stock items - required: - - items - - location - Role: - type: object - description: Serializer for a roles associated with a given user. - properties: - user: - type: integer - username: - type: string - description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ - only. - pattern: ^[\w.@+-]+$ - maxLength: 150 - roles: - type: object - additionalProperties: {} - description: Roles associated with the user. - readOnly: true - permissions: - type: object - additionalProperties: {} - description: Permissions associated with the user. - readOnly: true - nullable: true - is_staff: - type: boolean - title: Staff status - description: Designates whether the user can log into this admin site. - is_superuser: - type: boolean - title: Superuser status - description: Designates that this user has all permissions without explicitly - assigning them. - required: - - roles - - user - - username - RuleSet: - type: object - description: Serializer for a RuleSet. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - required: - - group - - label - - name - - pk - SalesOrder: - type: object - description: Serializer for the SalesOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `15` - In Progress - * `20` - Shipped - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipments_count: - type: integer - readOnly: true - nullable: true - title: Shipments - completed_shipments_count: - type: integer - readOnly: true - nullable: true - title: Completed Shipments - allocated_lines: - type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - SalesOrderAllocation: - type: object - description: |- - Serializer for the SalesOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true - nullable: true - required: - - item - - line - - location - - order - - part - - pk - - quantity - SalesOrderAutoAllocation: - type: object - description: DRF serializer for auto-allocating stock items against a SalesOrder. - properties: - location: - type: integer - nullable: true - title: Source Location - description: Stock location where items are sourced (leave blank to use - any location) - exclude_location: - type: integer - nullable: true - description: Exclude stock items from this location - shipment: - type: integer - nullable: true - description: Assign allocations to this shipment - interchangeable: - type: boolean - default: true - title: Interchangeable Stock - description: Allow stock to be taken from multiple locations to fulfil a - single line item - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - serialized_stock: - allOf: - - $ref: '#/components/schemas/SerializedStockEnum' - default: any - description: |- - Control whether serialized stock items are included in auto-allocation - - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - line_items: - type: array - items: - type: integer - title: Line Items - description: Limit allocation to these line items (leave blank to allocate - all lines) - SalesOrderComplete: - type: object - description: DRF serializer for manually marking a sales order as complete. - properties: - accept_incomplete: - type: boolean - default: false - description: Allow order to be closed with incomplete line items - SalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - SalesOrderLineItem: - type: object - description: Serializer for a SalesOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - sale_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - sale_price_currency: - type: string - title: Currency - description: |- - Sale price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipped: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - shipped - SalesOrderSerialAllocation: - type: object - description: DRF serializer for allocation of serial numbers against a sales - order / shipment. - properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate - shipment: - type: integer - nullable: true - required: - - line_item - - quantity - - serial_numbers - SalesOrderShipment: - type: object - description: Serializer for the SalesOrderShipment class. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - description: Sales Order - allocated_items: - type: integer - readOnly: true - nullable: true - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer - nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - checked_by: - type: integer - nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - required: - - order - - pk - SalesOrderShipmentAllocation: - type: object - description: DRF serializer for allocation of stock items against a sales order - / shipment. - properties: - items: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' - shipment: - type: integer - nullable: true - required: - - items - SalesOrderShipmentAllocationItem: - type: object - description: A serializer for allocating a single stock-item against a SalesOrder - shipment. - properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - line_item - - quantity - - stock_item - SalesOrderShipmentComplete: - type: object - description: Serializer for completing (shipping) a SalesOrderShipment. - properties: - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - ScheduleTypeEnum: - enum: - - O - - I - - H - - D - - W - - BW - - M - - BM - - Q - - Y - - C - type: string - description: |- - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - ScheduledTask: - type: object - description: Serializer for an individual scheduled task object. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - nullable: true - description: Optional label to identify this schedule in the admin. - maxLength: 100 - func: - type: string - title: Function - description: e.g. module.tasks.function - maxLength: 256 - args: - type: string - nullable: true - title: Arguments - description: e.g. 1, 2, 'John' - kwargs: - type: string - nullable: true - title: Keyword arguments - description: e.g. x=1, y=2, name='John' - schedule_type: - allOf: - - $ref: '#/components/schemas/ScheduleTypeEnum' - description: |- - How often this task should be enqueued. - - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - repeats: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: n = n times, -1 = forever - last_run: - type: string - format: date-time - next_run: - type: string - format: date-time - nullable: true - description: When this schedule runs next (stored in UTC). - success: - type: boolean - task: - type: string - readOnly: true - nullable: true - title: Last task id - description: Id of the last task spawned from this schedule (read-only). - required: - - func - - last_run - - pk - - success - SearchResult: - type: object - description: Serializer for a search result. - properties: - id: - type: string - sku: - type: string - name: - type: string - exact: - type: boolean - description: - type: string - price: - type: string - link: - type: string - image_url: - type: string - existing_part_id: - type: integer - nullable: true - description: Return the ID of the existing part if available. - readOnly: true - required: - - description - - exact - - id - - image_url - - link - - name - - price - - sku - SelectionEntry: - type: object - description: Serializer for a selection entry. - properties: - id: - type: integer - readOnly: true - value: - type: string - description: Value of the selection list entry - maxLength: 255 - label: - type: string - description: Label for the selection list entry - maxLength: 255 - description: - type: string - description: Description of the selection list entry - maxLength: 250 - active: - type: boolean - description: Is this selection list entry active? - list: - type: integer - nullable: true - title: Selection List - description: Selection list to which this entry belongs - required: - - id - - label - - value - SelectionList: - type: object - description: Serializer for a selection list. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name of the selection list - maxLength: 100 - description: - type: string - description: Description of the selection list - maxLength: 250 - active: - type: boolean - description: Can this selection list be used? - locked: - type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' - readOnly: true - nullable: true - created: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was created - last_updated: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: - type: integer - readOnly: true - required: - - created - - entry_count - - last_updated - - name - - pk - SerializeStockItem: - type: object - description: |- - A DRF serializer for "serializing" a StockItem. - - (Sorry for the confusing naming...) - - Here, "serializing" means splitting out a single StockItem, - into multiple single-quantity items with an assigned serial number - - Note: The base StockItem object is provided to the serializer context - properties: - quantity: - type: integer - minimum: 0 - description: Enter number of stock items to serialize - serial_numbers: - type: string - description: Enter serial numbers for new items - destination: - type: integer - title: Location - description: Destination stock location - notes: - type: string - description: Optional note field - required: - - destination - - quantity - - serial_numbers - SerializedStockEnum: - enum: - - any - - serialized - - unserialized - type: string - description: |- - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - Settings: - type: object - description: Serializer for InfoApiSerializer. - properties: - sso_registration: - type: boolean - registration_enabled: - type: boolean - password_forgotten_enabled: - type: boolean - required: - - password_forgotten_enabled - - registration_enabled - - sso_registration - StockAdd: - type: object - description: Serializer for adding stock to stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - required: - - items - StockAdjustmentItem: - type: object - description: |- - Serializer for a single StockItem within a stock adjustment request. - - Required Fields: - - item: StockItem object - - quantity: Numerical quantity - - Optional Fields (may be used by external tools) - - status: Change StockItem status code - - packaging: Change StockItem packaging - - batch: Change StockItem batch code - - The optional fields can be used to adjust values for individual stock items - properties: - pk: - type: integer - title: stock_item - description: StockItem primary key value - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch: - type: string - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - status: - type: integer - description: |- - Stock item status code - - * `None` - No Change - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - packaging: - type: string - description: Packaging this stock item is stored in - maxLength: 50 - required: - - pk - - quantity - StockAssignment: - type: object - description: |- - Serializer for assigning one (or more) stock items to a customer. - - This is a manual assignment process, separate for (for example) a Sales Order - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAssignmentItem' - customer: - type: integer - description: Customer to assign stock items - notes: - type: string - description: Stock assignment notes - required: - - customer - - items - StockAssignmentItem: - type: object - description: |- - Serializer for a single StockItem with in StockAssignment request. - - Here, the particular StockItem is being assigned (manually) to a customer - - Fields: - - item: StockItem object - properties: - item: - type: integer - title: Stock Item - required: - - item - StockChangeStatus: - type: object - description: Serializer for changing status of multiple StockItem objects. - properties: - items: - type: array - items: - type: integer - title: Stock Items - title: Stock Items - description: Select stock items to change status - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - note: - type: string - title: Notes - description: Add transaction note (optional) - required: - - items - StockCount: - type: object - description: Serializer for counting stock items. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - nullable: true - description: Set stock location for counted items (optional) - required: - - items - StockItem: - type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: - type: number - format: double - serial: - type: string - nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer - nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer - nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer - nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer - nullable: true - description: Build order which consumed this stock item - customer: - type: integer - nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: - type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean - readOnly: true - is_building: - type: boolean - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: - type: integer - nullable: true - description: Select Owner - packaging: - type: string - nullable: true - description: Packaging this stock item is stored in - maxLength: 50 - parent: - type: integer - readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: - type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: - type: string - readOnly: true - nullable: true - sales_order: - type: integer - nullable: true - title: Destination Sales Order - sales_order_reference: - type: string - readOnly: true - nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - supplier_part: - type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: - type: string - readOnly: true - nullable: true - title: Supplier Part Number - MPN: - type: string - readOnly: true - nullable: true - title: Manufacturer Part Number - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - creation_date: - type: string - format: date-time - readOnly: true - nullable: true - description: Date that this stock item was created - stocktake_date: - type: string - format: date - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: - type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double - readOnly: true - nullable: true - title: Allocated Quantity - expired: - type: boolean - readOnly: true - nullable: true - installed_items: - type: integer - readOnly: true - nullable: true - child_items: - type: integer - readOnly: true - nullable: true - stale: - type: boolean - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - location_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - tags: - type: array - items: - type: string - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - readOnly: true - nullable: true - tracking_items: - type: integer - readOnly: true - nullable: true - required: - - barcode_hash - - in_stock - - part - - pk - - quantity - StockItemSerialNumbers: - type: object - description: Serializer for extra serial number information about a stock item. - properties: - next: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - title: Next Serial Number - previous: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - title: Previous Serial Number - required: - - next - - previous - StockItemStatusEnum: - enum: - - 10 - - 50 - - 55 - - 60 - - 65 - - 70 - - 75 - - 85 - type: integer - description: |- - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - StockItemTestResult: - type: object - description: Serializer for the StockItemTestResult model. - properties: - pk: - type: integer - readOnly: true - title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: - type: string - description: Test output value - maxLength: 500 - attachment: - type: string - format: uri - nullable: true - description: Test result attachment - notes: - type: string - description: Test notes - maxLength: 500 - test_station: - type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: - type: string - format: date-time - nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: - type: string - format: date-time - nullable: true - title: Finished - description: The timestamp of the test finish - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - template: - type: integer - nullable: true - title: Test template for this result - description: Template - template_detail: - allOf: - - $ref: '#/components/schemas/PartTestTemplate' - readOnly: true - nullable: true - required: - - date - - pk - - stock_item - StockLocationType: - type: object - description: Serializer for StockLocationType model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - icon: - type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: - type: integer - readOnly: true - nullable: true - required: - - name - - pk - StockMerge: - type: object - description: Serializer for merging two (or more) stock items together. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockMergeItem' - location: - type: integer - description: Destination stock location - notes: - type: string - description: Stock merging notes - allow_mismatched_suppliers: - type: boolean - description: Allow stock items with different supplier parts to be merged - allow_mismatched_status: - type: boolean - description: Allow stock items with different status codes to be merged - required: - - items - - location - StockMergeItem: - type: object - description: |- - Serializer for a single StockItem within the StockMergeSerializer class. - - Here, the individual StockItem is being checked for merge compatibility. - properties: - item: - type: integer - title: Stock Item - required: - - item - StockRemove: - type: object - description: Serializer for removing stock from stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - required: - - items - StockReturn: - type: object - description: Serializer class for returning stock item(s) into stock. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - description: Destination stock location - merge: - type: boolean - default: false - title: Merge into existing stock - description: Merge returned items into existing stock items if possible - required: - - items - - location - StockSortByEnum: - enum: - - updated - - -updated - - quantity - - -quantity - - expiry_date - type: string - description: |- - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - StockTracking: - type: object - description: Serializer for StockItemTracking model. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - nullable: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - deltas: - readOnly: true - label: - type: string - readOnly: true - notes: - type: string - nullable: true - description: Entry notes - maxLength: 512 - tracking_type: - type: integer - readOnly: true - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - date - - deltas - - label - - pk - - tracking_type - StockTransfer: - type: object - description: Serializer for transferring (moving) stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - description: Destination stock location - required: - - items - - location - SupplierList: - type: object - description: Serializer for a supplier plugin. - properties: - plugin_slug: - type: string - supplier_slug: - type: string - supplier_name: - type: string - required: - - plugin_slug - - supplier_name - - supplier_slug - SupplierPart: - type: object - description: Serializer for SupplierPart object. - properties: - available: - type: number - format: double - availability_updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Date of last update of availability data - description: - type: string - nullable: true - description: Supplier part description - maxLength: 250 - in_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - link: - type: string - format: uri - nullable: true - description: URL for external supplier part link - maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Manufacturer - manufacturer_part: - type: integer - nullable: true - description: Select manufacturer part - manufacturer_part_detail: - allOf: - - $ref: '#/components/schemas/ManufacturerPart' - readOnly: true - nullable: true - title: Manufacturer Part - MPN: - type: string - readOnly: true - nullable: true - note: - type: string - nullable: true - description: Notes - maxLength: 100 - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - packaging: - type: string - nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: - type: number - format: double - readOnly: true - part: - type: integer - title: Base Part - description: Select part - pretty_name: - type: string - readOnly: true - nullable: true - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: - type: integer - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Supplier - updated: - type: string - format: date-time - readOnly: true - nullable: true - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - tags: - type: array - items: - type: string - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - SKU - - barcode_hash - - pack_quantity_native - - part - - pk - - supplier - SupplierPriceBreak: - type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - required: - - part - - pk - - price - - quantity - - supplier - SupplierPriceBreakBrief: - type: object - description: |- - Brief serializer for SupplierPriceBreak object. - - Used to provide a list of price breaks against the SupplierPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - part - - pk - - price - - quantity - - supplier - TaskDetail: - type: object - description: Serializer for a background task detail. - properties: - task_id: - type: string - readOnly: true - exists: - type: boolean - readOnly: true - pending: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - success: - type: boolean - readOnly: true - http_status: - type: integer - readOnly: true - required: - - complete - - exists - - http_status - - pending - - success - - task_id - TaskOverview: - type: object - description: Serializer for background task overview. - properties: - is_running: - type: boolean - readOnly: true - description: Boolean value to indicate if the background worker process - is running. - pending_tasks: - type: integer - readOnly: true - description: Number of active background tasks - scheduled_tasks: - type: integer - readOnly: true - description: Number of scheduled background tasks - failed_tasks: - type: integer - readOnly: true - description: Number of failed background tasks - required: - - failed_tasks - - is_running - - pending_tasks - - scheduled_tasks - TemplateModelTypeEnum: - enum: - - build - - buildline - - company - - purchaseorder - - returnorder - - salesorder - - salesordershipment - - transferorder - - part - - stockitem - - stocklocation - type: string - description: |- - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - TestEmail: - type: object - description: Serializer to send a test email. - properties: - email: - type: string - format: email - required: - - email - TransferOrder: - type: object - description: Serializer for a TransferOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Issued - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - required: - - barcode_hash - - created_by - - pk - - reference - - status - TransferOrderAllocation: - type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - required: - - item - - line - - location - - order - - part - - pk - - quantity - TransferOrderAllocationItem: - type: object - description: A serializer for allocating a single stock-item against a TransferOrder - line item. - properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - line_item - - quantity - - stock_item - TransferOrderComplete: - type: object - description: Serializer for completing a transfer order. - properties: - accept_incomplete_allocation: - type: boolean - default: false - description: Allow order to complete with incomplete allocations - TransferOrderLineItem: - type: object - description: Serializer for a TransferOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Transfer Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - transferred - TransferOrderLineItemAllocation: - type: object - description: DRF serializer for allocation of stock items against a transfer - order line item. - properties: - items: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocationItem' - required: - - items - TransferOrderSerialAllocation: - type: object - description: DRF serializer for allocation of serial numbers against a transfer - order. - properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate - required: - - line_item - - quantity - - serial_numbers - TreePath: - type: object - description: Serializer field for representing a tree path. - properties: - pk: - type: integer - readOnly: true - name: - type: string - readOnly: true - icon: - type: string - readOnly: true - nullable: true - required: - - name - - pk - UnauthorizedStatus: - type: integer - enum: - - 401 - UninstallStockItem: - type: object - description: API serializers for uninstalling an installed item from a stock - item. - properties: - location: - type: integer - description: Destination location for uninstalled item - note: - type: string - title: Notes - description: Add transaction note (optional) - required: - - location - Unit: - type: object - description: Serializer for the AllUnitListResponseSerializer. - properties: - name: - type: string - is_alias: - type: boolean - compatible_units: - type: array - items: - type: string - isdimensionless: - type: boolean - required: - - compatible_units - - is_alias - - isdimensionless - - name - User: - type: object - description: Serializer for a User. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - required: - - email - - first_name - - last_name - - pk - - username - UserCreate: - type: object - description: Serializer for creating a new User. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - required: - - email - - first_name - - groups - - last_name - - pk - - profile - - username - UserProfile: - type: object - description: Serializer for the UserProfile model. - properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - UserSetPassword: - type: object - description: Serializer for setting a password for a user. - properties: - password: - type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules - required: - - password - UserSettings: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - user: - type: integer - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - name - - pk - - typ - - type - - units - - user - - value - UserTypeEnum: - enum: - - bot - - internal - - external - - guest - type: string - description: |- - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - Version: - type: object - description: Serializer for server version. - properties: - server: - type: string - api: - type: integer - commit_hash: - type: string - commit_date: - type: string - commit_branch: - type: string - nullable: true - python: - type: string - django: - type: string - required: - - api - - commit_branch - - commit_date - - commit_hash - - django - - python - - server - VersionInformation: - type: object - description: Serializer for a single version. - properties: - version: - type: string - date: - type: string - format: date - gh: - type: string - nullable: true - text: - type: array - items: - type: string - latest: - type: boolean - required: - - date - - gh - - latest - - text - - version - VersionView: - type: object - description: Serializer for a single version. - properties: - dev: - type: boolean - up_to_date: - type: boolean - version: - $ref: '#/components/schemas/Version' - links: - $ref: '#/components/schemas/Link' - required: - - dev - - links - - up_to_date - - version - allauth.AccessToken: - type: string - description: | - The access token. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AccountConfiguration: - type: object - description: | - Configuration of the Django `allauth.account` app. - properties: - login_methods: - type: array - items: - $ref: '#/components/schemas/LoginMethodsEnum' - is_open_for_signup: - type: boolean - email_verification_by_code_enabled: - type: boolean - login_by_code_enabled: - type: boolean - password_reset_by_code_enabled: - type: boolean - required: - - authentication_method - - email_verification_by_code_enabled - - is_open_for_signup - - login_by_code_enabled - allauth.Authenticated: - type: object - properties: - user: - $ref: '#/components/schemas/allauth.User' - methods: - type: array - description: | - A list of methods used to authenticate. - items: - $ref: '#/components/schemas/allauth.AuthenticationMethod' - required: - - user - - methods - allauth.AuthenticatedMeta: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' - - type: object - description: | - Metadata available in an re-authentication related response. - properties: - is_authenticated: - $ref: '#/components/schemas/IsTrueEnum' - required: - - is_authenticated - allauth.AuthenticatedResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.Authenticated' - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.AuthenticationMeta: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' - - type: object - description: | - Metadata available in an authentication related response. - properties: - is_authenticated: - type: boolean - required: - - is_authenticated - allauth.AuthenticationMethod: - oneOf: - - type: object - title: | - Authenticated by username/email login - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - username: - $ref: '#/components/schemas/allauth.Username' - required: - - method - - at - - type: object - title: | - Authenticated after password reset - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - required: - - at - - email - - method - - type: object - title: | - Authenticated by confirming a code sent by email. - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - required: - - at - - email - - method - - type: object - title: | - Authenticated by confirming a code sent by phone. - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - at - - method - - phone - - type: object - title: | - Reauthenticated by password - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - reauthenticated: - $ref: '#/components/schemas/IsTrueEnum' - required: - - method - - reauthenticated - - at - - type: object - title: | - Authenticated by third-party provider - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - provider: - $ref: '#/components/schemas/allauth.ProviderID' - uid: - $ref: '#/components/schemas/allauth.ProviderAccountID' - required: - - method - - reauthenticated - - at - - provider - - uid - - type: object - title: | - (Re)authenticated by 2FA - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - type: - $ref: '#/components/schemas/allauth.AuthenticatorType' - reauthenticated: - type: boolean - required: - - method - - at - - type - allauth.AuthenticationResponse: - type: object - description: | - An authentication related response. - properties: - status: - $ref: '#/components/schemas/UnauthorizedStatus' - data: - type: object - properties: - flows: - type: array - items: - $ref: '#/components/schemas/allauth.Flow' - required: - - flows - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.AuthenticatorCode: - type: string - description: | - An authenticator code. - example: '314159' - allauth.AuthenticatorID: - type: integer - description: | - Authenticator ID. - example: 123 - allauth.AuthenticatorList: - type: array - items: - oneOf: - - $ref: '#/components/schemas/allauth.TOTPAuthenticator' - - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' - - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - allauth.AuthenticatorType: - type: string - enum: - - recovery_codes - - totp - - webauthn - description: | - The type of authenticator. - allauth.BaseAuthenticationMeta: - type: object - properties: - session_token: - type: string - description: | - The session token (`app` clients only). - example: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: - type: string - description: | - The access token (`app` clients only). - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.BaseAuthenticator: - type: object - properties: - last_used_at: - $ref: '#/components/schemas/allauth.OptionalTimestamp' - created_at: - $ref: '#/components/schemas/allauth.Timestamp' - required: - - created_at - - last_used_at - allauth.BaseSignup: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - phone: - $ref: '#/components/schemas/allauth.Phone' - username: - $ref: '#/components/schemas/allauth.Username' - allauth.ClientID: - type: string - description: | - The client ID (in case of OAuth2 or OpenID Connect based providers) - example: 123.apps.googleusercontent.com - allauth.Code: - type: string - description: | - An one-time code. - example: NQ3TM5 - allauth.ConfigurationResponse: - type: object - properties: - data: - type: object - properties: - account: - $ref: '#/components/schemas/allauth.AccountConfiguration' - socialaccount: - $ref: '#/components/schemas/allauth.SocialAccountConfiguration' - mfa: - $ref: '#/components/schemas/allauth.MFAConfiguration' - usersessions: - $ref: '#/components/schemas/allauth.UserSessionsConfiguration' - required: - - account - status: - $ref: '#/components/schemas/allauth.StatusOK' - required: - - status - - data - example: - status: 200 - data: - account: - authentication_method: email - socialaccount: - providers: - - id: google - name: Google - flows: - - provider_redirect - - provider_token - client_id: 123.apps.googleusercontent.com - openid_configuration_url: https://accounts.google.com/.well-known/openid-configuration - mfa: - supported_types: - - recovery_codes - - totp - usersessions: - track_activity: false - allauth.ConfirmLoginCode: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.Code' - required: - - code - allauth.ConflictResponse: - type: object - properties: - status: - $ref: '#/components/schemas/Allauth.ConflictResponseStatusEnum' - required: - - status - allauth.Email: - type: string - description: | - The email address. - example: email@domain.org - allauth.EmailAddress: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - primary: - type: boolean - example: true - verified: - type: boolean - example: false - required: - - email - - primary - - verified - allauth.EmailVerificationInfo: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - user: - $ref: '#/components/schemas/allauth.User' - required: - - email - - user - meta: - type: object - properties: - is_authenticating: - type: boolean - required: - - is_authenticating - required: - - status - - data - - meta - allauth.EndSessions: - type: object - properties: - sessions: - description: | - The IDs of the sessions that are to be ended. - type: array - items: - type: integer - example: 123 - required: - - sessions - allauth.ErrorResponse: - type: object - properties: - status: - allOf: - - $ref: '#/components/schemas/Allauth.ErrorResponseStatusEnum' - example: 400 - errors: - type: array - items: - type: object - properties: - code: - type: string - example: invalid - description: | - An error code. - param: - type: string - example: email - description: | - The name of the input parameter that was incorrect. - message: - type: string - example: Enter a valid email address. - description: | - A human readable error message. - required: - - code - - message - allauth.Flow: - type: object - properties: - id: - $ref: '#/components/schemas/IdEnum' - provider: - $ref: '#/components/schemas/allauth.Provider' - is_pending: - $ref: '#/components/schemas/IsTrueEnum' - types: - type: array - description: Matches `settings.MFA_SUPPORTED_TYPES`. - items: - $ref: '#/components/schemas/allauth.AuthenticatorType' - required: - - id - allauth.ForbiddenResponse: - type: object - properties: - status: - $ref: '#/components/schemas/Allauth.ForbiddenResponseStatusEnum' - required: - - status - allauth.Login: - allOf: - - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - - anyOf: - - title: Login by username - properties: - username: - $ref: '#/components/schemas/allauth.Username' - required: - - username - - title: Login by email - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - - title: Login by phone - properties: - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - phone - allauth.MFAAuthenticate: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - code - allauth.MFAConfiguration: - type: object - description: | - Configuration of the Django `allauth.mfa` app. - properties: - supported_types: - type: array - description: | - Matches `settings.MFA_SUPPORTED_TYPES`. - items: - $ref: '#/components/schemas/allauth.AuthenticatorType' - required: - - supported_types - allauth.MFATrust: - type: object - properties: - trust: - type: boolean - required: - - trust - allauth.OptionalTimestamp: - nullable: true - $ref: '#/components/schemas/allauth.Timestamp' - allauth.PasskeySignup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - allauth.Password: - type: string - description: | - The password. - example: Alohomora! - allauth.Phone: - type: string - description: | - The phone number. - example: '+314159265359' - allauth.PhoneNumber: - type: object - description: | - A phone number. - properties: - phone: - type: string - example: '+314159265359' - verified: - type: boolean - required: - - phone - - verified - allauth.PhoneNumberChangeResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusAccepted' - data: - type: array - items: - $ref: '#/components/schemas/allauth.PhoneNumber' - required: - - status - - data - example: - status: 202 - data: - - phone: '+314159265359' - verified: false - allauth.PhoneNumbersResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.PhoneNumber' - required: - - status - - data - allauth.Process: - type: string - description: | - The process to be executed when the user successfully - authenticates. When set to `login`, the user will be logged into the - account to which the provider account is connected, or if no such - account exists, a signup will occur. If set to `connect`, the provider - account will be connected to the list of provider accounts for the - currently authenticated user. - enum: - - login - - connect - example: login - allauth.Provider: - type: object - properties: - id: - type: string - example: google - description: | - The provider ID. - name: - type: string - description: | - The name of the provider. - example: Google - client_id: - type: string - description: | - The client ID (in case of OAuth2 or OpenID Connect based providers) - example: 123.apps.googleusercontent.com - openid_configuration_url: - type: string - description: | - The OIDC discovery or well-known URL (in case of OAuth2 or OpenID Connect based providers) - example: https://accounts.google.com/.well-known/openid-configuration - flows: - type: array - description: | - The authentication flows the provider integration supports. - items: - $ref: '#/components/schemas/FlowsEnum' - required: - - id - - name - - flows - allauth.ProviderAccount: - type: object - properties: - uid: - $ref: '#/components/schemas/allauth.ProviderAccountID' - display: - type: string - description: | - A name derived from the third-party provider account data. - example: Wizzkid - provider: - $ref: '#/components/schemas/allauth.Provider' - required: - - uid - - provider - - display - allauth.ProviderAccountID: - type: string - description: | - The provider specific account ID. - example: goo12345 - allauth.ProviderID: - type: string - description: | - The provider ID. - example: google - allauth.ProviderList: - type: array - items: - $ref: '#/components/schemas/allauth.Provider' - allauth.ProviderRedirect: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - callback_url: - type: string - description: | - The URL to return to after the redirect flow is complete. - - Note that this is not to be mistaken with the callback URL that you - configure over at the OAuth provider during the OAuth app/client - setup. The flow is as follows: - - 1. Your frontend redirects to the headless provider redirect - endpoint in a synchronous (non-XHR) manner, informing allauth - (by means of `callback_url`) where to redirect to after the - provider handshake is completed. - - 2. Headless will redirect to the (OAuth) identity provider to - initiate the handshake, passing along a different callback URL - to the provider: one that points to an allauth backend URL. - This is the URL that you need to have setup at your OAuth - app/client configuration. Note that this must be a backend URL - as providers can use POST requests to perform their callbacks, - which is something a frontend would not be able to handle. - - 3. After the authorization at the provider is completed, the - provider redirects to the *backend* allauth callback URL, which - will then redirect back to the *frontend* callback URL. - - 4. Your frontend is now expected to fetch the current session to - determine what the next course of action is. The user could be - authenticated at this point, or another flow is pending - (e.g. email verification, or, provider signup). In case of - errors a `?error=` is passed to the frontend callback URL. - example: https://app.project.org/account/provider/callback - process: - $ref: '#/components/schemas/allauth.Process' - required: - - provider - - process - - callback_url - allauth.ProviderSignup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - allauth.ProviderToken: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - process: - $ref: '#/components/schemas/allauth.Process' - token: - description: | - The token. - type: object - properties: - client_id: - $ref: '#/components/schemas/allauth.ClientID' - id_token: - type: string - description: | - The ID token. - example: eyJhbGciOiJI - access_token: - type: string - description: | - The access token. - example: 36POk6yJV_adQs - required: - - client_id - required: - - provider - - process - - token - allauth.Reauthenticate: - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - allauth.ReauthenticationRequired: - properties: - flows: - type: array - items: - $ref: '#/components/schemas/allauth.Flow' - user: - $ref: '#/components/schemas/allauth.User' - methods: - type: array - description: | - A list of methods used to authenticate. - items: - $ref: '#/components/schemas/allauth.AuthenticationMethod' - required: - - flows - - user - - methods - type: object - allauth.ReauthenticationResponse: - type: object - description: | - A response indicating reauthentication is required. - properties: - status: - $ref: '#/components/schemas/UnauthorizedStatus' - data: - $ref: '#/components/schemas/allauth.ReauthenticationRequired' - meta: - $ref: '#/components/schemas/allauth.AuthenticatedMeta' - required: - - status - - data - - meta - allauth.RecoveryCodesAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - allOf: - - $ref: '#/components/schemas/Allauth.RecoveryCodesAuthenticatorTypeEnum' - description: | - The authenticator type. - total_code_count: - type: integer - description: | - The total number of recovery codes that initially were available. - example: 10 - unused_code_count: - type: integer - description: | - The number of recovery codes that are unused. - example: 7 - required: - - type - - total_code_count - - unused_code_count - allauth.RefreshToken: - type: string - description: | - The refresh token. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30 - allauth.RequestLoginCode: - type: object - anyOf: - - title: Request login code (phone) - properties: - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - phone - - title: Request login code (email) - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.RequestPassword: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.ResetPassword: - type: object - properties: - key: - type: string - description: The password reset key - example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 - password: - $ref: '#/components/schemas/allauth.Password' - required: - - key - - password - allauth.SensitiveRecoveryCodesAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' - - type: object - properties: - unused_codes: - type: array - description: | - The list of unused codes. - items: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - unused_codes - allauth.Session: - type: object - properties: - user_agent: - type: string - example: Mozilla Firefox - ip: - type: string - example: 127.2.3.192 - created_at: - $ref: '#/components/schemas/allauth.Timestamp' - is_current: - type: boolean - id: - type: integer - example: 123 - last_seen_at: - $ref: '#/components/schemas/allauth.Timestamp' - required: - - user_agent - - ip - - created_at - - is_current - - id - allauth.SessionGoneResponse: - type: object - description: | - The session is expired or invalid. - properties: - status: - $ref: '#/components/schemas/Allauth.SessionGoneResponseStatusEnum' - data: - type: object - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.Signup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - allauth.SocialAccountConfiguration: - type: object - description: | - Configuration of the Django `allauth.socialaccount` app. - properties: - providers: - $ref: '#/components/schemas/allauth.ProviderList' - required: - - providers - allauth.StatusAccepted: - type: integer - enum: - - 202 - allauth.StatusOK: - type: integer - enum: - - 200 - allauth.TOTPAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - $ref: '#/components/schemas/Allauth.TOTPAuthenticatorTypeEnum' - required: - - type - allauth.Timestamp: - type: number - description: | - An epoch based timestamp (trivial to parse using: `new Date(value)*1000`) - example: 1711555057.065702 - allauth.User: - type: object - properties: - id: - description: | - The user ID. - oneOf: - - type: integer - example: 123 - - type: string - example: 89d3f9a0-51a5-49dd-8b97-7536641958e9 - display: - type: string - description: | - The display name for the user. - example: Magic Wizard - has_usable_password: - type: boolean - description: | - Whether or not the account has a password set. - example: true - email: - $ref: '#/components/schemas/allauth.Email' - username: - $ref: '#/components/schemas/allauth.Username' - allauth.UserSessionsConfiguration: - type: object - description: | - Configuration of the Django `allauth.usersessions` app. - properties: - track_activity: - type: boolean - description: | - Matches `settings.USERSESSIONS_TRACK_ACTIVITY`. - required: - - track_activity - allauth.Username: - type: string - description: | - The username. - example: wizard - allauth.VerifyEmail: - type: object - properties: - key: - type: string - description: The email verification key - example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 - required: - - key - allauth.VerifyPhone: - type: object - properties: - code: - type: string - description: The phone verification code - example: 4S3H82 - required: - - code - allauth.WebAuthnAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - $ref: '#/components/schemas/Allauth.WebAuthnAuthenticatorTypeEnum' - id: - $ref: '#/components/schemas/allauth.AuthenticatorID' - name: - type: string - example: Master key - is_passwordless: - type: boolean - description: | - Whether or not this authenticator represents a passkey. Absent if it is not specified. - required: - - type - - id - - name - allauth.WebAuthnCredential: - type: object - example: - credential: - type: public-key - id: -J4JNfPfnLyRSMK4R... - rawId: -J4JNfPfnLyRSMK4R... - authenticatorAttachment: cross-platform - response: - clientDataJSON: eyJjaGFsbGVuZ2UiOi... - authenticatorData: SZYN5YgO... - signature: MEUCIE-7sqILygPqGbrRZ4j2nqeqUU... - userHandle: Mg... - clientExtensionResults: {} - allauth.WebAuthnCredentialCreationOptions: - type: object - properties: - creation_options: - type: object - example: - status: 200 - data: - request_options: - publicKey: - challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o - rpId: localhost - allowCredentials: [] - userVerification: preferred - required: - - creation_options - allauth.WebAuthnCredentialRequestOptions: - type: object - properties: - request_options: - type: object - example: - status: 200 - data: - request_options: - publicKey: - challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o - rpId: localhost - allowCredentials: [] - userVerification: preferred - required: - - request_options - securitySchemes: - basicAuth: - type: http - scheme: basic - cookieAuth: - type: apiKey - in: cookie - name: sessionid - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: /o/authorize/ - tokenUrl: /o/token/ - refreshUrl: /o/revoke_token/ - scopes: - g:read: General Read scope - openid: OpenID Connect scope - a:staff: User Role Staff - a:superuser: User Role Superuser - r:view:admin: GET for Role Admin - r:view:part_category: GET for Role Part Categories - r:view:part: GET for Role Parts - r:view:stock_location: GET for Role Stock Locations - r:view:stock: GET for Role Stock Items - r:view:bom: GET for Role Bills of Material - r:view:build: GET for Role Build Orders - r:view:purchase_order: GET for Role Purchase Orders - r:view:sales_order: GET for Role Sales Orders - r:view:return_order: GET for Role Return Orders - r:view:transfer_order: GET for Role Transfer Orders - r:view:repair_order: GET for Role Repair Orders - r:add:admin: POST for Role Admin - r:add:part_category: POST for Role Part Categories - r:add:part: POST for Role Parts - r:add:stock_location: POST for Role Stock Locations - r:add:stock: POST for Role Stock Items - r:add:bom: POST for Role Bills of Material - r:add:build: POST for Role Build Orders - r:add:purchase_order: POST for Role Purchase Orders - r:add:sales_order: POST for Role Sales Orders - r:add:return_order: POST for Role Return Orders - r:add:transfer_order: POST for Role Transfer Orders - r:add:repair_order: POST for Role Repair Orders - r:change:admin: PUT / PATCH for Role Admin - r:change:part_category: PUT / PATCH for Role Part Categories - r:change:part: PUT / PATCH for Role Parts - r:change:stock_location: PUT / PATCH for Role Stock Locations - r:change:stock: PUT / PATCH for Role Stock Items - r:change:bom: PUT / PATCH for Role Bills of Material - r:change:build: PUT / PATCH for Role Build Orders - r:change:purchase_order: PUT / PATCH for Role Purchase Orders - r:change:sales_order: PUT / PATCH for Role Sales Orders - r:change:return_order: PUT / PATCH for Role Return Orders - r:change:transfer_order: PUT / PATCH for Role Transfer Orders - r:change:repair_order: PUT / PATCH for Role Repair Orders - r:delete:admin: DELETE for Role Admin - r:delete:part_category: DELETE for Role Part Categories - r:delete:part: DELETE for Role Parts - r:delete:stock_location: DELETE for Role Stock Locations - r:delete:stock: DELETE for Role Stock Items - r:delete:bom: DELETE for Role Bills of Material - r:delete:build: DELETE for Role Build Orders - r:delete:purchase_order: DELETE for Role Purchase Orders - r:delete:sales_order: DELETE for Role Sales Orders - r:delete:return_order: DELETE for Role Return Orders - r:delete:transfer_order: DELETE for Role Transfer Orders - r:delete:repair_order: DELETE for Role Repair Orders - clientCredentials: - tokenUrl: /o/token/ - refreshUrl: /o/revoke_token/ - scopes: - g:read: General Read scope - openid: OpenID Connect scope - a:staff: User Role Staff - a:superuser: User Role Superuser - r:view:admin: GET for Role Admin - r:view:part_category: GET for Role Part Categories - r:view:part: GET for Role Parts - r:view:stock_location: GET for Role Stock Locations - r:view:stock: GET for Role Stock Items - r:view:bom: GET for Role Bills of Material - r:view:build: GET for Role Build Orders - r:view:purchase_order: GET for Role Purchase Orders - r:view:sales_order: GET for Role Sales Orders - r:view:return_order: GET for Role Return Orders - r:view:transfer_order: GET for Role Transfer Orders - r:view:repair_order: GET for Role Repair Orders - r:add:admin: POST for Role Admin - r:add:part_category: POST for Role Part Categories - r:add:part: POST for Role Parts - r:add:stock_location: POST for Role Stock Locations - r:add:stock: POST for Role Stock Items - r:add:bom: POST for Role Bills of Material - r:add:build: POST for Role Build Orders - r:add:purchase_order: POST for Role Purchase Orders - r:add:sales_order: POST for Role Sales Orders - r:add:return_order: POST for Role Return Orders - r:add:transfer_order: POST for Role Transfer Orders - r:add:repair_order: POST for Role Repair Orders - r:change:admin: PUT / PATCH for Role Admin - r:change:part_category: PUT / PATCH for Role Part Categories - r:change:part: PUT / PATCH for Role Parts - r:change:stock_location: PUT / PATCH for Role Stock Locations - r:change:stock: PUT / PATCH for Role Stock Items - r:change:bom: PUT / PATCH for Role Bills of Material - r:change:build: PUT / PATCH for Role Build Orders - r:change:purchase_order: PUT / PATCH for Role Purchase Orders - r:change:sales_order: PUT / PATCH for Role Sales Orders - r:change:return_order: PUT / PATCH for Role Return Orders - r:change:transfer_order: PUT / PATCH for Role Transfer Orders - r:change:repair_order: PUT / PATCH for Role Repair Orders - r:delete:admin: DELETE for Role Admin - r:delete:part_category: DELETE for Role Part Categories - r:delete:part: DELETE for Role Parts - r:delete:stock_location: DELETE for Role Stock Locations - r:delete:stock: DELETE for Role Stock Items - r:delete:bom: DELETE for Role Bills of Material - r:delete:build: DELETE for Role Build Orders - r:delete:purchase_order: DELETE for Role Purchase Orders - r:delete:sales_order: DELETE for Role Sales Orders - r:delete:return_order: DELETE for Role Return Orders - r:delete:transfer_order: DELETE for Role Transfer Orders - r:delete:repair_order: DELETE for Role Repair Orders - tokenAuth: - type: apiKey - in: header - name: Authorization - description: Token-based authentication with required prefix "Token" -servers: -- url: http://localhost:8000 -externalDocs: - description: More information about InvenTree in the official docs - url: https://docs.inventree.org From d771ebef00fd732418ecbb31972335af971a4af9 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 10:52:50 +0530 Subject: [PATCH 14/27] Fix: Update state classes count in test_all_states for RepairOrderStatus --- src/backend/InvenTree/generic/states/tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/InvenTree/generic/states/tests.py b/src/backend/InvenTree/generic/states/tests.py index fe33eaf78e02..a7dcfb2cfc47 100644 --- a/src/backend/InvenTree/generic/states/tests.py +++ b/src/backend/InvenTree/generic/states/tests.py @@ -232,8 +232,8 @@ def test_all_states(self): """Test the API endpoint for listing all status models.""" response = self.get(reverse('api-status-all')) - # 11 built-in state classes, plus the added GeneralState class - self.assertEqual(len(response.data), 12) + # 12 built-in state classes, plus the added GeneralState class + self.assertEqual(len(response.data), 13) # Test the BuildStatus model build_status = response.data['BuildStatus'] @@ -273,7 +273,7 @@ def test_all_states(self): ) response = self.get(reverse('api-status-all')) - self.assertEqual(len(response.data), 12) + self.assertEqual(len(response.data), 13) stock_status_cstm = response.data['StockStatus'] self.assertEqual(stock_status_cstm['status_class'], 'StockStatus') From f60e28399c9598c80481d30315a9c37d856c925e Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 15:51:50 +0530 Subject: [PATCH 15/27] Fix: Inherit required Mixins for RepairOrder, regenerate migration and API schema --- ...epairorder_repairorderlineitem_and_more.py | 71 + src/backend/InvenTree/order/models.py | 151 +- src/backend/InvenTree/schema.yml | 44179 ++++++++++++++++ 3 files changed, 44335 insertions(+), 66 deletions(-) create mode 100644 src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_and_more.py create mode 100644 src/backend/InvenTree/schema.yml diff --git a/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_and_more.py b/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_and_more.py new file mode 100644 index 000000000000..5770873e379e --- /dev/null +++ b/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_and_more.py @@ -0,0 +1,71 @@ +# Generated by Django 5.2.14 on 2026-06-04 09:58 + +import InvenTree.fields +import InvenTree.models +import django.db.models.deletion +import generic.states.fields +import generic.states.states +import generic.states.transition +import generic.states.validators +import order.status_codes +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('company', '0079_auto_20260212_1054'), + ('order', '0119_transferorderlineitem_line_int'), + ('part', '0150_part_maximum_stock'), + ('stock', '0123_remove_stockitem_review_needed'), + ] + + operations = [ + migrations.CreateModel( + name='RepairOrder', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('metadata', models.JSONField(blank=True, help_text='JSON metadata field, for use by external plugins', null=True, verbose_name='Plugin Metadata')), + ('reference_int', models.BigIntegerField(default=0)), + ('notes', InvenTree.fields.InvenTreeNotesField(blank=True, help_text='Markdown notes (optional)', max_length=50000, null=True, verbose_name='Notes')), + ('barcode_data', models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data')), + ('barcode_hash', models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash')), + ('reference', models.CharField(help_text='Repair Order Reference', max_length=100, unique=True, verbose_name='Reference')), + ('description', models.CharField(help_text='Repair order description', max_length=250, verbose_name='Description')), + ('symptoms', models.TextField(blank=True, help_text='Reported symptoms or issues', verbose_name='Symptoms')), + ('status', generic.states.fields.InvenTreeCustomStatusModelField(choices=[(10, 'Pending'), (20, 'In Progress'), (25, 'On Hold'), (30, 'Complete'), (40, 'Cancelled')], default=10, help_text='Repair order status', validators=[generic.states.validators.CustomStatusCodeValidator(status_class=order.status_codes.RepairOrderStatus)], verbose_name='Status')), + + ('customer', models.ForeignKey(blank=True, help_text='Customer reference', limit_choices_to={'is_customer': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='repair_orders', to='company.company', verbose_name='Customer')), + ], + options={ + 'verbose_name': 'Repair Order', + }, + bases=(generic.states.states.StatusCodeMixin, generic.states.transition.StateTransitionMixin, InvenTree.models.InvenTreeAttachmentMixin, InvenTree.models.InvenTreePermissionCheckMixin, InvenTree.models.ContentTypeMixin, InvenTree.models.PluginValidationMixin, models.Model), + ), + migrations.CreateModel( + name='RepairOrderLineItem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('metadata', models.JSONField(blank=True, help_text='JSON metadata field, for use by external plugins', null=True, verbose_name='Plugin Metadata')), + ('quantity', models.DecimalField(decimal_places=5, default=1, help_text='Item quantity required for repair', max_digits=15, verbose_name='Quantity')), + ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lines', to='order.repairorder', verbose_name='Repair Order')), + ('part', models.ForeignKey(blank=True, help_text='Part to be consumed for repair', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='repair_order_line_items', to='part.part', verbose_name='Part')), + ], + options={ + 'verbose_name': 'Repair Order Line Item', + }, + bases=(InvenTree.models.ContentTypeMixin, InvenTree.models.PluginValidationMixin, models.Model), + ), + migrations.CreateModel( + name='RepairOrderAllocation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.DecimalField(decimal_places=5, default=1, help_text='Allocated stock quantity', max_digits=15, verbose_name='Quantity')), + ('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='repair_order_allocations', to='stock.stockitem', verbose_name='Stock Item')), + ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='allocations', to='order.repairorderlineitem', verbose_name='Line Item')), + ], + options={ + 'verbose_name': 'Repair Order Allocation', + }, + ), + ] diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index fe1439e8dbd8..40b81699556c 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -352,9 +352,9 @@ def save(self, *args, **kwargs): if self.get_db_instance().status != self.status: pass else: - raise ValidationError({ - 'reference': _('This order is locked and cannot be modified') - }) + raise ValidationError( + {'reference': _('This order is locked and cannot be modified')} + ) # Reference calculations self.reference_int = self.rebuild_reference_field(self.reference) @@ -399,9 +399,13 @@ def clean(self): if self.REQUIRE_RESPONSIBLE_SETTING: if get_global_setting(self.REQUIRE_RESPONSIBLE_SETTING, backup_value=False): if not self.responsible: - raise ValidationError({ - 'responsible': _('Responsible user or group must be specified') - }) + raise ValidationError( + { + 'responsible': _( + 'Responsible user or group must be specified' + ) + } + ) # Check that the referenced 'contact' matches the correct 'company' if ( @@ -411,16 +415,18 @@ def clean(self): and self.contact and (self.contact.company != self.company) ): - raise ValidationError({ - 'contact': _('Contact does not match selected company') - }) + raise ValidationError( + {'contact': _('Contact does not match selected company')} + ) # Target date should be *after* the start date if self.start_date and self.target_date and self.start_date > self.target_date: - raise ValidationError({ - 'target_date': _('Target date must be after start date'), - 'start_date': _('Start date must be before target date'), - }) + raise ValidationError( + { + 'target_date': _('Target date must be after start date'), + 'start_date': _('Start date must be before target date'), + } + ) # Check that the referenced 'address' matches the correct 'company' if ( @@ -429,9 +435,9 @@ def clean(self): and self.address and (self.address.company != self.company) ): - raise ValidationError({ - 'address': _('Address does not match selected company') - }) + raise ValidationError( + {'address': _('Address does not match selected company')} + ) def clean_line_item(self, line): """Clean a line item for this order. @@ -476,8 +482,7 @@ def is_overdue(self): Makes use of the overdue_filter() method to avoid code duplication """ return ( - self.__class__.objects - .filter(pk=self.pk) + self.__class__.objects.filter(pk=self.pk) .filter(self.__class__.overdue_filter()) .exists() ) @@ -781,16 +786,16 @@ def add_line_item( try: quantity = int(quantity) if quantity <= 0: - raise ValidationError({ - 'quantity': _('Quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Quantity must be greater than zero')} + ) except ValueError: raise ValidationError({'quantity': _('Invalid quantity provided')}) if supplier_part.supplier != self.supplier: - raise ValidationError({ - 'supplier': _('Part supplier must match PO supplier') - }) + raise ValidationError( + {'supplier': _('Part supplier must match PO supplier')} + ) if group: # Check if there is already a matching line item (for this PurchaseOrder) @@ -1075,9 +1080,9 @@ def receive_line_items( try: if quantity < 0: - raise ValidationError({ - 'quantity': _('Quantity must be a positive number') - }) + raise ValidationError( + {'quantity': _('Quantity must be a positive number')} + ) quantity = InvenTree.helpers.clean_decimal(quantity) except TypeError: raise ValidationError({'quantity': _('Invalid quantity provided')}) @@ -1951,9 +1956,9 @@ def save(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) update_order = kwargs.pop('update_order', True) @@ -1976,9 +1981,9 @@ def delete(self, *args, **kwargs): Calls save method on the linked order """ if self.order and self.order.check_locked(): - raise ValidationError({ - 'non_field_errors': _('The order is locked and cannot be modified') - }) + raise ValidationError( + {'non_field_errors': _('The order is locked and cannot be modified')} + ) super().delete(*args, **kwargs) self.order.save() @@ -2137,33 +2142,37 @@ def clean(self) -> None: if self.build_order: if not self.build_order.external: - raise ValidationError({ - 'build_order': _('Build order must be marked as external') - }) + raise ValidationError( + {'build_order': _('Build order must be marked as external')} + ) if part: if not part.assembly: - raise ValidationError({ - 'build_order': _( - 'Build orders can only be linked to assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'Build orders can only be linked to assembly parts' + ) + } + ) if self.build_order.part != self.part.part: - raise ValidationError({ - 'build_order': _('Build order part must match line item part') - }) + raise ValidationError( + {'build_order': _('Build order part must match line item part')} + ) # Extra checks for external builds if part and part.assembly and get_global_setting('BUILDORDER_EXTERNAL_BUILDS'): if not self.build_order and get_global_setting( 'BUILDORDER_EXTERNAL_REQUIRED' ): - raise ValidationError({ - 'build_order': _( - 'An external build order is required for assembly parts' - ) - }) + raise ValidationError( + { + 'build_order': _( + 'An external build order is required for assembly parts' + ) + } + ) def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" @@ -2347,9 +2356,9 @@ def clean(self) -> None: if self.part: if not self.part.salable: - raise ValidationError({ - 'part': _('Only salable parts can be assigned to a sales order') - }) + raise ValidationError( + {'part': _('Only salable parts can be assigned to a sales order')} + ) order = models.ForeignKey( SalesOrder, @@ -2510,9 +2519,9 @@ def clean(self) -> None: if self.order and self.shipment_address: if self.shipment_address.company != self.order.customer: - raise ValidationError({ - 'shipment_address': _('Shipment address must match the customer') - }) + raise ValidationError( + {'shipment_address': _('Shipment address must match the customer')} + ) @staticmethod def get_api_url() -> str: @@ -3244,19 +3253,19 @@ def clean(self): raise ValidationError({'item': _('Stock item must be specified')}) if self.quantity > self.item.quantity: - raise ValidationError({ - 'quantity': _('Return quantity exceeds stock quantity') - }) + raise ValidationError( + {'quantity': _('Return quantity exceeds stock quantity')} + ) if self.quantity <= 0: - raise ValidationError({ - 'quantity': _('Return quantity must be greater than zero') - }) + raise ValidationError( + {'quantity': _('Return quantity must be greater than zero')} + ) if self.item.serialized and self.quantity != 1: - raise ValidationError({ - 'quantity': _('Invalid quantity for serialized stock item') - }) + raise ValidationError( + {'quantity': _('Invalid quantity for serialized stock item')} + ) order = models.ForeignKey( ReturnOrder, @@ -4006,12 +4015,21 @@ def update_order_on_lineitem_change(sender, instance, **kwargs): class RepairOrder( + StatusCodeMixin, + StateTransitionMixin, + InvenTree.models.InvenTreeParameterMixin, InvenTree.models.InvenTreeAttachmentMixin, + InvenTree.models.InvenTreeBarcodeMixin, InvenTree.models.InvenTreeNotesMixin, + report.mixins.InvenTreeReportMixin, + InvenTree.models.ReferenceIndexingMixin, InvenTree.models.InvenTreeMetadataModel, ): """A RepairOrder represents a repair request from a customer.""" + STATUS_CLASS = RepairOrderStatus + REFERENCE_PATTERN_SETTING = 'REPAIRORDER_REFERENCE_PATTERN' + class Meta: """Model meta options.""" @@ -4049,11 +4067,12 @@ class Meta: help_text=_('Reported symptoms or issues'), ) - status = models.IntegerField( + status = InvenTreeCustomStatusModelField( default=RepairOrderStatus.PENDING.value, choices=RepairOrderStatus.items(), - verbose_name=_('Status'), + status_class=RepairOrderStatus, help_text=_('Repair order status'), + verbose_name=_('Status'), ) @staticmethod diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml new file mode 100644 index 000000000000..7fcb13ef8f82 --- /dev/null +++ b/src/backend/InvenTree/schema.yml @@ -0,0 +1,44179 @@ +openapi: 3.0.3 +info: + title: InvenTree API + version: '500' + description: API for InvenTree - the intuitive open source inventory management + system + license: + name: MIT + url: https://github.com/inventree/InvenTree/blob/master/LICENSE +paths: + /api/: + get: + operationId: root_retrieve + description: Serve current server information. + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InfoApi' + description: InvenTree server information + /api/action/: + post: + operationId: action_create + description: This function checks if all required info was submitted and then + performs a plugin_action or returns an error. + tags: + - action + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPlugin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ActionPlugin' + multipart/form-data: + schema: + $ref: '#/components/schemas/ActionPlugin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPlugin' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPluginError' + description: No action specified + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionPluginError' + description: No matching action found + /api/admin/config/: + get: + operationId: admin_config_list + description: All accessed/in-use configurations. + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Config' + description: '' + /api/admin/config/{key}/: + get: + operationId: admin_config_retrieve + description: All accessed/in-use configurations. + parameters: + - in: path + name: key + schema: + type: string + description: Unique identifier for this configuration + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Config' + description: '' + /api/admin/email/: + get: + operationId: admin_email_list + description: Backend E-Mail management for administrative purposes. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - created + - -created + - subject + - -subject + - to + - -to + - sender + - -sender + - status + - -status + - timestamp + - -timestamp + - direction + - -direction + - name: search + required: false + in: query + description: 'A search term. Searched fields: global_id, message_id_key, sender, + subject, thread_id_key, to.' + schema: + type: string + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmailMessageList' + description: '' + delete: + operationId: admin_email_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/admin/email/{global_id}/: + get: + operationId: admin_email_retrieve + description: Backend E-Mail management for administrative purposes. + parameters: + - in: path + name: global_id + schema: + type: string + format: uuid + description: Unique identifier for this message + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EmailMessage' + description: '' + delete: + operationId: admin_email_destroy + description: Backend E-Mail management for administrative purposes. + parameters: + - in: path + name: global_id + schema: + type: string + format: uuid + description: Unique identifier for this message + required: true + tags: + - admin + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + /api/admin/email/test/: + post: + operationId: admin_email_test_create + description: Send a test email. + tags: + - admin + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestEmail' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TestEmail' + multipart/form-data: + schema: + $ref: '#/components/schemas/TestEmail' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TestEmail' + description: '' + /api/attachment/: + get: + operationId: attachment_list + description: List API endpoint for Attachment objects. + parameters: + - in: query + name: has_thumbnail + schema: + type: boolean + description: Has Thumbnail + - in: query + name: is_file + schema: + type: boolean + description: Is File + - in: query + name: is_image + schema: + type: boolean + - in: query + name: is_link + schema: + type: boolean + description: Is Link + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_id + schema: + type: integer + - in: query + name: model_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - model_id + - -model_id + - model_type + - -model_type + - upload_date + - -upload_date + - file_size + - -file_size + - name: search + required: false + in: query + description: 'A search term. Searched fields: comment, model_id, model_type.' + schema: + type: string + - in: query + name: upload_user + schema: + type: integer + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAttachmentList' + description: '' + post: + operationId: attachment_create + description: List API endpoint for Attachment objects. + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Attachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Attachment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: attachment_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/attachment/{id}/: + get: + operationId: attachment_retrieve + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + put: + operationId: attachment_update + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Attachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Attachment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + patch: + operationId: attachment_partial_update + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedAttachment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAttachment' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAttachment' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: attachment_destroy + description: Detail API endpoint for Attachment objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - attachment + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/background-task/: + get: + operationId: background_task_overview + description: Return information about the current status of the background task + queue. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskOverview' + description: '' + /api/background-task/{task_id}/: + get: + operationId: background_task_retrieve + description: Fetch information regarding a particular background task ID. + parameters: + - in: path + name: task_id + schema: + type: string + required: true + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/background-task/failed/: + get: + operationId: background_task_failed_list + description: Provides a read-only list of currently failed tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - func + - -func + - started + - -started + - stopped + - -stopped + - name: search + required: false + in: query + description: 'A search term. Searched fields: func.' + schema: + type: string + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFailedTaskList' + description: '' + delete: + operationId: background_task_failed_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/background-task/pending/: + get: + operationId: background_task_pending_list + description: Provides a read-only list of currently pending tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPendingTaskList' + description: '' + delete: + operationId: background_task_pending_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/background-task/scheduled/: + get: + operationId: background_task_scheduled_list + description: Provides a read-only list of currently scheduled tasks. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - func + - -func + - last_run + - -last_run + - next_run + - -next_run + - name: search + required: false + in: query + description: 'A search term. Searched fields: func, name.' + schema: + type: string + tags: + - background-task + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScheduledTaskList' + description: '' + /api/barcode/: + post: + operationId: barcode_create + description: |- + Endpoint for handling generic barcode scan requests. + + Barcode data are decoded by the client application, + and sent to this endpoint (as a JSON object) for validation. + + A barcode could follow the internal InvenTree barcode format, + or it could match to a third-party barcode format (e.g. Digikey). + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Barcode' + multipart/form-data: + schema: + $ref: '#/components/schemas/Barcode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + description: '' + /api/barcode/generate/: + post: + operationId: barcode_generate_create + description: |- + Endpoint for generating a barcode for a database object. + + The barcode is generated by the selected barcode plugin. + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeGenerate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Barcode' + description: '' + /api/barcode/history/: + get: + operationId: barcode_history_list + description: List API endpoint for BarcodeScan objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - user + - -user + - timestamp + - -timestamp + - endpoint + - -endpoint + - result + - -result + - in: query + name: result + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: data.' + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBarcodeScanResultList' + description: '' + delete: + operationId: barcode_history_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/barcode/history/{id}/: + get: + operationId: barcode_history_retrieve + description: Detail endpoint for a BarcodeScan object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeScanResult' + description: '' + delete: + operationId: barcode_history_destroy + description: Detail endpoint for a BarcodeScan object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - barcode + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/barcode/link/: + post: + operationId: barcode_link_create + description: |- + Endpoint for assigning a barcode to a stock item. + + - This only works if the barcode is not already associated with an object in the database + - If the barcode does not match an object, then the barcode hash is assigned to the StockItem + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeAssign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeAssign' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeAssign' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeAssign' + description: '' + /api/barcode/po-allocate/: + post: + operationId: barcode_po_allocate_create + description: |- + Endpoint for allocating parts to a purchase order by scanning their barcode. + + Note that the scanned barcode may point to: + + - A Part object + - A ManufacturerPart object + - A SupplierPart object + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOAllocate' + description: '' + /api/barcode/po-receive/: + post: + operationId: barcode_po_receive_create + description: |- + Endpoint for handling receiving parts by scanning their barcode. + + Barcode data are decoded by the client application, + and sent to this endpoint (as a JSON object) for validation. + + The barcode should follow a third-party barcode format (e.g. Digikey) + and ideally contain order_number and quantity information. + + The following parameters are available: + + - barcode: The raw barcode data (required) + - purchase_order: The purchase order containing the item to receive (optional) + - location: The destination location for the received item (optional) + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodePOReceive' + description: '' + /api/barcode/so-allocate/: + post: + operationId: barcode_so_allocate_create + description: |- + Endpoint for allocating stock to a sales order, by scanning barcode. + + The scanned barcode should map to a StockItem object. + + Additional fields can be passed to the endpoint: + + - SalesOrder (Required) + - Line Item + - Shipment + - Quantity + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeSOAllocate' + description: '' + /api/barcode/unlink/: + post: + operationId: barcode_unlink_create + description: Endpoint for unlinking / unassigning a custom barcode from a database + object. + tags: + - barcode + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + multipart/form-data: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BarcodeUnassign' + description: '' + /api/bom/: + get: + operationId: bom_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allow_variants + schema: + type: boolean + - in: query + name: available_stock + schema: + type: boolean + description: Has available stock + - in: query + name: can_build + schema: + type: boolean + default: true + - in: query + name: category + schema: + type: integer + - in: query + name: consumable + schema: + type: boolean + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: inherited + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: on_order + schema: + type: boolean + description: On order + - in: query + name: optional + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - can_build + - -can_build + - category + - -category + - quantity + - -quantity + - setup_quantity + - -setup_quantity + - attrition + - -attrition + - rounding_multiple + - -rounding_multiple + - sub_part + - -sub_part + - IPN + - -IPN + - available_stock + - -available_stock + - allow_variants + - -allow_variants + - inherited + - -inherited + - optional + - -optional + - consumable + - -consumable + - reference + - -reference + - validated + - -validated + - pricing_min + - -pricing_min + - pricing_max + - -pricing_max + - pricing_min_total + - -pricing_min_total + - pricing_max_total + - -pricing_max_total + - pricing_updated + - -pricing_updated + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Assembly part is active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: part_locked + schema: + type: boolean + description: Assembly part is locked + - in: query + name: part_testable + schema: + type: boolean + description: Assembly part is testable + - in: query + name: part_trackable + schema: + type: boolean + description: Assembly part is trackable + - in: query + name: pricing + schema: + type: boolean + default: false + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__IPN, part__description, + part__keywords, part__name, part__revision, reference, sub_part__IPN, sub_part__category__name, + sub_part__description, sub_part__keywords, sub_part__name, sub_part__revision.' + schema: + type: string + - in: query + name: sub_part_active + schema: + type: boolean + description: Component part is active + - in: query + name: sub_part_assembly + schema: + type: boolean + description: Component part is an assembly + - in: query + name: sub_part_detail + schema: + type: boolean + default: false + - in: query + name: sub_part_testable + schema: + type: boolean + description: Component part is testable + - in: query + name: sub_part_trackable + schema: + type: boolean + description: Component part is trackable + - in: query + name: sub_part_virtual + schema: + type: boolean + description: Component part is virtual + - in: query + name: substitutes + schema: + type: boolean + default: false + - in: query + name: uses + schema: + type: integer + - in: query + name: validated + schema: + type: boolean + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBomItemList' + description: '' + post: + operationId: bom_create + description: |- + API endpoint for accessing a list of BomItem objects. + + - GET: Return list of BomItem objects + - POST: Create a new BomItem object + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:bom + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + put: + operationId: bom_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + patch: + operationId: bom_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + delete: + operationId: bom_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/bom/{id}/: + get: + operationId: bom_retrieve + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: query + name: can_build + schema: + type: boolean + default: true + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: pricing + schema: + type: boolean + default: false + - in: query + name: sub_part_detail + schema: + type: boolean + default: false + - in: query + name: substitutes + schema: + type: boolean + default: false + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + put: + operationId: bom_update + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + patch: + operationId: bom_partial_update + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItem' + description: '' + delete: + operationId: bom_destroy + description: API endpoint for detail view of a single BomItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + /api/bom/{id}/validate/: + put: + operationId: bom_validate_update + description: API endpoint for validating a BomItem. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemValidation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemValidation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + description: '' + patch: + operationId: bom_validate_partial_update + description: API endpoint for validating a BomItem. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItemValidation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemValidation' + description: '' + /api/bom/substitute/: + get: + operationId: bom_substitute_list + description: API endpoint for accessing a list of BomItemSubstitute objects. + parameters: + - in: query + name: bom_item + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBomItemSubstituteList' + description: '' + post: + operationId: bom_substitute_create + description: API endpoint for accessing a list of BomItemSubstitute objects. + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:bom + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + /api/bom/substitute/{id}/: + get: + operationId: bom_substitute_retrieve + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:bom + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + put: + operationId: bom_substitute_update + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + patch: + operationId: bom_substitute_partial_update + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBomItemSubstitute' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:bom + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BomItemSubstitute' + description: '' + delete: + operationId: bom_substitute_destroy + description: API endpoint for detail view of a single BomItemSubstitute object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - bom + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:bom + - r:delete:build + responses: + '204': + description: No response body + /api/build/: + get: + operationId: build_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: active + schema: + type: boolean + description: Build is active + - in: query + name: ancestor + schema: + type: integer + description: Ancestor Build + - in: query + name: assigned_to + schema: + type: integer + description: Assigned To + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: category + schema: + type: integer + description: Category + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed after + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed before + - in: query + name: created_after + schema: + type: string + format: date + description: Created after + - in: query + name: created_before + schema: + type: string + format: date + description: Created before + - in: query + name: exclude_tree + schema: + type: integer + description: Exclude Tree + - in: query + name: external + schema: + type: boolean + - in: query + name: has_project_code + schema: + type: boolean + description: has_project_code + - in: query + name: has_start_date + schema: + type: boolean + description: Has start date + - in: query + name: has_target_date + schema: + type: boolean + description: Has target date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: issued_by + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - reference + - -reference + - part + - -part + - IPN + - -IPN + - part__name + - -part__name + - status + - -status + - creation_date + - -creation_date + - start_date + - -start_date + - target_date + - -target_date + - completion_date + - -completion_date + - quantity + - -quantity + - completed + - -completed + - issued_by + - -issued_by + - responsible + - -responsible + - project_code + - -project_code + - priority + - -priority + - level + - -level + - external + - -external + - in: query + name: outstanding + schema: + type: boolean + description: Build is outstanding + - in: query + name: overdue + schema: + type: boolean + description: Build is overdue + - in: query + name: parent + schema: + type: integer + description: Parent Build + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: project_code + schema: + type: integer + - in: query + name: reference + schema: + type: string + description: Filter by exact reference + - in: query + name: sales_order + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__IPN, part__description, + part__name, priority, project_code__code, reference, title.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start date after + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start date before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target date after + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target date before + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildList' + description: '' + post: + operationId: build_create + description: |- + API endpoint for accessing a list of Build objects. + + - GET: Return list of objects (with filters) + - POST: Create a new Build object + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Build' + multipart/form-data: + schema: + $ref: '#/components/schemas/Build' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + /api/build/{id}/: + get: + operationId: build_retrieve + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + put: + operationId: build_update + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Build' + multipart/form-data: + schema: + $ref: '#/components/schemas/Build' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + patch: + operationId: build_partial_update + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuild' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuild' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuild' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + description: '' + delete: + operationId: build_destroy + description: API endpoint for detail view of a Build object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/{id}/allocate/: + post: + operationId: build_allocate_create + description: |- + API endpoint to allocate stock items to a build order. + + - The BuildOrder object is specified by the URL + - Items to allocate are specified as a list called "items" with the following options: + - bom_item: pk value of a given BomItem object (must match the part associated with this build) + - stock_item: pk value of a given StockItem object + - quantity: quantity to allocate + - output: StockItem (build order output) to allocate stock against (optional) + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAllocation' + description: '' + /api/build/{id}/auto-allocate/: + post: + operationId: build_auto_allocate_create + description: |- + Override the POST method to handle auto allocation task. + + As this is offloaded to the background task, + we return information about the background task which is performing the auto allocation operation. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildAutoAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/cancel/: + post: + operationId: build_cancel_create + description: API endpoint for cancelling a BuildOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildCancel' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildCancel' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildCancel' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildCancel' + description: '' + /api/build/{id}/complete/: + post: + operationId: build_complete_create + description: Override POST to offload build output completion to the background + worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputComplete' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/consume/: + post: + operationId: build_consume_create + description: |- + Override the POST method to handle consume task. + + As this is offloaded to the background task, + we return information about the background task which is performing the consume operation. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildConsume' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildConsume' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildConsume' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/create-output/: + post: + operationId: build_create_output_create + description: API endpoint for creating new build output(s). + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/build/{id}/delete-outputs/: + post: + operationId: build_delete_outputs_create + description: Override POST to offload build output deletion to the background + worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputDelete' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/finish/: + post: + operationId: build_finish_create + description: API endpoint for marking a build as finished (completed). + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildComplete' + description: '' + /api/build/{id}/hold/: + post: + operationId: build_hold_create + description: API endpoint for placing a BuildOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/build/{id}/issue/: + post: + operationId: build_issue_create + description: API endpoint for issuing a BuildOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/build/{id}/scrap-outputs/: + post: + operationId: build_scrap_outputs_create + description: Override POST to offload scrapping to the background worker. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildOutputScrap' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/build/{id}/unallocate/: + post: + operationId: build_unallocate_create + description: |- + API endpoint for unallocating stock items from a build order. + + - The BuildOrder object is specified by the URL + - "output" (StockItem) can optionally be specified + - "bom_item" can optionally be specified + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildUnallocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildUnallocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildUnallocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildUnallocation' + description: '' + /api/build/item/: + get: + operationId: build_item_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: build + schema: + type: integer + description: Build Order + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: query + name: build_line + schema: + type: integer + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: install_into + schema: + type: integer + - in: query + name: install_into_detail + schema: + type: boolean + default: false + description: Include detailed information about the build output for this + build item. + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the location of the allocated + stock item. + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - sku + - -sku + - quantity + - -quantity + - location + - -location + - reference + - -reference + - IPN + - -IPN + - in: query + name: output + schema: + type: integer + description: Filter by output stock item ID. Use 'null' to find uninstalled + build items. + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the part associated with this + build item. + - name: search + required: false + in: query + description: 'A search term. Searched fields: build_line__bom_item__reference, + stock_item__part__IPN, stock_item__part__name, stock_item__supplier_part__SKU.' + schema: + type: string + - in: query + name: stock_detail + schema: + type: boolean + default: false + description: Include detailed information about the allocated stock item. + - in: query + name: stock_item + schema: + type: integer + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier part associated + with this build item. + - in: query + name: tracked + schema: + type: boolean + description: Tracked + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildItemList' + description: '' + post: + operationId: build_item_create + description: |- + API endpoint for accessing a list of BuildItem objects. + + - GET: Return list of objects + - POST: Create a new BuildItem object + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + delete: + operationId: build_item_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/build/item/{id}/: + get: + operationId: build_item_retrieve + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + put: + operationId: build_item_update + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + patch: + operationId: build_item_partial_update + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuildItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildItem' + description: '' + delete: + operationId: build_item_destroy + description: API endpoint for detail view of a BuildItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/line/: + get: + operationId: build_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: allocations + schema: + type: boolean + default: false + description: Include allocation details showing which stock items are allocated + to this build line. + - in: query + name: assembly + schema: + type: boolean + description: Assembly + - in: query + name: assembly_detail + schema: + type: boolean + default: false + description: Include brief details of the assembly (parent part) related to + the BOM item in this build line. + - in: query + name: available + schema: + type: boolean + description: Available + - in: query + name: bom_item + schema: + type: integer + - in: query + name: bom_item_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - in: query + name: build + schema: + type: integer + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: query + name: consumable + schema: + type: boolean + description: Consumable + - in: query + name: consumed + schema: + type: boolean + description: Consumed + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: on_order + schema: + type: boolean + description: On Order + - in: query + name: optional + schema: + type: boolean + description: Optional + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - allocated + - -allocated + - category + - -category + - consumed + - -consumed + - reference + - -reference + - quantity + - -quantity + - consumable + - -consumable + - optional + - -optional + - unit_quantity + - -unit_quantity + - available_stock + - -available_stock + - trackable + - -trackable + - allow_variants + - -allow_variants + - inherited + - -inherited + - on_order + - -on_order + - scheduled_to_build + - -scheduled_to_build + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the specific part being built + or consumed in this build line. + - name: search + required: false + in: query + description: 'A search term. Searched fields: bom_item__reference, bom_item__sub_part__IPN, + bom_item__sub_part__description, bom_item__sub_part__name.' + schema: + type: string + - in: query + name: testable + schema: + type: boolean + description: Testable + - in: query + name: tracked + schema: + type: boolean + description: Tracked + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBuildLineList' + description: '' + post: + operationId: build_line_create + description: API endpoint for accessing a list of BuildLine objects. + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + /api/build/line/{id}/: + get: + operationId: build_line_retrieve + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: query + name: allocations + schema: + type: boolean + default: false + description: Include allocation details showing which stock items are allocated + to this build line. + - in: query + name: assembly_detail + schema: + type: boolean + default: false + description: Include brief details of the assembly (parent part) related to + the BOM item in this build line. + - in: query + name: bom_item_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - in: query + name: build_detail + schema: + type: boolean + default: false + description: Include detailed information about the associated build order. + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the specific part being built + or consumed in this build line. + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + put: + operationId: build_line_update + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/BuildLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + patch: + operationId: build_line_partial_update + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedBuildLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BuildLine' + description: '' + delete: + operationId: build_line_destroy + description: API endpoint for detail view of a BuildLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + responses: + '204': + description: No response body + /api/build/status/: + get: + operationId: build_status_retrieve + description: Retrieve information about a specific status code + tags: + - build + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/company/: + get: + operationId: company_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: is_customer + schema: + type: boolean + - in: query + name: is_manufacturer + schema: + type: boolean + - in: query + name: is_supplier + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - active + - -active + - name + - -name + - parts_supplied + - -parts_supplied + - parts_manufactured + - -parts_manufactured + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, tax_id, website.' + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCompanyList' + description: '' + post: + operationId: company_create + description: |- + API endpoint for accessing a list of Company objects. + + Provides two methods: + + - GET: Return list of objects + - POST: Create a new Company object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Company' + multipart/form-data: + schema: + $ref: '#/components/schemas/Company' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + /api/company/{id}/: + get: + operationId: company_retrieve + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + put: + operationId: company_update + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Company' + multipart/form-data: + schema: + $ref: '#/components/schemas/Company' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + patch: + operationId: company_partial_update + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCompany' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCompany' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCompany' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + delete: + operationId: company_destroy + description: API endpoint for detail of a single Company object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/address/: + get: + operationId: company_address_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: company + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - title + - -title + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAddressList' + description: '' + post: + operationId: company_address_create + description: API endpoint for list view of Address model. + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Address' + multipart/form-data: + schema: + $ref: '#/components/schemas/Address' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + delete: + operationId: company_address_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/address/{id}/: + get: + operationId: company_address_retrieve + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + put: + operationId: company_address_update + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Address' + multipart/form-data: + schema: + $ref: '#/components/schemas/Address' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + patch: + operationId: company_address_partial_update + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedAddress' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAddress' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAddress' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + delete: + operationId: company_address_destroy + description: API endpoint for a single Address object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/contact/: + get: + operationId: company_contact_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: company + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: company__name, name.' + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContactList' + description: '' + post: + operationId: company_contact_create + description: API endpoint for list view of Company model. + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Contact' + multipart/form-data: + schema: + $ref: '#/components/schemas/Contact' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + - r:add:sales_order + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + delete: + operationId: company_contact_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/contact/{id}/: + get: + operationId: company_contact_retrieve + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + put: + operationId: company_contact_update + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Contact' + multipart/form-data: + schema: + $ref: '#/components/schemas/Contact' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + patch: + operationId: company_contact_partial_update + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedContact' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedContact' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedContact' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + delete: + operationId: company_contact_destroy + description: Detail endpoint for Company model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + - r:delete:sales_order + - r:delete:return_order + responses: + '204': + description: No response body + /api/company/part/: + get: + operationId: company_part_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: MPN + schema: + type: string + description: Manufacturer Part Number + - in: query + name: SKU + schema: + type: string + - in: query + name: active + schema: + type: boolean + description: Supplier Part is Active + - in: query + name: company + schema: + type: integer + description: Company + - in: query + name: has_stock + schema: + type: boolean + description: Has Stock + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: manufacturer + schema: + type: integer + description: Manufacturer + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - in: query + name: manufacturer_part + schema: + type: integer + - in: query + name: manufacturer_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked ManufacturerPart + in the response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - supplier + - -supplier + - manufacturer + - -manufacturer + - active + - -active + - primary + - -primary + - IPN + - -IPN + - MPN + - -MPN + - SKU + - -SKU + - packaging + - -packaging + - pack_quantity + - -pack_quantity + - in_stock + - -in_stock + - updated + - -updated + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Internal Part is Active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - in: query + name: primary + schema: + type: boolean + description: Primary Supplier Part + - name: search + required: false + in: query + description: 'A search term. Searched fields: SKU, description, manufacturer_part__MPN, + manufacturer_part__manufacturer__name, part__IPN, part__description, part__keywords, + part__name, supplier__name, tags__name, tags__slug.' + schema: + type: string + - in: query + name: supplier + schema: + type: integer + - in: query + name: supplier_active + schema: + type: boolean + description: Supplier is Active + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSupplierPartList' + description: '' + post: + operationId: company_part_create + description: |- + API endpoint for list view of SupplierPart object. + + - GET: Return list of SupplierPart objects + - POST: Create a new SupplierPart object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + delete: + operationId: company_part_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/part/{id}/: + get: + operationId: company_part_retrieve + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - in: query + name: manufacturer_part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked ManufacturerPart + in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + put: + operationId: company_part_update + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + patch: + operationId: company_part_partial_update + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSupplierPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPart' + description: '' + delete: + operationId: company_part_destroy + description: |- + API endpoint for detail view of SupplierPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/company/part/manufacturer/: + get: + operationId: company_part_manufacturer_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: MPN + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: manufacturer + schema: + type: integer + - in: query + name: manufacturer_active + schema: + type: boolean + description: Manufacturer is Active + - in: query + name: manufacturer_detail + schema: + type: boolean + default: false + description: Include detailed information about the Manufacturer in the response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - MPN + - -MPN + - manufacturer + - -manufacturer + - in: query + name: part + schema: + type: integer + - in: query + name: part_active + schema: + type: boolean + description: Part is Active + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: pretty + schema: + type: boolean + default: false + description: Format the output with a more readable (pretty) name + - name: search + required: false + in: query + description: 'A search term. Searched fields: MPN, description, manufacturer__name, + part__IPN, part__description, part__name, tags__name, tags__slug.' + schema: + type: string + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManufacturerPartList' + description: '' + post: + operationId: company_part_manufacturer_create + description: |- + API endpoint for list view of ManufacturerPart object. + + - GET: Return list of ManufacturerPart objects + - POST: Create a new ManufacturerPart object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManufacturerPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + delete: + operationId: company_part_manufacturer_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/company/part/manufacturer/{id}/: + get: + operationId: company_part_manufacturer_retrieve + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + put: + operationId: company_part_manufacturer_update + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManufacturerPart' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + patch: + operationId: company_part_manufacturer_partial_update + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManufacturerPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManufacturerPart' + description: '' + delete: + operationId: company_part_manufacturer_destroy + description: |- + API endpoint for detail view of ManufacturerPart object. + + - GET: Retrieve detail view + - PATCH: Update object + - DELETE: Delete object + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/company/price-break/: + get: + operationId: company_price_break_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: base_part + schema: + type: integer + description: Base Part + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - supplier + - -supplier + - SKU + - -SKU + - price + - -price + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the linked Part in the response + - in: query + name: quantity + schema: + type: number + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__SKU, part__supplier__name.' + schema: + type: string + - in: query + name: supplier + schema: + type: integer + description: Supplier + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the Supplier in the response + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSupplierPriceBreakList' + description: '' + post: + operationId: company_price_break_create + description: |- + API endpoint for list view of SupplierPriceBreak object. + + - GET: Retrieve list of SupplierPriceBreak objects + - POST: Create a new SupplierPriceBreak object + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + /api/company/price-break/{id}/: + get: + operationId: company_price_break_retrieve + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + put: + operationId: company_price_break_update + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + patch: + operationId: company_price_break_partial_update + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSupplierPriceBreak' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SupplierPriceBreak' + description: '' + delete: + operationId: company_price_break_destroy + description: Detail endpoint for SupplierPriceBreak object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - company + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/contenttype/: + get: + operationId: contenttype_list + description: List view for ContentTypes. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: app_label, model.' + schema: + type: string + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContentTypeList' + description: '' + /api/contenttype/{id}/: + get: + operationId: contenttype_retrieve + description: Detail view for a ContentType model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ContentType' + description: '' + /api/contenttype/model/{model}/: + get: + operationId: contenttype_retrieve_model + description: Detail view for a ContentType model. + parameters: + - in: path + name: model + schema: + type: string + required: true + tags: + - contenttype + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ContentType' + description: '' + /api/currency/exchange/: + get: + operationId: currency_exchange_retrieve + description: Return information on available currency conversions. + tags: + - currency + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CurrencyExchange' + description: '' + /api/currency/refresh/: + post: + operationId: currency_refresh_create + description: Performing a POST request will update currency exchange rates. + tags: + - currency + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + description: No response body + /api/data-output/: + get: + operationId: data_output_list + description: Mixin class for DataOutput endpoints. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - user + - -user + - plugin + - -plugin + - output_type + - -output_type + - created + - -created + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataOutputList' + description: '' + delete: + operationId: data_output_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/data-output/{id}/: + get: + operationId: data_output_retrieve + description: Mixin class for DataOutput endpoints. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this data output. + required: true + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataOutput' + description: '' + delete: + operationId: data_output_destroy + description: Mixin class for DataOutput endpoints. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this data output. + required: true + tags: + - data-output + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/email/generate/: + post: + operationId: email_generate_create + description: Get the token for the current user or fail. + tags: + - email + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + multipart/form-data: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetSimpleLogin' + description: '' + /api/error-report/: + get: + operationId: error_report_list + description: List view for server error messages. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - when + - -when + - info + - -info + - name: search + required: false + in: query + description: 'A search term. Searched fields: data, info.' + schema: + type: string + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedErrorMessageList' + description: '' + delete: + operationId: error_report_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/error-report/{id}/: + get: + operationId: error_report_retrieve + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + put: + operationId: error_report_update + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ErrorMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/ErrorMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + patch: + operationId: error_report_partial_update + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedErrorMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: '' + delete: + operationId: error_report_destroy + description: List view for server error messages. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Error. + required: true + tags: + - error-report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/flags/: + get: + operationId: flags_list + description: List view for feature flags. + tags: + - flags + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Flag' + description: '' + /api/flags/{key}/: + get: + operationId: flags_retrieve + description: Detail view for an individual feature flag. + parameters: + - in: path + name: key + schema: + type: string + required: true + tags: + - flags + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Flag' + description: '' + /api/generate/batch-code/: + post: + operationId: generate_batch_code_create + description: Generate a new batch code. + tags: + - generate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateBatchCode' + description: '' + /api/generate/serial-number/: + post: + operationId: generate_serial_number_create + description: Generate a new serial number. + tags: + - generate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateSerialNumber' + description: '' + /api/generic/status/: + get: + operationId: generic_status_retrieve_all + description: Perform a GET request to learn information about status codes. + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: object + additionalProperties: {} + description: Mapping from class name to GenericStateClass data + /api/generic/status/{statusmodel}/: + get: + operationId: generic_status_retrieve + description: Retrieve information about a specific status code + parameters: + - in: path + name: statusmodel + schema: + type: string + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/generic/status/custom/: + get: + operationId: generic_status_custom_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - key + - -key + - in: query + name: reference_status + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, label, name, reference_status.' + schema: + type: string + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomStateList' + description: '' + post: + operationId: generic_status_custom_create + description: List view for all custom states. + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomState' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + /api/generic/status/custom/{id}/: + get: + operationId: generic_status_custom_retrieve + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + put: + operationId: generic_status_custom_update + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomState' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + patch: + operationId: generic_status_custom_partial_update + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomState' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomState' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomState' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomState' + description: '' + delete: + operationId: generic_status_custom_destroy + description: Detail view for a particular custom states. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - generic + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/icons/: + get: + operationId: icons_list + description: List view for available icon packages. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - icons + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIconPackageList' + description: '' + /api/importer/column-mapping/: + get: + operationId: importer_column_mapping_list + description: API endpoint for accessing a list of DataImportColumnMap objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: session + schema: + type: integer + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportColumnMapList' + description: '' + /api/importer/column-mapping/{id}/: + get: + operationId: importer_column_mapping_retrieve + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + put: + operationId: importer_column_mapping_update + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + patch: + operationId: importer_column_mapping_partial_update + description: Detail endpoint for a single DataImportColumnMap object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportColumnMap' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportColumnMap' + description: '' + /api/importer/models/: + get: + operationId: importer_models_list + description: Return a list of models available for import. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DataImporterModel' + description: '' + /api/importer/row/: + get: + operationId: importer_row_list + description: API endpoint for accessing a list of DataImportRow objects. + parameters: + - in: query + name: complete + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - row_index + - -row_index + - valid + - -valid + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: session + schema: + type: integer + - in: query + name: valid + schema: + type: boolean + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportRowList' + description: '' + delete: + operationId: importer_row_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/importer/row/{id}/: + get: + operationId: importer_row_retrieve + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + put: + operationId: importer_row_update + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportRow' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + patch: + operationId: importer_row_partial_update + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportRow' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportRow' + description: '' + delete: + operationId: importer_row_destroy + description: Detail endpoint for a single DataImportRow object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/importer/session/: + get: + operationId: importer_session_list + description: API endpoint for accessing a list of DataImportSession objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - timestamp + - -timestamp + - status + - -status + - model_type + - -model_type + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: status + schema: + type: integer + enum: + - 0 + - 10 + - 20 + - 30 + - 40 + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + - in: query + name: user + schema: + type: integer + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDataImportSessionList' + description: '' + post: + operationId: importer_session_create + description: API endpoint for accessing a list of DataImportSession objects. + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportSession' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + delete: + operationId: importer_session_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/importer/session/{id}/: + get: + operationId: importer_session_retrieve + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + put: + operationId: importer_session_update + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportSession' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + patch: + operationId: importer_session_partial_update + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedDataImportSession' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + delete: + operationId: importer_session_destroy + description: Detail endpoint for a single DataImportSession object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '204': + description: No response body + /api/importer/session/{id}/accept_fields/: + post: + operationId: importer_session_accept_fields_create + description: Accept the field mapping for a DataImportSession. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportSession' + description: '' + /api/importer/session/{id}/accept_rows/: + post: + operationId: importer_session_accept_rows_create + description: API endpoint to accept the rows for a DataImportSession. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - importer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/DataImportAcceptRow' + description: '' + /api/label/print/: + post: + operationId: label_print_create + description: POST action for printing labels. + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelPrint' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelPrint' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelPrint' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelPrint' + description: '' + /api/label/template/: + get: + operationId: label_template_list + description: API endpoint for viewing list of LabelTemplate objects. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: items + schema: + type: string + description: Items + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + enum: + - build + - buildline + - company + - part + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - stockitem + - stocklocation + - transferorder + description: |- + Model Type + + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLabelTemplateList' + description: '' + post: + operationId: label_template_create + description: API endpoint for viewing list of LabelTemplate objects. + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + /api/label/template/{id}/: + get: + operationId: label_template_retrieve + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + put: + operationId: label_template_update + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/LabelTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + patch: + operationId: label_template_partial_update + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLabelTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LabelTemplate' + description: '' + delete: + operationId: label_template_destroy + description: Detail API endpoint for label template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - label + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/license/: + get: + operationId: license_retrieve + description: Return information about the InvenTree server. + tags: + - license + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseView' + description: '' + /api/locate/: + post: + operationId: locate_create + description: Identify or 'locate' a stock item or location with a plugin. + tags: + - locate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LocatePlugin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LocatePlugin' + multipart/form-data: + schema: + $ref: '#/components/schemas/LocatePlugin' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LocatePlugin' + description: '' + /api/machine/: + get: + operationId: machine_list + description: |- + API endpoint for list of Machine objects. + + - GET: Return a list of all Machine objects + - POST: create a MachineConfig + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: driver + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: machine_type + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - machine_type + - -machine_type + - driver + - -driver + - active + - -active + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMachineConfigList' + description: '' + post: + operationId: machine_create + description: |- + API endpoint for list of Machine objects. + + - GET: Return a list of all Machine objects + - POST: create a MachineConfig + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:admin + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfigCreate' + description: '' + /api/machine/{id}/: + get: + operationId: machine_retrieve + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + put: + operationId: machine_update + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineConfig' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineConfig' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + patch: + operationId: machine_partial_update + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMachineConfig' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineConfig' + description: '' + delete: + operationId: machine_destroy + description: |- + API detail endpoint for MachineConfig object. + + - GET: return a single MachineConfig + - PUT: update a MachineConfig + - PATCH: partial update a MachineConfig + - DELETE: delete a MachineConfig + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:admin + responses: + '204': + description: No response body + /api/machine/{id}/restart/: + post: + operationId: machine_restart_create + description: Restart machine by pk. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineRestart' + description: '' + /api/machine/{id}/settings/: + get: + operationId: machine_settings_list + description: Return all settings for a machine config. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineSetting' + description: '' + /api/machine/{id}/settings/{config_type}/{key}/: + get: + operationId: machine_settings_retrieve + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + put: + operationId: machine_settings_update + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MachineSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/MachineSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + patch: + operationId: machine_settings_partial_update + description: |- + Detail endpoint for a machine-specific setting. + + - GET: Get machine setting detail + - PUT: Update machine setting + - PATCH: Update machine setting + + (Note that these cannot be created or deleted via API) + parameters: + - in: path + name: config_type + schema: + type: string + pattern: ^M|D$ + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - machine + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMachineSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineSetting' + description: '' + /api/machine/drivers/: + get: + operationId: machine_drivers_list + description: List all machine drivers. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineDriver' + description: '' + /api/machine/status/: + get: + operationId: machine_status_retrieve + description: Provide status data for the machine registry. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MachineRegistryStatus' + description: '' + /api/machine/types/: + get: + operationId: machine_types_list + description: List of all machine types. + tags: + - machine + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MachineType' + description: '' + /api/metadata/{model}/{lookup_field}/{lookup_value}/: + get: + operationId: metadata_retrieve + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + - r:view:part_category + - r:view:part + - r:view:stock_location + - r:view:stock + - r:view:bom + - r:view:build + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + - r:view:transfer_order + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + put: + operationId: metadata_update + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Metadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/Metadata' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + patch: + operationId: metadata_partial_update + description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ + for more detail on how metadata works. Most core models support metadata. + parameters: + - in: path + name: lookup_field + schema: + type: string + required: true + - in: path + name: lookup_value + schema: + type: string + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMetadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMetadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMetadata' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + /api/metadata/{model}/{id}/: + get: + operationId: metadata_pk_retrieve + description: Perform a GET request to retrieve metadata for the given object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + - r:view:part_category + - r:view:part + - r:view:stock_location + - r:view:stock + - r:view:bom + - r:view:build + - r:view:purchase_order + - r:view:sales_order + - r:view:return_order + - r:view:transfer_order + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + put: + operationId: metadata_pk_update + description: Perform a PUT request to update metadata for the given object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Metadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/Metadata' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + patch: + operationId: metadata_pk_partial_update + description: Perform a PATCH request to partially update metadata for the given + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: path + name: model + schema: + type: string + required: true + tags: + - metadata + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMetadata' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMetadata' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMetadata' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:admin + - r:change:part_category + - r:change:part + - r:change:stock_location + - r:change:stock + - r:change:bom + - r:change:build + - r:change:purchase_order + - r:change:sales_order + - r:change:return_order + - r:change:transfer_order + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + description: '' + /api/news/: + get: + operationId: news_list + description: Newsfeed from the official inventree.org website. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - published + - -published + - author + - -author + - read + - -read + - in: query + name: read + schema: + type: boolean + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNewsFeedEntryList' + description: '' + delete: + operationId: news_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/news/{id}/: + get: + operationId: news_retrieve + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + put: + operationId: news_update + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + patch: + operationId: news_partial_update + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedNewsFeedEntry' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NewsFeedEntry' + description: '' + delete: + operationId: news_destroy + description: Newsfeed from the official inventree.org website. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this news feed entry. + required: true + tags: + - news + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/notes-image-upload/: + get: + operationId: notes_image_upload_list + description: List view for all notes images. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: 'A search term. Searched fields: model_id, model_type, user.' + schema: + type: string + tags: + - notes-image-upload + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNotesImageList' + description: '' + post: + operationId: notes_image_upload_create + description: List view for all notes images. + tags: + - notes-image-upload + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotesImage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotesImage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotesImage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/NotesImage' + description: '' + /api/notifications/: + get: + operationId: notifications_list + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: query + name: category + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - category + - -category + - name + - -name + - read + - -read + - creation + - -creation + - in: query + name: read + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: message, name.' + schema: + type: string + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNotificationMessageList' + description: '' + delete: + operationId: notifications_bulk_destroy + description: |- + Perform a bulk delete operation. + + Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. + + This action is performed attomically, so either all items will be deleted, or none will be deleted. + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/notifications/{id}/: + get: + operationId: notifications_retrieve + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + put: + operationId: notifications_update + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotificationMessage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + patch: + operationId: notifications_partial_update + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedNotificationMessage' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + delete: + operationId: notifications_destroy + description: |- + Notifications for the current user. + + - User can only view / delete their own notification objects + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this notification message. + required: true + tags: + - notifications + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/notifications/readall/: + post: + operationId: notifications_readall_create + description: Set all messages for the current user as read. + tags: + - notifications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NotificationMessage' + multipart/form-data: + schema: + $ref: '#/components/schemas/NotificationMessage' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationMessage' + description: '' + /api/order/po/: + get: + operationId: order_po_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: external_build + schema: + type: integer + description: External Build Order + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - supplier__name + - -supplier__name + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - line_items + - -line_items + - status + - -status + - responsible + - -responsible + - total_price + - -total_price + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, project_code__code, + reference, supplier__name, supplier_reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: supplier + schema: + type: integer + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier in the response + - in: query + name: supplier_part + schema: + type: integer + description: Supplier Part + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderList' + description: '' + post: + operationId: order_po_create + description: |- + API endpoint for accessing a list of PurchaseOrder objects. + + - GET: Return list of PurchaseOrder objects (with filters) + - POST: Create a new PurchaseOrder object + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + /api/order/po-extra-line/: + get: + operationId: order_po_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderExtraLineList' + description: '' + post: + operationId: order_po_extra_line_create + description: API endpoint for accessing a list of PurchaseOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + /api/order/po-extra-line/{id}/: + get: + operationId: order_po_extra_line_retrieve + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + put: + operationId: order_po_extra_line_update + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + patch: + operationId: order_po_extra_line_partial_update + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + description: '' + delete: + operationId: order_po_extra_line_destroy + description: API endpoint for detail view of a PurchaseOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po-line/: + get: + operationId: order_po_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: base_part + schema: + type: integer + description: Internal Part + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - MPN + - -MPN + - part_name + - -part_name + - purchase_price + - -purchase_price + - quantity + - -quantity + - received + - -received + - reference + - -reference + - SKU + - -SKU + - IPN + - -IPN + - total_price + - -total_price + - target_date + - -target_date + - order + - -order + - status + - -status + - complete_date + - -complete_date + - line + - -line + - in: query + name: part + schema: + type: integer + description: Supplier Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: pending + schema: + type: boolean + description: Order Pending + - in: query + name: received + schema: + type: boolean + description: Items Received + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__SKU, part__manufacturer_part__MPN, + part__part__description, part__part__name, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderLineItemList' + description: '' + post: + operationId: order_po_line_create + description: |- + API endpoint for accessing a list of PurchaseOrderLineItem objects. + + - GET: Return a list of PurchaseOrder Line Item objects + - POST: Create a new PurchaseOrderLineItem object + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:purchase_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + delete: + operationId: order_po_line_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/order/po-line/{id}/: + get: + operationId: order_po_line_retrieve + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + put: + operationId: order_po_line_update + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + patch: + operationId: order_po_line_partial_update + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderLineItem' + description: '' + delete: + operationId: order_po_line_destroy + description: Detail API endpoint for PurchaseOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po/{id}/: + get: + operationId: order_po_retrieve + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: supplier_detail + schema: + type: boolean + default: false + description: Include detailed information about the supplier in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + put: + operationId: order_po_update + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + patch: + operationId: order_po_partial_update + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPurchaseOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:purchase_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + delete: + operationId: order_po_destroy + description: API endpoint for detail view of a PurchaseOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:purchase_order + responses: + '204': + description: No response body + /api/order/po/{id}/cancel/: + post: + operationId: order_po_cancel_create + description: |- + API endpoint to 'cancel' a purchase order. + + The purchase order must be in a state which can be cancelled + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/complete/: + post: + operationId: order_po_complete_create + description: API endpoint to 'complete' a purchase order. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderComplete' + description: '' + /api/order/po/{id}/hold/: + post: + operationId: order_po_hold_create + description: API endpoint to place a PurchaseOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/issue/: + post: + operationId: order_po_issue_create + description: API endpoint to 'issue' (place) a PurchaseOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/po/{id}/receive/: + post: + operationId: order_po_receive_create + description: |- + API endpoint to receive stock items against a PurchaseOrder. + + - The purchase order is specified in the URL. + - Items to receive are specified as a list called "items" with the following options: + - line_item: pk of the PO Line item + - supplier_part: pk value of the supplier part + - quantity: quantity to receive + - status: stock item status + - expiry_date: stock item expiry date (optional) + - location: destination for stock item (optional) + - batch_code: the batch code for this stock item + - serial_numbers: serial numbers for this stock item + - A global location must also be specified. This is used when no locations are specified for items, and no location is given in the PO line item + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/order/po/status/: + get: + operationId: order_po_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/repair/: + get: + operationId: order_repair_list + description: API endpoint for accessing a list of RepairOrder objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderList' + description: '' + post: + operationId: order_repair_create + description: API endpoint for accessing a list of RepairOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + /api/order/repair-allocation/: + get: + operationId: order_repair_allocation_list + description: API endpoint for accessing a list of RepairOrderAllocation objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderAllocationList' + description: '' + post: + operationId: order_repair_allocation_create + description: API endpoint for accessing a list of RepairOrderAllocation objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + /api/order/repair-allocation/{id}/: + get: + operationId: order_repair_allocation_retrieve + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + put: + operationId: order_repair_allocation_update + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + patch: + operationId: order_repair_allocation_partial_update + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderAllocation' + description: '' + delete: + operationId: order_repair_allocation_destroy + description: API endpoint for detail view of a single RepairOrderAllocation + object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/repair-line/: + get: + operationId: order_repair_line_list + description: API endpoint for accessing a list of RepairOrderLineItem objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRepairOrderLineItemList' + description: '' + post: + operationId: order_repair_line_create + description: API endpoint for accessing a list of RepairOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:repair_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + /api/order/repair-line/{id}/: + get: + operationId: order_repair_line_retrieve + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + put: + operationId: order_repair_line_update + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + patch: + operationId: order_repair_line_partial_update + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrderLineItem' + description: '' + delete: + operationId: order_repair_line_destroy + description: API endpoint for detail view of a single RepairOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/repair/{id}/: + get: + operationId: order_repair_retrieve + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + put: + operationId: order_repair_update + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/RepairOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + patch: + operationId: order_repair_partial_update + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRepairOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:repair_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RepairOrder' + description: '' + delete: + operationId: order_repair_destroy + description: API endpoint for detail view of a single RepairOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:repair_order + responses: + '204': + description: No response body + /api/order/ro/: + get: + operationId: order_ro_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: customer + schema: + type: integer + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - customer__name + - -customer__name + - customer_reference + - -customer_reference + - line_items + - -line_items + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: customer__name, customer_reference, + description, project_code__code, reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderList' + description: '' + post: + operationId: order_ro_create + description: API endpoint for accessing a list of ReturnOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + /api/order/ro-extra-line/: + get: + operationId: order_ro_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderExtraLineList' + description: '' + post: + operationId: order_ro_extra_line_create + description: API endpoint for accessing a list of ReturnOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + /api/order/ro-extra-line/{id}/: + get: + operationId: order_ro_extra_line_retrieve + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + put: + operationId: order_ro_extra_line_update + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + patch: + operationId: order_ro_extra_line_partial_update + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderExtraLine' + description: '' + delete: + operationId: order_ro_extra_line_destroy + description: API endpoint for detail view of a ReturnOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro-line/: + get: + operationId: order_ro_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: true + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - IPN + - -IPN + - stock + - -stock + - reference + - -reference + - target_date + - -target_date + - received_date + - -received_date + - line + - -line + - in: query + name: outcome + schema: + type: integer + description: outcome + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - in: query + name: received + schema: + type: boolean + description: received + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__part__description, item__part__name, + item__serial, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReturnOrderLineItemList' + description: '' + post: + operationId: order_ro_line_create + description: API endpoint for accessing a list of ReturnOrderLineItemList objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:return_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + /api/order/ro-line/{id}/: + get: + operationId: order_ro_line_retrieve + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: item_detail + schema: + type: boolean + default: true + description: Include detailed information about the item in the response + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + put: + operationId: order_ro_line_update + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + patch: + operationId: order_ro_line_partial_update + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderLineItem' + description: '' + delete: + operationId: order_ro_line_destroy + description: API endpoint for detail view of a ReturnOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro-line/status/: + get: + operationId: order_ro_line_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/ro/{id}/: + get: + operationId: order_ro_retrieve + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + put: + operationId: order_ro_update + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + patch: + operationId: order_ro_partial_update + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReturnOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:return_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrder' + description: '' + delete: + operationId: order_ro_destroy + description: API endpoint for detail view of a single ReturnOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:return_order + responses: + '204': + description: No response body + /api/order/ro/{id}/cancel/: + post: + operationId: order_ro_cancel_create + description: API endpoint to cancel a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/complete/: + post: + operationId: order_ro_complete_create + description: API endpoint to complete a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/hold/: + post: + operationId: order_ro_hold_create + description: API endpoint to hold a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/issue/: + post: + operationId: order_ro_issue_create + description: API endpoint to issue (place) a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/ro/{id}/receive/: + post: + operationId: order_ro_receive_create + description: API endpoint to receive items against a ReturnOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReturnOrderReceive' + description: '' + /api/order/ro/status/: + get: + operationId: order_ro_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/so/: + get: + operationId: order_so_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: customer + schema: + type: integer + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - customer__name + - -customer__name + - customer_reference + - -customer_reference + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - line_items + - -line_items + - shipment_date + - -shipment_date + - total_price + - -total_price + - project_code + - -project_code + - updated_at + - -updated_at + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: customer__name, customer_reference, + description, project_code__code, reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderList' + description: '' + post: + operationId: order_so_create + description: |- + API endpoint for accessing a list of SalesOrder objects. + + - GET: Return list of SalesOrder objects (with filters) + - POST: Create a new SalesOrder + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + /api/order/so-allocation/: + get: + operationId: order_so_allocation_list + description: API endpoint for listing SalesOrderAllocation objects. + parameters: + - in: query + name: assigned_to_shipment + schema: + type: boolean + description: Has Shipment + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: line + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - part + - -part + - serial + - -serial + - IPN + - -IPN + - batch + - -batch + - location + - -location + - order + - -order + - shipment_date + - -shipment_date + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__batch, item__part__IPN, + item__part__name, item__serial.' + schema: + type: string + - in: query + name: shipment + schema: + type: integer + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderAllocationList' + description: '' + put: + operationId: order_so_allocation_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + patch: + operationId: order_so_allocation_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + delete: + operationId: order_so_allocation_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/order/so-allocation/{id}/: + get: + operationId: order_so_allocation_retrieve + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + put: + operationId: order_so_allocation_update + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + patch: + operationId: order_so_allocation_partial_update + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAllocation' + description: '' + delete: + operationId: order_so_allocation_destroy + description: API endpoint for detail view of a SalesOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so-extra-line/: + get: + operationId: order_so_extra_line_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - notes + - -notes + - reference + - -reference + - line + - -line + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, notes, quantity, + reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderExtraLineList' + description: '' + post: + operationId: order_so_extra_line_create + description: API endpoint for accessing a list of SalesOrderExtraLine objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + /api/order/so-extra-line/{id}/: + get: + operationId: order_so_extra_line_retrieve + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + put: + operationId: order_so_extra_line_update + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + patch: + operationId: order_so_extra_line_partial_update + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderExtraLine' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderExtraLine' + description: '' + delete: + operationId: order_so_extra_line_destroy + description: API endpoint for detail view of a SalesOrderExtraLine object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so-line/: + get: + operationId: order_so_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: completed + schema: + type: boolean + description: Completed + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - customer + - -customer + - order + - -order + - part + - -part + - IPN + - -IPN + - part__name + - -part__name + - quantity + - -quantity + - allocated + - -allocated + - shipped + - -shipped + - reference + - -reference + - sale_price + - -sale_price + - target_date + - -target_date + - line + - -line + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__name, quantity, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderLineItemList' + description: '' + post: + operationId: order_so_line_create + description: API endpoint for accessing a list of SalesOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + /api/order/so-line/{id}/: + get: + operationId: order_so_line_retrieve + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + put: + operationId: order_so_line_update + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + patch: + operationId: order_so_line_partial_update + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderLineItem' + description: '' + delete: + operationId: order_so_line_destroy + description: API endpoint for detail view of a SalesOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/{id}/: + get: + operationId: order_so_retrieve + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: query + name: customer_detail + schema: + type: boolean + default: false + description: Include detailed information about the customer in the response + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + put: + operationId: order_so_update + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + patch: + operationId: order_so_partial_update + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrder' + description: '' + delete: + operationId: order_so_destroy + description: API endpoint for detail view of a SalesOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/{id}/allocate/: + post: + operationId: order_so_allocate_create + description: |- + API endpoint to allocate stock items against a SalesOrder. + + - The SalesOrder is specified in the URL + - See the SalesOrderShipmentAllocationSerializer class + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentAllocation' + description: '' + /api/order/so/{id}/allocate-serials/: + post: + operationId: order_so_allocate_serials_create + description: API endpoint to allocation stock items against a SalesOrder, by + specifying serial numbers. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderSerialAllocation' + description: '' + /api/order/so/{id}/auto-allocate/: + post: + operationId: order_so_auto_allocate_create + description: Validate parameters and offload auto-allocation to a background + task. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderAutoAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/order/so/{id}/cancel/: + post: + operationId: order_so_cancel_create + description: API endpoint to cancel a SalesOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/{id}/complete/: + post: + operationId: order_so_complete_create + description: API endpoint for manually marking a SalesOrder as "complete". + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderComplete' + description: '' + /api/order/so/{id}/hold/: + post: + operationId: order_so_hold_create + description: API endpoint to place a SalesOrder on hold. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/{id}/issue/: + post: + operationId: order_so_issue_create + description: API endpoint to issue a SalesOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/so/shipment/: + get: + operationId: order_so_shipment_list + description: API list endpoint for SalesOrderShipment model. + parameters: + - in: query + name: checked + schema: + type: boolean + description: checked + - in: query + name: delivered + schema: + type: boolean + description: delivered + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: number + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - reference + - -reference + - delivery_date + - -delivery_date + - shipment_date + - -shipment_date + - allocated_items + - -allocated_items + - name: search + required: false + in: query + description: 'A search term. Searched fields: invoice_number, order__reference, + reference, tracking_number.' + schema: + type: string + - in: query + name: shipped + schema: + type: boolean + description: shipped + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSalesOrderShipmentList' + description: '' + post: + operationId: order_so_shipment_create + description: API list endpoint for SalesOrderShipment model. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + /api/order/so/shipment/{id}/: + get: + operationId: order_so_shipment_retrieve + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + put: + operationId: order_so_shipment_update + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + patch: + operationId: order_so_shipment_partial_update + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSalesOrderShipment' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipment' + description: '' + delete: + operationId: order_so_shipment_destroy + description: API detail endpoint for SalesOrderShipment model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:sales_order + responses: + '204': + description: No response body + /api/order/so/shipment/{id}/ship/: + post: + operationId: order_so_shipment_ship_create + description: Override the post method to handle shipment completion. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/SalesOrderShipmentComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:sales_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskDetail' + description: '' + /api/order/so/status/: + get: + operationId: order_so_status_retrieve + description: Retrieve information about a specific status code + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/order/transfer-order/: + get: + operationId: order_transfer_order_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: assigned_to + schema: + type: integer + description: Responsible + - in: query + name: assigned_to_me + schema: + type: boolean + description: Assigned to me + - in: query + name: completed_after + schema: + type: string + format: date + description: Completed After + - in: query + name: completed_before + schema: + type: string + format: date + description: Completed Before + - in: query + name: created_after + schema: + type: string + format: date + description: Created After + - in: query + name: created_before + schema: + type: string + format: date + description: Created Before + - in: query + name: created_by + schema: + type: integer + description: Created By + - in: query + name: has_project_code + schema: + type: boolean + description: Has Project Code + - in: query + name: has_start_date + schema: + type: boolean + description: Has Start Date + - in: query + name: has_target_date + schema: + type: boolean + description: Has Target Date + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Max Date + - in: query + name: min_date + schema: + type: string + format: date + description: Min Date + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - creation_date + - -creation_date + - created_by + - -created_by + - reference + - -reference + - line_items + - -line_items + - status + - -status + - start_date + - -start_date + - target_date + - -target_date + - complete_date + - -complete_date + - project_code + - -project_code + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: overdue + schema: + type: boolean + description: overdue + - in: query + name: part + schema: + type: integer + - in: query + name: project_code + schema: + type: integer + description: Project Code + - in: query + name: reference + schema: + type: string + description: Order Reference + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, project_code__code, + reference.' + schema: + type: string + - in: query + name: start_date_after + schema: + type: string + format: date + description: Start Date After + - in: query + name: start_date_before + schema: + type: string + format: date + description: Start Date Before + - in: query + name: status + schema: + type: integer + description: Order Status + - in: query + name: target_date_after + schema: + type: string + format: date + description: Target Date After + - in: query + name: target_date_before + schema: + type: string + format: date + description: Target Date Before + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated After + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated Before + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderList' + description: '' + post: + operationId: order_transfer_order_create + description: API endpoint for accessing a list of TransferOrder objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:transfer_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + /api/order/transfer-order-allocation/: + get: + operationId: order_transfer_order_allocation_list + description: API endpoint for listing TransferOrderAllocation objects. + parameters: + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: line + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Location + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - part + - -part + - serial + - -serial + - IPN + - -IPN + - batch + - -batch + - location + - -location + - order + - -order + - in: query + name: outstanding + schema: + type: boolean + description: Outstanding + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: item__batch, item__part__IPN, + item__part__name, item__serial.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderAllocationList' + description: '' + put: + operationId: order_transfer_order_allocation_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + patch: + operationId: order_transfer_order_allocation_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + /api/order/transfer-order-allocation/{id}/: + get: + operationId: order_transfer_order_allocation_retrieve + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + put: + operationId: order_transfer_order_allocation_update + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + patch: + operationId: order_transfer_order_allocation_partial_update + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderAllocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderAllocation' + description: '' + delete: + operationId: order_transfer_order_allocation_destroy + description: API endpoint for detail view of a TransferOrderAllocation object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order-line/: + get: + operationId: order_transfer_order_line_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: allocated + schema: + type: boolean + description: Allocated + - in: query + name: completed + schema: + type: boolean + description: Completed + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: order + schema: + type: integer + description: Order + - in: query + name: order_complete + schema: + type: boolean + description: Order Complete + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: order_outstanding + schema: + type: boolean + description: Order Outstanding + - in: query + name: order_status + schema: + type: integer + description: Order Status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - order + - -order + - part + - -part + - part__name + - -part__name + - quantity + - -quantity + - allocated + - -allocated + - transferred + - -transferred + - reference + - -reference + - target_date + - -target_date + - in: query + name: part + schema: + type: integer + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + - name: search + required: false + in: query + description: 'A search term. Searched fields: part__name, quantity, reference.' + schema: + type: string + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransferOrderLineItemList' + description: '' + post: + operationId: order_transfer_order_line_create + description: API endpoint for accessing a list of TransferOrderLineItem objects. + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:transfer_order + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + /api/order/transfer-order-line/{id}/: + get: + operationId: order_transfer_order_line_retrieve + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: order_detail + schema: + type: boolean + default: false + description: Include detailed information about the sales order in the response + - in: query + name: part_detail + schema: + type: boolean + default: false + description: Include detailed information about the related part in the response + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + put: + operationId: order_transfer_order_line_update + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + patch: + operationId: order_transfer_order_line_partial_update + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrderLineItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItem' + description: '' + delete: + operationId: order_transfer_order_line_destroy + description: API endpoint for detail view of a TransferOrderLineItem object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order/{id}/: + get: + operationId: order_transfer_order_retrieve + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + put: + operationId: order_transfer_order_update + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrder' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + patch: + operationId: order_transfer_order_partial_update + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTransferOrder' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:transfer_order + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrder' + description: '' + delete: + operationId: order_transfer_order_destroy + description: API endpoint for detail view of a single TransferOrder object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:transfer_order + responses: + '204': + description: No response body + /api/order/transfer-order/{id}/allocate/: + post: + operationId: order_transfer_order_allocate_create + description: |- + API endpoint to allocate stock items against a TransferOrder. + + - The TransferOrder is specified in the URL + - See the TransferOrderAllocationSerializer class + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderLineItemAllocation' + description: '' + /api/order/transfer-order/{id}/allocate-serials/: + post: + operationId: order_transfer_order_allocate_serials_create + description: API endpoint to allocation stock items against a TransferOrder, + by specifying serial numbers. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderSerialAllocation' + description: '' + /api/order/transfer-order/{id}/cancel/: + post: + operationId: order_transfer_order_cancel_create + description: API endpoint to cancel a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/transfer-order/{id}/complete/: + post: + operationId: order_transfer_order_complete_create + description: API endpoint to complete a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + multipart/form-data: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TransferOrderComplete' + description: '' + /api/order/transfer-order/{id}/hold/: + post: + operationId: order_transfer_order_hold_create + description: API endpoint to hold a TransferOrder. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/order/transfer-order/{id}/issue/: + post: + operationId: order_transfer_order_issue_create + description: API endpoint to issue a Transfer Order. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - order + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + description: No response body + /api/parameter/: + get: + operationId: parameter_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: enabled + schema: + type: boolean + description: Template Enabled + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_id + schema: + type: integer + - in: query + name: model_type + schema: + type: string + description: Model Type + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - data + - -data + - units + - -units + - template + - -template + - updated + - -updated + - updated_by + - -updated_by + - name: search + required: false + in: query + description: 'A search term. Searched fields: data, template__description, + template__name, template__units.' + schema: + type: string + - in: query + name: template + schema: + type: integer + - in: query + name: updated_by + schema: + type: integer + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedParameterList' + description: '' + post: + operationId: parameter_create + description: List API endpoint for Parameter objects. + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Parameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/Parameter' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + delete: + operationId: parameter_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/parameter/{id}/: + get: + operationId: parameter_retrieve + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + put: + operationId: parameter_update + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Parameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/Parameter' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + patch: + operationId: parameter_partial_update + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedParameter' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedParameter' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedParameter' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Parameter' + description: '' + delete: + operationId: parameter_destroy + description: Detail API endpoint for Parameter objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/parameter/template/: + get: + operationId: parameter_template_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: checkbox + schema: + type: boolean + - in: query + name: enabled + schema: + type: boolean + - in: query + name: exists_for_model + schema: + type: string + description: Exists For Model + - in: query + name: exists_for_model_id + schema: + type: number + description: Exists For Model ID + - in: query + name: exists_for_related_model + schema: + type: string + description: Exists For Related Model + - in: query + name: exists_for_related_model_id + schema: + type: number + description: Exists For Model ID + - in: query + name: for_model + schema: + type: string + description: For Model + - in: query + name: has_choices + schema: + type: boolean + description: Has Choice + - in: query + name: has_units + schema: + type: boolean + description: Has Units + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + description: Model Type + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - units + - -units + - checkbox + - -checkbox + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + - in: query + name: units + schema: + type: string + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedParameterTemplateList' + description: '' + post: + operationId: parameter_template_create + description: List view for ParameterTemplate objects. + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + /api/parameter/template/{id}/: + get: + operationId: parameter_template_retrieve + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + put: + operationId: parameter_template_update + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + patch: + operationId: parameter_template_partial_update + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedParameterTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ParameterTemplate' + description: '' + delete: + operationId: parameter_template_destroy + description: Detail view for a ParameterTemplate object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - parameter + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/part/: + get: + operationId: part_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: IPN + schema: + type: string + description: Filter by exact IPN (internal part number) + - in: query + name: IPN_regex + schema: + type: string + description: Filter by regex on IPN (internal part number) + - in: query + name: active + schema: + type: boolean + - in: query + name: ancestor + schema: + type: integer + - in: query + name: assembly + schema: + type: boolean + - in: query + name: bom_valid + schema: + type: boolean + description: BOM Valid + - in: query + name: cascade + schema: + type: boolean + description: If true, include items in child categories of the given category + - in: query + name: category + schema: + type: integer + description: Filter by numeric category ID or the literal 'null' + - in: query + name: category_detail + schema: + type: boolean + default: false + - in: query + name: component + schema: + type: boolean + - in: query + name: convert_from + schema: + type: integer + - in: query + name: created_after + schema: + type: string + format: date + description: Updated after + - in: query + name: created_before + schema: + type: string + format: date + description: Updated before + - in: query + name: default_location + schema: + type: integer + description: Default Location + - in: query + name: depleted_stock + schema: + type: boolean + description: Depleted Stock + - in: query + name: exclude_id + schema: + type: array + items: + type: integer + description: Exclude parts with these IDs (comma-separated) + explode: false + style: form + - in: query + name: exclude_related + schema: + type: number + description: Exclude parts related to this part ID + - in: query + name: exclude_tree + schema: + type: integer + - in: query + name: has_ipn + schema: + type: boolean + description: Has IPN + - in: query + name: has_pricing + schema: + type: boolean + description: Has Pricing + - in: query + name: has_revisions + schema: + type: boolean + description: Has Revisions + - in: query + name: has_stock + schema: + type: boolean + description: Has stock + - in: query + name: has_units + schema: + type: boolean + description: Has units + - in: query + name: high_stock + schema: + type: boolean + description: High stock + - in: query + name: in_bom_for + schema: + type: integer + - in: query + name: is_revision + schema: + type: boolean + description: Is Revision + - in: query + name: is_template + schema: + type: boolean + - in: query + name: is_variant + schema: + type: boolean + description: Is Variant + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: locked + schema: + type: boolean + - in: query + name: low_stock + schema: + type: boolean + description: Low stock + - in: query + name: name_regex + schema: + type: string + description: Filter by name (regex) + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - id + - -id + - name + - -name + - creation_date + - -creation_date + - IPN + - -IPN + - in_stock + - -in_stock + - total_in_stock + - -total_in_stock + - unallocated_stock + - -unallocated_stock + - category + - -category + - default_location + - -default_location + - units + - -units + - pricing_min + - -pricing_min + - pricing_max + - -pricing_max + - pricing_updated + - -pricing_updated + - revision + - -revision + - revision_count + - -revision_count + - in: query + name: parameters + schema: + type: boolean + default: false + description: Include part parameters in response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: price_breaks + schema: + type: boolean + default: false + - in: query + name: purchaseable + schema: + type: boolean + - in: query + name: related + schema: + type: number + description: Show parts related to this part ID + - in: query + name: revision_of + schema: + type: integer + - in: query + name: salable + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: IPN, category__name, description, + keywords, manufacturer_parts__MPN, name, revision, supplier_parts__SKU, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: starred + schema: + type: boolean + description: Starred + - in: query + name: stock_to_build + schema: + type: boolean + description: Required for Build Order + - in: query + name: tags + schema: + type: boolean + default: false + - in: query + name: tags_name + schema: + type: string + - in: query + name: tags_slug + schema: + type: string + - in: query + name: testable + schema: + type: boolean + - in: query + name: trackable + schema: + type: boolean + - in: query + name: unallocated_stock + schema: + type: boolean + description: Unallocated stock + - in: query + name: variant_of + schema: + type: integer + description: Variant Of + - in: query + name: virtual + schema: + type: boolean + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartList' + description: '' + post: + operationId: part_create + description: API endpoint for accessing a list of Part objects, or creating + a new Part instance. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + put: + operationId: part_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + patch: + operationId: part_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + /api/part/{id}/: + get: + operationId: part_retrieve + description: API endpoint for detail view of a single Part object. + parameters: + - in: query + name: category_detail + schema: + type: boolean + default: false + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: parameters + schema: + type: boolean + default: false + description: Include part parameters in response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: price_breaks + schema: + type: boolean + default: false + - in: query + name: tags + schema: + type: boolean + default: false + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + put: + operationId: part_update + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Part' + multipart/form-data: + schema: + $ref: '#/components/schemas/Part' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + patch: + operationId: part_partial_update + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPart' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPart' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPart' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Part' + description: '' + delete: + operationId: part_destroy + description: API endpoint for detail view of a single Part object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:part + responses: + '204': + description: No response body + /api/part/{id}/bom-copy/: + post: + operationId: part_bom_copy_create + description: API endpoint for duplicating a BOM. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartCopyBOM' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartCopyBOM' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartCopyBOM' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartCopyBOM' + description: '' + /api/part/{id}/bom-validate/: + get: + operationId: part_bom_validate_retrieve + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + put: + operationId: part_bom_validate_update + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartBomValidate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartBomValidate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + patch: + operationId: part_bom_validate_partial_update + description: API endpoint for 'validating' the BOM for a given Part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartBomValidate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartBomValidate' + description: '' + /api/part/{id}/pricing/: + get: + operationId: part_pricing_retrieve + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + put: + operationId: part_pricing_update + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartPricing' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartPricing' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + patch: + operationId: part_pricing_partial_update + description: API endpoint for viewing part pricing data. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartPricing' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartPricing' + description: '' + /api/part/{id}/requirements/: + get: + operationId: part_requirements_retrieve + description: |- + API endpoint detailing 'requirements' information for a particular part. + + This endpoint returns information on upcoming requirements for: + + - Sales Orders + - Build Orders + - Total requirements + - How many of this part can be assembled with available stock + + As this data is somewhat complex to calculate, is it not included in the default API + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRequirements' + description: '' + /api/part/{id}/serial-numbers/: + get: + operationId: part_serial_numbers_retrieve + description: API endpoint for returning extra serial number information about + a particular part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSerialNumber' + description: '' + /api/part/category/: + get: + operationId: part_category_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: cascade + schema: + type: boolean + description: Include sub-categories in filtered results + - in: query + name: depth + schema: + type: number + description: Filter by category depth + - in: query + name: exclude_tree + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - pathstring + - -pathstring + - level + - -level + - tree_id + - -tree_id + - lft + - -lft + - part_count + - -part_count + - in: query + name: parent + schema: + type: integer + description: Filter by parent category + - in: query + name: path_detail + schema: + type: boolean + default: false + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, pathstring.' + schema: + type: string + - in: query + name: starred + schema: + type: boolean + description: Filter by starred categories + - in: query + name: structural + schema: + type: boolean + - in: query + name: top_level + schema: + type: boolean + description: Filter by top-level categories + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryList' + description: '' + post: + operationId: part_category_create + description: |- + API endpoint for accessing a list of PartCategory objects. + + - GET: Return a list of PartCategory objects + - POST: Create a new PartCategory object + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:part_category + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + put: + operationId: part_category_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + patch: + operationId: part_category_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategory' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategory' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategory' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + /api/part/category/{id}/: + get: + operationId: part_category_retrieve + description: Custom get method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: path_detail + schema: + type: boolean + default: false + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + put: + operationId: part_category_update + description: Custom put method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Category' + multipart/form-data: + schema: + $ref: '#/components/schemas/Category' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + patch: + operationId: part_category_partial_update + description: Custom patch method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategory' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategory' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategory' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Category' + description: '' + delete: + operationId: part_category_destroy + description: Custom delete method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:part_category + responses: + '204': + description: No response body + /api/part/category/parameters/: + get: + operationId: part_category_parameters_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryParameterTemplateList' + description: '' + post: + operationId: part_category_parameters_create + description: |- + API endpoint for accessing a list of PartCategoryParameterTemplate objects. + + - GET: Return a list of PartCategoryParameterTemplate objects + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part_category + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + /api/part/category/parameters/{id}/: + get: + operationId: part_category_parameters_retrieve + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + put: + operationId: part_category_parameters_update + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + patch: + operationId: part_category_parameters_partial_update + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCategoryParameterTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CategoryParameterTemplate' + description: '' + delete: + operationId: part_category_parameters_destroy + description: Detail endpoint for the PartCategoryParameterTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part_category + responses: + '204': + description: No response body + /api/part/category/tree/: + get: + operationId: part_category_tree_list + description: API endpoint for accessing a list of PartCategory objects ready + for rendering a tree. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - level + - -level + - name + - -name + - subcategories + - -subcategories + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part_category + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCategoryTreeList' + description: '' + /api/part/internal-price/: + get: + operationId: part_internal_price_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - price + - -price + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartInternalPriceList' + description: '' + post: + operationId: part_internal_price_create + description: API endpoint for list view of PartInternalPriceBreak model. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartInternalPrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + /api/part/internal-price/{id}/: + get: + operationId: part_internal_price_retrieve + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + put: + operationId: part_internal_price_update + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartInternalPrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + patch: + operationId: part_internal_price_partial_update + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartInternalPrice' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartInternalPrice' + description: '' + delete: + operationId: part_internal_price_destroy + description: Detail endpoint for PartInternalPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/related/: + get: + operationId: part_related_list + description: API endpoint for accessing a list of PartRelated objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_1 + schema: + type: integer + - in: query + name: part_2 + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: part_1__name, part_2__name.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartRelationList' + description: '' + post: + operationId: part_related_create + description: API endpoint for accessing a list of PartRelated objects. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartRelation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + /api/part/related/{id}/: + get: + operationId: part_related_retrieve + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + put: + operationId: part_related_update + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartRelation' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + patch: + operationId: part_related_partial_update + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartRelation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartRelation' + description: '' + delete: + operationId: part_related_destroy + description: API endpoint for accessing detail view of a PartRelated object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/sale-price/: + get: + operationId: part_sale_price_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - quantity + - -quantity + - price + - -price + - in: query + name: part + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartSalePriceList' + description: '' + post: + operationId: part_sale_price_create + description: API endpoint for list view of PartSalePriceBreak model. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartSalePrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + /api/part/sale-price/{id}/: + get: + operationId: part_sale_price_retrieve + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + put: + operationId: part_sale_price_update + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartSalePrice' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + patch: + operationId: part_sale_price_partial_update + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartSalePrice' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartSalePrice' + description: '' + delete: + operationId: part_sale_price_destroy + description: Detail endpoint for PartSellPriceBreak model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/stocktake/: + get: + operationId: part_stocktake_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - part + - -part + - item_count + - -item_count + - quantity + - -quantity + - date + - -date + - user + - -user + - pk + - -pk + - in: query + name: part + schema: + type: integer + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartStocktakeList' + description: '' + post: + operationId: part_stocktake_create + description: API endpoint for listing part stocktake information. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktake' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + delete: + operationId: part_stocktake_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/part/stocktake/{id}/: + get: + operationId: part_stocktake_retrieve + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + put: + operationId: part_stocktake_update + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktake' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + patch: + operationId: part_stocktake_partial_update + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartStocktake' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktake' + description: '' + delete: + operationId: part_stocktake_destroy + description: |- + Detail API endpoint for a single PartStocktake instance. + + Note: Only staff (admin) users can access this endpoint. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/stocktake/generate/: + post: + operationId: part_stocktake_generate_create + description: Perform stocktake generation on POST request. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartStocktakeGenerate' + description: '' + /api/part/test-template/: + get: + operationId: part_test_template_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: has_results + schema: + type: boolean + description: Has Results + - in: query + name: key + schema: + type: string + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - enabled + - -enabled + - required + - -required + - requires_value + - -requires_value + - requires_attachment + - -requires_attachment + - results + - -results + - test_name + - -test_name + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: required + schema: + type: boolean + - in: query + name: requires_attachment + schema: + type: boolean + - in: query + name: requires_value + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, test_name.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartTestTemplateList' + description: '' + post: + operationId: part_test_template_create + description: API endpoint for listing (and creating) a PartTestTemplate. + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartTestTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:part + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + /api/part/test-template/{id}/: + get: + operationId: part_test_template_retrieve + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + put: + operationId: part_test_template_update + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartTestTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + patch: + operationId: part_test_template_partial_update + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartTestTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartTestTemplate' + description: '' + delete: + operationId: part_test_template_destroy + description: Detail endpoint for PartTestTemplate model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:part + responses: + '204': + description: No response body + /api/part/thumbs/: + get: + operationId: part_thumbs_list + description: API endpoint for retrieving information on available Part thumbnails. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: IPN, category__name, description, + keywords, name, revision.' + schema: + type: string + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPartThumbList' + description: '' + /api/part/thumbs/{id}/: + get: + operationId: part_thumbs_retrieve + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + put: + operationId: part_thumbs_update + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + patch: + operationId: part_thumbs_partial_update + description: API endpoint for updating Part thumbnails. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - part + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:part + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PartThumbSerializerUpdate' + description: '' + /api/plugins/: + get: + operationId: plugins_list + description: |- + API endpoint for list of PluginConfig objects. + + - GET: Return a list of all PluginConfig objects + parameters: + - in: query + name: active + schema: + type: boolean + - in: query + name: builtin + schema: + type: boolean + description: Builtin + - in: query + name: installed + schema: + type: boolean + description: Installed + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: mandatory + schema: + type: boolean + description: Mandatory + - in: query + name: mixin + schema: + type: string + description: Mixin + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - key + - -key + - name + - -name + - active + - -active + - in: query + name: sample + schema: + type: boolean + description: Sample + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, name.' + schema: + type: string + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPluginConfigList' + description: '' + /api/plugins/{plugin}/: + get: + operationId: plugins_retrieve + description: |- + API detail endpoint for PluginConfig object. + + get: + Return a single PluginConfig object + + post: + Update a PluginConfig + + delete: + Remove a PluginConfig + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfig' + description: '' + delete: + operationId: plugins_destroy + description: |- + Handle DELETE request for a PluginConfig instance. + + We only allow plugin deletion if the plugin is not active. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '204': + description: No response body + /api/plugins/{plugin}/activate/: + put: + operationId: plugins_activate_update + description: |- + Endpoint for activating a plugin. + + - PATCH: Activate a plugin + + Pass a boolean value for the 'active' field. + If not provided, it is assumed to be True, + and the plugin will be activated. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginActivate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginActivate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + description: '' + patch: + operationId: plugins_activate_partial_update + description: |- + Endpoint for activating a plugin. + + - PATCH: Activate a plugin + + Pass a boolean value for the 'active' field. + If not provided, it is assumed to be True, + and the plugin will be activated. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginActivate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginActivate' + description: '' + /api/plugins/{plugin}/admin/: + get: + operationId: plugins_admin_retrieve + description: |- + Endpoint for viewing admin integration plugin details. + + This endpoint is used to view the available admin integration options for a plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:admin + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginAdminDetail' + description: '' + /api/plugins/{plugin}/settings/: + get: + operationId: plugins_settings_list + description: Get all settings for a plugin config. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginSetting' + description: '' + /api/plugins/{plugin}/settings/{key}/: + get: + operationId: plugins_settings_retrieve + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + put: + operationId: plugins_settings_update + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + patch: + operationId: plugins_settings_partial_update + description: Detail endpoint for a plugin-specific setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginSetting' + description: '' + /api/plugins/{plugin}/uninstall/: + put: + operationId: plugins_uninstall_update + description: Endpoint for uninstalling a single plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginUninstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginUninstall' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + description: '' + patch: + operationId: plugins_uninstall_partial_update + description: Endpoint for uninstalling a single plugin. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginUninstall' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUninstall' + description: '' + /api/plugins/{plugin}/user-settings/: + get: + operationId: plugins_user_settings_list + description: Get all user settings for a plugin config. + parameters: + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + /api/plugins/{plugin}/user-settings/{key}/: + get: + operationId: plugins_user_settings_retrieve + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + put: + operationId: plugins_user_settings_update + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginUserSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginUserSetting' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + patch: + operationId: plugins_user_settings_partial_update + description: Detail endpoint for a plugin-specific user setting. + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + - in: path + name: plugin + schema: + type: string + required: true + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPluginUserSetting' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginUserSetting' + description: '' + /api/plugins/install/: + post: + operationId: plugins_install_create + description: Endpoint for installing a new plugin. + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginConfigInstall' + description: '' + /api/plugins/reload/: + post: + operationId: plugins_reload_create + description: Endpoint for reloading all plugins. + tags: + - plugins + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PluginReload' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PluginReload' + multipart/form-data: + schema: + $ref: '#/components/schemas/PluginReload' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginReload' + description: '' + /api/plugins/settings/: + get: + operationId: plugins_settings_list_all + description: |- + List endpoint for all plugin related settings. + + - read only + - only accessible by staff users + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: plugin__active + schema: + type: boolean + - in: query + name: plugin__key + schema: + type: string + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPluginSettingList' + description: '' + /api/plugins/status/: + get: + operationId: plugins_status_retrieve + description: Show plugin registry status information. + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PluginRegistryStatus' + description: '' + /api/plugins/ui/features/{feature}/: + get: + operationId: plugins_ui_features_list + description: Show available plugin ui features. + parameters: + - in: path + name: feature + schema: + type: string + required: true + tags: + - plugins + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginUIFeature' + description: '' + /api/project-code/: + get: + operationId: project_code_list + description: Override the GET method to determine export options. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - code + - -code + - name: search + required: false + in: query + description: 'A search term. Searched fields: code, description.' + schema: + type: string + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedProjectCodeList' + description: '' + post: + operationId: project_code_create + description: List view for all project codes. + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/ProjectCode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + /api/project-code/{id}/: + get: + operationId: project_code_retrieve + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + put: + operationId: project_code_update + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/ProjectCode' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + patch: + operationId: project_code_partial_update + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedProjectCode' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCode' + description: '' + delete: + operationId: project_code_destroy + description: Detail view for a particular project code. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - project-code + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/asset/: + get: + operationId: report_asset_list + description: API endpoint for listing ReportAsset objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportAssetList' + description: '' + post: + operationId: report_asset_create + description: API endpoint for listing ReportAsset objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportAsset' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + /api/report/asset/{id}/: + get: + operationId: report_asset_retrieve + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + put: + operationId: report_asset_update + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportAsset' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + patch: + operationId: report_asset_partial_update + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportAsset' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportAsset' + description: '' + delete: + operationId: report_asset_destroy + description: API endpoint for a single ReportAsset object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/print/: + post: + operationId: report_print_create + description: POST action for printing a report. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportPrint' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportPrint' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportPrint' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportPrint' + description: '' + /api/report/snippet/: + get: + operationId: report_snippet_list + description: API endpoint for listing ReportSnippet objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSnippetList' + description: '' + post: + operationId: report_snippet_create + description: API endpoint for listing ReportSnippet objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportSnippet' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + /api/report/snippet/{id}/: + get: + operationId: report_snippet_retrieve + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + put: + operationId: report_snippet_update + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportSnippet' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + patch: + operationId: report_snippet_partial_update + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportSnippet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSnippet' + description: '' + delete: + operationId: report_snippet_destroy + description: API endpoint for a single ReportSnippet object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/report/template/: + get: + operationId: report_template_list + description: API endpoint for viewing list of ReportTemplate objects. + parameters: + - in: query + name: enabled + schema: + type: boolean + - in: query + name: items + schema: + type: string + description: Items + - in: query + name: landscape + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: model_type + schema: + type: string + enum: + - build + - buildline + - company + - part + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - stockitem + - stocklocation + - transferorder + description: |- + Model Type + + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name.' + schema: + type: string + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportTemplateList' + description: '' + post: + operationId: report_template_create + description: API endpoint for viewing list of ReportTemplate objects. + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + /api/report/template/{id}/: + get: + operationId: report_template_retrieve + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + put: + operationId: report_template_update + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportTemplate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + patch: + operationId: report_template_partial_update + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedReportTemplate' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ReportTemplate' + description: '' + delete: + operationId: report_template_destroy + description: Detail API endpoint for report template model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - report + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/search/: + post: + operationId: search_create + description: Perform search query against available models. + tags: + - search + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APISearchView' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APISearchView' + multipart/form-data: + schema: + $ref: '#/components/schemas/APISearchView' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APISearchView' + description: '' + /api/selection/: + get: + operationId: selection_list + description: List view for SelectionList objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSelectionListList' + description: '' + post: + operationId: selection_create + description: List view for SelectionList objects. + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionList' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + /api/selection/{id}/: + get: + operationId: selection_retrieve + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + put: + operationId: selection_update + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionList' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + patch: + operationId: selection_partial_update + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSelectionList' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionList' + description: '' + delete: + operationId: selection_destroy + description: Detail view for a SelectionList object. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/selection/{id}/entry/: + get: + operationId: selection_entry_list + description: List view for SelectionEntry objects. + parameters: + - in: query + name: active + schema: + type: boolean + - in: path + name: id + schema: + type: integer + required: true + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: list + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - list + - -list + - label + - -label + - active + - -active + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, label.' + schema: + type: string + - in: query + name: value + schema: + type: string + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSelectionEntryList' + description: '' + post: + operationId: selection_entry_create + description: List view for SelectionEntry objects. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + /api/selection/{id}/entry/{entrypk}/: + get: + operationId: selection_entry_retrieve + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + put: + operationId: selection_entry_update + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/SelectionEntry' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + patch: + operationId: selection_entry_partial_update + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedSelectionEntry' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SelectionEntry' + description: '' + delete: + operationId: selection_entry_destroy + description: Detail view for a SelectionEntry object. + parameters: + - in: path + name: entrypk + schema: + type: integer + required: true + - in: path + name: id + schema: + type: integer + required: true + tags: + - selection + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/settings/global/: + get: + operationId: settings_global_list + description: API endpoint for accessing a list of global settings objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - key + - -key + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: key.' + schema: + type: string + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGlobalSettingsList' + description: '' + /api/settings/global/{key}/: + get: + operationId: settings_global_retrieve + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + put: + operationId: settings_global_update + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalSettings' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + patch: + operationId: settings_global_partial_update + description: |- + Detail view for an individual "global setting" object. + + - User must have 'staff' status to view / edit + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGlobalSettings' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalSettings' + description: '' + /api/settings/user/: + get: + operationId: settings_user_list + description: API endpoint for accessing a list of user settings objects. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - pk + - -pk + - key + - -key + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: key.' + schema: + type: string + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserSettingsList' + description: '' + /api/settings/user/{key}/: + get: + operationId: settings_user_retrieve + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + put: + operationId: settings_user_update + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserSettings' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + patch: + operationId: settings_user_partial_update + description: |- + Detail view for an individual "user setting" object. + + - User can only view / edit settings their own settings objects + parameters: + - in: path + name: key + schema: + type: string + pattern: ^\w+$ + required: true + tags: + - settings + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserSettings' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSettings' + description: '' + /api/stock/: + get: + operationId: stock_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: IPN + schema: + type: string + description: Part IPN (case insensitive) + - in: query + name: IPN_contains + schema: + type: string + description: Part IPN contains (case insensitive) + - in: query + name: IPN_regex + schema: + type: string + description: Part IPN (regex) + - in: query + name: active + schema: + type: boolean + description: Active + - in: query + name: allocated + schema: + type: boolean + description: Is Allocated + - in: query + name: ancestor + schema: + type: integer + - in: query + name: assembly + schema: + type: boolean + description: Assembly + - in: query + name: available + schema: + type: boolean + description: Available + - in: query + name: batch + schema: + type: string + description: Batch code filter (case insensitive) + - in: query + name: batch_regex + schema: + type: string + description: Batch code filter (regex) + - in: query + name: belongs_to + schema: + type: integer + - in: query + name: bom_item + schema: + type: integer + - in: query + name: build + schema: + type: integer + - in: query + name: cascade + schema: + type: boolean + description: If true, include items in child locations of the given location + - in: query + name: category + schema: + type: integer + - in: query + name: company + schema: + type: integer + - in: query + name: consumed + schema: + type: boolean + description: Consumed by Build Order + - in: query + name: consumed_by + schema: + type: integer + - in: query + name: created_after + schema: + type: string + format: date + description: Created after + - in: query + name: created_before + schema: + type: string + format: date + description: Created before + - in: query + name: customer + schema: + type: integer + - in: query + name: depleted + schema: + type: boolean + description: Depleted + - in: query + name: exclude_tree + schema: + type: number + description: Provide a StockItem PK to exclude that item and all its descendants + - in: query + name: expired + schema: + type: boolean + description: Expired + - in: query + name: expiry_after + schema: + type: string + format: date + description: Expiry date after + - in: query + name: expiry_before + schema: + type: string + format: date + description: Expiry date before + - in: query + name: external + schema: + type: boolean + description: External Location + - in: query + name: has_batch + schema: + type: boolean + description: Has batch code + - in: query + name: has_child_items + schema: + type: boolean + description: Has child items + - in: query + name: has_installed_items + schema: + type: boolean + description: Has installed items + - in: query + name: has_purchase_price + schema: + type: boolean + description: Has purchase price + - in: query + name: has_stocktake + schema: + type: boolean + description: Has Stocktake Date + - in: query + name: in_stock + schema: + type: boolean + description: In Stock + - in: query + name: include_variants + schema: + type: boolean + description: Include Variants + - in: query + name: installed + schema: + type: boolean + description: Installed in other stock item + - in: query + name: is_building + schema: + type: boolean + description: In production + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location + schema: + type: integer + description: Filter by numeric Location ID or the literal 'null' + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: manufacturer + schema: + type: integer + - in: query + name: manufacturer_part + schema: + type: integer + description: Manufacturer Part + - in: query + name: max_stock + schema: + type: number + description: Maximum stock + - in: query + name: min_stock + schema: + type: number + description: Minimum stock + - in: query + name: name + schema: + type: string + description: Part name (case insensitive) + - in: query + name: name_contains + schema: + type: string + description: Part name contains (case insensitive) + - in: query + name: name_regex + schema: + type: string + description: Part name (regex) + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - batch + - -batch + - location + - -location + - part + - -part + - part__name + - -part__name + - part__IPN + - -part__IPN + - updated + - -updated + - purchase_price + - -purchase_price + - creation_date + - -creation_date + - stocktake_date + - -stocktake_date + - expiry_date + - -expiry_date + - packaging + - -packaging + - quantity + - -quantity + - stock + - -stock + - status + - -status + - IPN + - -IPN + - SKU + - -SKU + - MPN + - -MPN + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: part_tree + schema: + type: integer + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: purchase_order + schema: + type: integer + - in: query + name: salable + schema: + type: boolean + description: Salable + - in: query + name: sales_order + schema: + type: integer + - name: search + required: false + in: query + description: 'A search term. Searched fields: batch, location__name, part__IPN, + part__description, part__name, serial, supplier_part__SKU, supplier_part__manufacturer_part__MPN, + supplier_part__manufacturer_part__manufacturer__name, supplier_part__supplier__name, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: sent_to_customer + schema: + type: boolean + description: Sent to customer + - in: query + name: serial + schema: + type: string + description: Serial number + - in: query + name: serial_gte + schema: + type: integer + description: Serial number GTE + - in: query + name: serial_lte + schema: + type: integer + description: Serial number LTE + - in: query + name: serialized + schema: + type: boolean + description: Has serial number + - in: query + name: stale + schema: + type: boolean + description: Stale + - in: query + name: status + schema: + type: integer + description: Status Code + - in: query + name: stocktake_after + schema: + type: string + format: date + description: Stocktake After + - in: query + name: stocktake_before + schema: + type: string + format: date + description: Stocktake Before + - in: query + name: supplier + schema: + type: integer + description: Supplier + - in: query + name: supplier_part + schema: + type: integer + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + - in: query + name: tags__name + schema: + type: string + - in: query + name: tags__slug + schema: + type: string + - in: query + name: tests + schema: + type: boolean + default: false + - in: query + name: tracked + schema: + type: boolean + description: Tracked + - in: query + name: updated_after + schema: + type: string + format: date + description: Updated after + - in: query + name: updated_before + schema: + type: string + format: date + description: Updated before + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockItemList' + description: '' + post: + operationId: stock_create + description: |- + API endpoint for list view of Stock objects. + + - GET: Return a list of all StockItem objects (with optional query filters) + - POST: Create a new StockItem + - DELETE: Delete multiple StockItem objects + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:stock + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + put: + operationId: stock_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + patch: + operationId: stock_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + delete: + operationId: stock_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/stock/{id}/: + get: + operationId: stock_retrieve + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: location_detail + schema: + type: boolean + default: false + description: Include detailed information about the stock location in the + response + - in: query + name: part_detail + schema: + type: boolean + default: true + description: Include detailed information about the related part in the response + - in: query + name: path_detail + schema: + type: boolean + default: false + - in: query + name: supplier_part_detail + schema: + type: boolean + default: false + - in: query + name: tests + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + put: + operationId: stock_update + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + patch: + operationId: stock_partial_update + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItem' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItem' + description: '' + delete: + operationId: stock_destroy + description: API detail endpoint for a single StockItem instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock + responses: + '204': + description: No response body + /api/stock/{id}/convert/: + post: + operationId: stock_convert_create + description: API endpoint for converting a stock item to a variant part. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConvertStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConvertStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConvertStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ConvertStockItem' + description: '' + /api/stock/{id}/install/: + post: + operationId: stock_install_create + description: |- + API endpoint for installing a particular stock item into this stock item. + + - stock_item.part must be in the BOM for this part + - stock_item must currently be "in stock" + - stock_item must be serialized (and not belong to another item) + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstallStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InstallStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/InstallStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/InstallStockItem' + description: '' + /api/stock/{id}/serial-numbers/: + get: + operationId: stock_serial_numbers_retrieve + description: |- + View extra serial number information for a given stock item. + + Provides information on the "previous" and "next" stock items, + based on the serial number of the given stock item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemSerialNumbers' + description: '' + /api/stock/{id}/serialize/: + post: + operationId: stock_serialize_create + description: API endpoint for serializing a stock item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SerializeStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SerializeStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/SerializeStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/StockItem' + description: '' + /api/stock/{id}/uninstall/: + post: + operationId: stock_uninstall_create + description: API endpoint for removing (uninstalling) items from this item. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UninstallStockItem' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UninstallStockItem' + multipart/form-data: + schema: + $ref: '#/components/schemas/UninstallStockItem' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UninstallStockItem' + description: '' + /api/stock/add/: + post: + operationId: stock_add_create + description: Endpoint for adding a quantity of stock to an existing StockItem. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockAdd' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockAdd' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockAdd' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockAdd' + description: '' + /api/stock/assign/: + post: + operationId: stock_assign_create + description: API endpoint for assigning stock to a particular customer. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockAssignment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockAssignment' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockAssignment' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockAssignment' + description: '' + /api/stock/change_status/: + post: + operationId: stock_change_status_create + description: API endpoint to change the status code of multiple StockItem objects. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockChangeStatus' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockChangeStatus' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockChangeStatus' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockChangeStatus' + description: '' + /api/stock/count/: + post: + operationId: stock_count_create + description: Endpoint for counting stock (performing a stocktake). + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockCount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockCount' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockCount' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockCount' + description: '' + /api/stock/location/: + get: + operationId: stock_location_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: cascade + schema: + type: boolean + description: Include sub-locations in filtered results + - in: query + name: depth + schema: + type: number + description: Filter by location depth + - in: query + name: external + schema: + type: boolean + - in: query + name: has_location_type + schema: + type: boolean + description: has_location_type + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: location_type + schema: + type: integer + - in: query + name: name + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - pathstring + - -pathstring + - items + - -items + - level + - -level + - tree_id + - -tree_id + - lft + - -lft + - in: query + name: parent + schema: + type: integer + description: Filter by parent location + - in: query + name: path_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + - name: search + required: false + in: query + description: 'A search term. Searched fields: description, name, pathstring, + tags__name, tags__slug.' + schema: + type: string + - in: query + name: structural + schema: + type: boolean + - in: query + name: top_level + schema: + type: boolean + description: Filter by top-level locations + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLocationList' + description: '' + post: + operationId: stock_location_create + description: |- + API endpoint for list view of StockLocation objects. + + - GET: Return list of StockLocation objects + - POST: Create a new StockLocation + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:build + - r:add:stock_location + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + put: + operationId: stock_location_bulk_update + description: |- + Perform a PUT operation against this list endpoint. + + Simply redirects to the PATCH method. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + patch: + operationId: stock_location_bulk_partial_update + description: |- + Perform a PATCH operation against this list endpoint. + + Note that the typical DRF list endpoint does not support PATCH, + so this method is provided as a custom implementation. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + /api/stock/location-type/: + get: + operationId: stock_location_type_list + description: |- + API endpoint for a list of StockLocationType objects. + + - GET: Return a list of all StockLocationType objects + - POST: Create a StockLocationType + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - location_count + - -location_count + - icon + - -icon + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockLocationTypeList' + description: '' + post: + operationId: stock_location_type_create + description: |- + API endpoint for a list of StockLocationType objects. + + - GET: Return a list of all StockLocationType objects + - POST: Create a StockLocationType + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockLocationType' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:stock_location + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + /api/stock/location-type/{id}/: + get: + operationId: stock_location_type_retrieve + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + put: + operationId: stock_location_type_update + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockLocationType' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + patch: + operationId: stock_location_type_partial_update + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockLocationType' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockLocationType' + description: '' + delete: + operationId: stock_location_type_destroy + description: |- + API detail endpoint for a StockLocationType object. + + - GET: return a single StockLocationType + - PUT: update a StockLocationType + - PATCH: partial update a StockLocationType + - DELETE: delete a StockLocationType + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock_location + responses: + '204': + description: No response body + /api/stock/location/{id}/: + get: + operationId: stock_location_retrieve + description: Custom get method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: path_detail + schema: + type: boolean + default: false + description: Include detailed information about the BOM item linked to this + build line. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + put: + operationId: stock_location_update + description: Custom put method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Location' + multipart/form-data: + schema: + $ref: '#/components/schemas/Location' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + patch: + operationId: stock_location_partial_update + description: Custom patch method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedLocation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedLocation' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedLocation' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:build + - r:change:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + delete: + operationId: stock_location_destroy + description: Custom delete method to pass kwargs. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:build + - r:delete:stock_location + responses: + '204': + description: No response body + /api/stock/location/tree/: + get: + operationId: stock_location_tree_list + description: API endpoint for accessing a list of StockLocation objects, ready + for rendering as a tree. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - level + - -level + - name + - -name + - sublocations + - -sublocations + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:build + - r:view:stock_location + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLocationTreeList' + description: '' + /api/stock/merge/: + post: + operationId: stock_merge_create + description: API endpoint for merging multiple stock items. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockMerge' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockMerge' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockMerge' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockMerge' + description: '' + /api/stock/remove/: + post: + operationId: stock_remove_create + description: Endpoint for removing a quantity of stock from an existing StockItem. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockRemove' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockRemove' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockRemove' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockRemove' + description: '' + /api/stock/return/: + post: + operationId: stock_return_create + description: |- + API endpoint for returning items into stock. + + This API endpoint is for items that are initially considered "not in stock", + and the user wants to return them to stock, marking them as + "available" for further consumption or sale. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockReturn' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockReturn' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockReturn' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockReturn' + description: '' + /api/stock/status/: + get: + operationId: stock_status_retrieve + description: Retrieve information about a specific status code + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/stock/test/: + get: + operationId: stock_test_list + description: API endpoint for listing (and creating) a StockItemTestResult object. + parameters: + - in: query + name: build + schema: + type: integer + description: Build + - in: query + name: enabled + schema: + type: boolean + description: Enabled + - in: query + name: include_installed + schema: + type: boolean + description: If true, include test results for items installed underneath + the given stock item + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - date + - -date + - result + - -result + - started_datetime + - -started_datetime + - finished_datetime + - -finished_datetime + - test_station + - -test_station + - in: query + name: part + schema: + type: integer + description: Part + - in: query + name: required + schema: + type: boolean + description: Required + - in: query + name: result + schema: + type: boolean + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: stock_item + schema: + type: integer + description: Filter by numeric Stock Item ID + - in: query + name: template + schema: + type: integer + - in: query + name: template_detail + schema: + type: boolean + default: false + - in: query + name: test + schema: + type: string + description: Test name (case insensitive) + - in: query + name: user + schema: + type: integer + - in: query + name: user_detail + schema: + type: boolean + default: false + - in: query + name: value + schema: + type: string + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockItemTestResultList' + description: '' + post: + operationId: stock_test_create + description: API endpoint for listing (and creating) a StockItemTestResult object. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItemTestResult' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:add:stock + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + delete: + operationId: stock_test_bulk_destroy + description: |- + Perform a DELETE operation against this list endpoint. + + Note that the typical DRF list endpoint does not support DELETE, + so this method is provided as a custom implementation. + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock + responses: + '204': + description: No response body + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BulkRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BulkRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BulkRequest' + required: true + /api/stock/test/{id}/: + get: + operationId: stock_test_retrieve + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: template_detail + schema: + type: boolean + default: false + - in: query + name: user_detail + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + put: + operationId: stock_test_update + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockItemTestResult' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + patch: + operationId: stock_test_partial_update + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedStockItemTestResult' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:change:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockItemTestResult' + description: '' + delete: + operationId: stock_test_destroy + description: Detail endpoint for StockItemTestResult. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:delete:stock + responses: + '204': + description: No response body + /api/stock/track/: + get: + operationId: stock_track_list + description: Override the GET method to determine export options. + parameters: + - in: query + name: include_variants + schema: + type: boolean + description: Include Part Variants + - in: query + name: item + schema: + type: integer + - in: query + name: item_detail + schema: + type: boolean + default: false + description: Include detailed information about the item in the response + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: max_date + schema: + type: string + format: date + description: Date before + - in: query + name: min_date + schema: + type: string + format: date + description: Date after + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - date + - -date + - in: query + name: part + schema: + type: integer + description: Part + - name: search + required: false + in: query + description: 'A search term. Searched fields: notes.' + schema: + type: string + - in: query + name: user + schema: + type: integer + - in: query + name: user_detail + schema: + type: boolean + default: false + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStockTrackingList' + description: '' + /api/stock/track/{id}/: + get: + operationId: stock_track_retrieve + description: Detail API endpoint for StockItemTracking model. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - r:view:stock + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StockTracking' + description: '' + /api/stock/track/status/: + get: + operationId: stock_track_status_retrieve + description: Retrieve information about a specific status code + tags: + - stock + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericStateClass' + description: '' + '400': + description: Invalid request + /api/stock/transfer/: + post: + operationId: stock_transfer_create + description: API endpoint for performing stock movements. + tags: + - stock + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StockTransfer' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StockTransfer' + multipart/form-data: + schema: + $ref: '#/components/schemas/StockTransfer' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/StockTransfer' + description: '' + /api/supplier/import/: + post: + operationId: supplier_import_create + description: Import a part by supplier. + tags: + - supplier + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ImportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ImportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ImportRequest' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + description: '' + /api/supplier/list/: + get: + operationId: supplier_list_list + description: List all available supplier plugins. + tags: + - supplier + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SupplierList' + description: '' + /api/supplier/search/: + get: + operationId: supplier_search_list + description: Search parts by supplier. + parameters: + - in: query + name: plugin + schema: + type: string + description: Plugin slug + required: true + - in: query + name: supplier + schema: + type: string + description: Supplier slug + required: true + - in: query + name: term + schema: + type: string + description: Search term + required: true + tags: + - supplier + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SearchResult' + description: '' + /api/system-internal/observability/end: + post: + operationId: system_internal_observability_end_create + description: Endpoint for observability tools. + tags: + - system-internal + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + multipart/form-data: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityEnd' + description: '' + /api/system/health/: + get: + operationId: system_health_retrieve + description: |- + Simple health check endpoint for monitoring purposes. + + Use the root API endpoint for more detailed information (using an authenticated request). + tags: + - system + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/HealthCheckStatus' + description: InvenTree server health status + /api/units/: + get: + operationId: units_list + description: List view for custom units. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomUnitList' + description: '' + post: + operationId: units_create + description: List view for custom units. + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUnit' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + /api/units/{id}/: + get: + operationId: units_retrieve + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + put: + operationId: units_update + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUnit' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + patch: + operationId: units_partial_update + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomUnit' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUnit' + description: '' + delete: + operationId: units_destroy + description: List view for custom units. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Custom Unit. + required: true + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/units/all/: + get: + operationId: units_all_retrieve + description: Return a list of all available units. + tags: + - units + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllUnitListResponse' + description: '' + /api/user/: + get: + operationId: user_list + description: |- + List endpoint for detail on all users. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: query + name: is_active + schema: + type: boolean + - in: query + name: is_staff + schema: + type: boolean + - in: query + name: is_superuser + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - email + - -email + - username + - -username + - first_name + - -first_name + - last_name + - -last_name + - is_staff + - -is_staff + - is_superuser + - -is_superuser + - is_active + - -is_active + - name: search + required: false + in: query + description: 'A search term. Searched fields: first_name, last_name, username.' + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserCreateList' + description: '' + post: + operationId: user_create + description: |- + List endpoint for detail on all users. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserCreate' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserCreate' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreate' + description: '' + /api/user/{id}/: + get: + operationId: user_retrieve + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + put: + operationId: user_update + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ExtendedUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/ExtendedUser' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + patch: + operationId: user_partial_update + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedExtendedUser' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExtendedUser' + description: '' + delete: + operationId: user_destroy + description: |- + Detail endpoint for a single user. + + Permissions: + - Staff users (who also have the 'admin' role) can perform write operations + - Otherwise authenticated users have read-only access + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/{id}/set-password/: + put: + operationId: user_set_password_update + description: Allows superusers to set the password for a user. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserSetPassword' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserSetPassword' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + description: '' + patch: + operationId: user_set_password_partial_update + description: Allows superusers to set the password for a user. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserSetPassword' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:superuser + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserSetPassword' + description: '' + /api/user/group/: + get: + operationId: user_group_list + description: List endpoint for all auth groups. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - in: query + name: permission_detail + schema: + type: boolean + default: false + description: Include permission details + - in: query + name: role_detail + schema: + type: boolean + default: true + description: Include role details + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + - in: query + name: user_detail + schema: + type: boolean + default: false + description: Include user details + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGroupList' + description: '' + post: + operationId: user_group_create + description: List endpoint for all auth groups. + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Group' + multipart/form-data: + schema: + $ref: '#/components/schemas/Group' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + /api/user/group/{id}/: + get: + operationId: user_group_retrieve + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + - in: query + name: permission_detail + schema: + type: boolean + default: false + description: Include permission details + - in: query + name: role_detail + schema: + type: boolean + default: true + description: Include role details + - in: query + name: user_detail + schema: + type: boolean + default: false + description: Include user details + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + put: + operationId: user_group_update + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Group' + multipart/form-data: + schema: + $ref: '#/components/schemas/Group' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + patch: + operationId: user_group_partial_update + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGroup' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGroup' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGroup' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + delete: + operationId: user_group_destroy + description: Detail endpoint for a particular auth group. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/me/: + get: + operationId: user_me_retrieve + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + put: + operationId: user_me_update + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MeUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/MeUser' + required: true + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + patch: + operationId: user_me_partial_update + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedMeUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedMeUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedMeUser' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MeUser' + description: '' + delete: + operationId: user_me_destroy + description: |- + Detail endpoint for current user. + + Permissions: + - User can edit their own details via this endpoint + - Only a subset of fields are available here + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/user/me/profile/: + get: + operationId: user_me_profile_retrieve + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + put: + operationId: user_me_profile_update + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserProfile' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserProfile' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + patch: + operationId: user_me_profile_partial_update + description: |- + Detail endpoint for the user profile. + + Permissions: + - Any authenticated user has write access against this endpoint + - The endpoint always returns the profile associated with the current user + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserProfile' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserProfile' + description: '' + /api/user/me/roles/: + get: + operationId: user_me_roles_retrieve + description: API endpoint which lists the available role permissions for the + current user. + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Role' + description: '' + /api/user/me/token/: + get: + operationId: user_me_token_retrieve + description: |- + Return an API token if the user is authenticated. + + - If the user already has a matching token, delete it and create a new one + - Existing tokens are *never* exposed again via the API + - Once the token is provided, it can be used for auth until it expires + parameters: + - in: query + name: name + schema: + type: string + description: Name of the token + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetAuthToken' + description: '' + /api/user/owner/: + get: + operationId: user_owner_list + description: |- + List API endpoint for Owner model. + + Cannot create a new Owner object via the API, but can view existing instances. + parameters: + - in: query + name: is_active + schema: + type: boolean + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: search + required: false + in: query + description: A search term. + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOwnerList' + description: '' + /api/user/owner/{id}/: + get: + operationId: user_owner_retrieve + description: |- + Detail API endpoint for Owner model. + + Cannot edit or delete + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Owner' + description: '' + /api/user/ruleset/: + get: + operationId: user_ruleset_list + description: List endpoint for all RuleSet instances. + parameters: + - in: query + name: group + schema: + type: integer + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: name + schema: + type: string + enum: + - admin + - bom + - build + - part + - part_category + - purchase_order + - repair_order + - return_order + - sales_order + - stock + - stock_location + - transfer_order + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - name + - -name + - name: search + required: false + in: query + description: 'A search term. Searched fields: name.' + schema: + type: string + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRuleSetList' + description: '' + /api/user/ruleset/{id}/: + get: + operationId: user_ruleset_retrieve + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + put: + operationId: user_ruleset_update + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RuleSet' + multipart/form-data: + schema: + $ref: '#/components/schemas/RuleSet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + patch: + operationId: user_ruleset_partial_update + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRuleSet' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RuleSet' + description: '' + delete: + operationId: user_ruleset_destroy + description: Detail endpoint for a particular RuleSet instance. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '204': + description: No response body + /api/user/tokens/: + get: + operationId: user_tokens_list + description: List of user tokens for current user. + parameters: + - name: limit + required: true + in: query + description: Number of results to return per page. + schema: + type: integer + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + enum: + - created + - -created + - expiry + - -expiry + - last_seen + - -last_seen + - user + - -user + - name + - -name + - revoked + - -revoked + - revoked + - -revoked + - in: query + name: revoked + schema: + type: boolean + - name: search + required: false + in: query + description: 'A search term. Searched fields: key, name.' + schema: + type: string + - in: query + name: user + schema: + type: integer + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedApiTokenList' + description: '' + post: + operationId: user_tokens_create + description: List of user tokens for current user. + tags: + - user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApiToken' + multipart/form-data: + schema: + $ref: '#/components/schemas/ApiToken' + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + description: '' + /api/user/tokens/{id}/: + get: + operationId: user_tokens_retrieve + description: Details for a user token. + parameters: + - in: query + name: all_users + schema: + type: boolean + description: Display tokens for all users (superuser only) + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ApiToken' + description: '' + delete: + operationId: user_tokens_destroy + description: Details for a user token. + parameters: + - in: path + name: id + schema: + type: integer + required: true + tags: + - user + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - g:read + responses: + '204': + description: No response body + /api/version/: + get: + operationId: version_retrieve + description: Return information about the InvenTree server. + tags: + - version + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/VersionView' + description: '' + /api/version-text: + get: + operationId: version_text_list + description: Simple JSON endpoint for InvenTree version text. + parameters: + - in: query + name: start_version + schema: + type: integer + description: First version to report. Defaults to return the latest {versions} + versions. + - in: query + name: versions + schema: + type: integer + default: 10 + description: Number of versions to return. + tags: + - version-text + security: + - tokenAuth: [] + - basicAuth: [] + - cookieAuth: [] + - oauth2: + - a:staff + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VersionInformation' + description: '' + /api/webhook/{endpoint}/: + post: + operationId: webhook_create + description: Process incoming webhook. + parameters: + - in: path + name: endpoint + schema: + type: string + required: true + tags: + - webhook + responses: + '200': + description: Any data can be posted to the endpoint - everything will be + passed to the WebhookEndpoint model. + /api/auth/v1/config: + get: + summary: Get configuration + tags: + - Configuration + description: | + There are many configuration options that alter the functionality + and behavior of django-allauth, some of which can also impact the + frontend. Therefore, relevant configuration options are exposed via + this endpoint. The data returned is not user/authentication + dependent. Hence, it suffices to only fetch this data once at boot + time of your application. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Configuration' + operationId: allauth_config_get + /api/auth/v1/auth/login: + post: + tags: + - 'Authentication: Account' + summary: Login + description: | + Login using a username-password or email-password combination. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Login' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + password_mismatch: + $ref: '#/components/examples/allauth.PasswordMismatch' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + '409': + description: | + Conflict. For example, when logging in when a user is already logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_login_post + /api/auth/v1/auth/signup: + post: + tags: + - 'Authentication: Account' + summary: Signup + description: | + Whether or not `username`, `email`, `phone` or combination of those are + required depends on the configuration of django-allauth. Additionally, + if a custom signup form is used there may be other custom properties + required. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Signup' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. For example, when signing up while user is logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_signup_post + /api/auth/v1/auth/email/verify: + get: + tags: + - 'Authentication: Account' + summary: Get email verification information + description: | + Obtain email verification information, given the token that was sent to + the user by email. + parameters: + - $ref: '#/components/parameters/allauth.EmailVerificationKey' + responses: + '200': + $ref: '#/components/responses/allauth.EmailVerificationInfo' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_email_verify_get + post: + tags: + - 'Authentication: Account' + summary: Verify an email + description: | + Complete the email verification process. Depending on the configuration, + email addresses are either verified by opening a link that is sent to + their email address, or, by inputting a code that is sent. On the API, + both cases are handled identically. Meaning, the required key is either + the one from the link, or, the code itself. + + Note that a status code of 401 does not imply failure. It indicates that + the email verification was successful, yet, the user is still not signed + in. For example, in case `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` is set to + `False`, a 401 is returned when verifying as part of login/signup. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.VerifyEmail' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_email_verify_post + /api/auth/v1/auth/email/verify/resend: + post: + tags: + - 'Authentication: Account' + summary: Resend email verification code + description: | + Requests a new email verification code. + Requires `ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True`. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '409': + description: | + Conflict. The email verification (by code) flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + '429': + $ref: '#/components/responses/allauth.TooManyRequests' + operationId: allauth_auth_email_verify_resend_post + /api/auth/v1/auth/phone/verify: + post: + tags: + - 'Authentication: Account' + summary: Verify a phone number + description: | + Complete the phone number verification process. Note that a status code + of 401 does not imply failure. It merely indicates that the phone number + verification was successful, yet, the user is still not signed in. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.VerifyPhone' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + '409': + description: | + Conflict. The phone verification flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_phone_verify_post + /api/auth/v1/auth/phone/verify/resend: + post: + tags: + - 'Authentication: Account' + summary: Resend phone number verification code + description: | + Requests a new phone number verification code. + Requires `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True`. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '409': + description: | + Conflict. The phone verification flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + '429': + $ref: '#/components/responses/allauth.TooManyRequests' + operationId: allauth_auth_phone_verify_resend_post + /api/auth/v1/auth/reauthenticate: + post: + tags: + - 'Authentication: Account' + summary: Reauthenticate + description: | + In order to safeguard the account, some actions require the user to be + recently authenticated. If you try to perform such an action without + having been recently authenticated, a `401` status is returned, listing + flows that can be performed to reauthenticate. One such flow is the flow + with ID `reauthenticate`, which allows for the user to input the + password. This is the endpoint related towards that flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Reauthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.IncorrectPassword' + operationId: allauth_auth_reauthenticate_post + /api/auth/v1/auth/password/request: + post: + summary: Request password + description: | + Initiates the password reset procedure. Depending on whether or not + `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED` is `True`, the procedure is + either stateless or stateful. + + In case codes are used, it is stateful, and a new + `password_reset_by_code` flow is started. In this case, on a successful + password reset request, you will receive a 401 indicating the pending + status of this flow. + + In case password reset is configured to use (stateless) links, you will + receive a 200 on a successful password reset request. + tags: + - 'Authentication: Password Reset' + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.RequestPassword' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_password_request_post + /api/auth/v1/auth/password/reset: + get: + summary: Get password reset information + description: | + Used to obtain information on and validate a password reset key. The + key passed is either the key encoded in the password reset URL that the + user has received per email, or, the password reset code in case of + `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED`. Note that in case of a code, + the number of requests you can make is limited (by + `ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS`). + tags: + - 'Authentication: Password Reset' + parameters: + - $ref: '#/components/parameters/allauth.PasswordResetKey' + responses: + '200': + $ref: '#/components/responses/allauth.PasswordResetInfo' + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + password_reset_key_invalid: + $ref: '#/components/examples/allauth.InvalidPasswordResetKey' + '409': + description: | + Conflict. There is no password reset (by code) flow pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_password_reset_get + post: + summary: Reset password + description: | + Perform the password reset, by handing over the password reset key and + the new password. After successfully completing the password reset, the + user is either logged in (in case `ACCOUNT_LOGIN_ON_PASSWORD_RESET` is + `True`), or, the user will need to proceed to the login page. In case + of the former, a `200` status code is returned, in case of the latter a + 401. + tags: + - 'Authentication: Password Reset' + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ResetPassword' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPassword' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.Authentication' + '409': + description: | + Conflict. There is no password reset (by code) flow pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_password_reset_post + /api/auth/v1/auth/provider/redirect: + post: + tags: + - 'Authentication: Providers' + summary: Provider redirect + description: | + Initiates the third-party provider authentication redirect flow. As calling + this endpoint results in a user facing redirect (302), this call is only + available in a browser, and must be called in a synchronous (non-XHR) + manner. + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderRedirect' + responses: + '302': + description: The provider authorization URL to which the client should be + redirected. + headers: + location: + schema: + type: string + description: The redirect URL. + operationId: allauth_auth_provider_redirect_post + /api/auth/v1/auth/provider/token: + post: + tags: + - 'Authentication: Providers' + summary: Provider token + description: | + Authenticates with a third-party provider using provider tokens received + by other means. For example, in case of a mobile app, the authentication + flow runs completely on the device itself, without any interaction with + the API. Then, when the (device) authentication completes and the mobile + app receives an access and/or ID token, it can hand over these tokens + via this endpoint to authenticate on the server. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderToken' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_token: + $ref: '#/components/examples/allauth.InvalidProviderToken' + '401': + description: Not authenticated, more steps are required to be completed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + operationId: allauth_auth_provider_token_post + /api/auth/v1/auth/provider/signup: + get: + tags: + - 'Authentication: Providers' + summary: Provider signup information + description: | + If, while signing up using a third-party provider account, there is + insufficient information received from the provider to automatically + complete the signup process, an additional step is needed to complete + the missing data before the user is fully signed up and authenticated. + The information available so far, such as the pending provider account, + can be retrieved via this endpoint. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.ProviderSignup' + '409': + description: | + Conflict. The provider signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_provider_signup_get + post: + tags: + - 'Authentication: Providers' + summary: Provider signup + description: | + If, while signing up using a third-party provider account, there is + insufficient information received from the provider to automatically + complete the signup process, an additional step is needed to complete + the missing data before the user is fully signed up and authenticated. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderSignup' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: Not authenticated, more steps are required to be completed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. The provider signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_provider_signup_post + /api/auth/v1/auth/2fa/authenticate: + post: + tags: + - 'Authentication: 2FA' + summary: Two-factor authentication + description: | + If, during authentication, a response with status 401 is encountered where one of the pending + flows has ID `mfa_authenticate`, that indicates that the Two-Factor Authentication stage needs to + be completed. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFAAuthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_2fa_authenticate_post + /api/auth/v1/auth/2fa/reauthenticate: + post: + tags: + - 'Authentication: 2FA' + summary: Reauthenticate using 2FA + description: | + In order to safeguard the account, some actions require the user to be + recently authenticated. If you try to perform such an action without + having been recently authenticated, a `401` status is returned, listing + flows that can be performed to reauthenticate. One such flow is the flow + with ID `mfa_reauthenticate`, which allows for the user to input an + authenticator code (e.g. TOTP or recovery code). This is the endpoint + related towards that flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFAAuthenticate' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + operationId: allauth_auth_2fa_reauthenticate_post + /api/auth/v1/auth/2fa/trust: + post: + tags: + - 'Authentication: 2FA' + summary: Trust this browser + description: | + If "Trust this browser?" is enabled (`MFA_TRUST_ENABLED`), the + `mfa_trust` flow activates after the user completes the MFA + authentication flow, offering to skip MFA for this particular + browser. This endpoint is used to complete the `mfa_trust` flow. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MFATrust' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_2fa_trust_post + /api/auth/v1/auth/webauthn/authenticate: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for 2FA + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_authenticate_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Perform 2FA using WebAuthn + parameters: [] + description: | + Perform Two-Factor Authentication using a WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.AuthenticateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_webauthn_authenticate_post + /api/auth/v1/auth/webauthn/reauthenticate: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for reauthentication + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_reauthenticate_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Reauthenticate using WebAuthn + parameters: [] + description: | + Reauthenticate the user using a WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.ReauthenticateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_auth_webauthn_reauthenticate_post + /api/auth/v1/auth/webauthn/login: + get: + tags: + - 'Authentication: WebAuthn: Login' + summary: Get WebAuthn credential request options for login + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + operationId: allauth_auth_webauthn_login_get + post: + tags: + - 'Authentication: WebAuthn: Login' + summary: Login using WebAuthn + parameters: [] + description: | + Login using a WebAuthn credential (Passkey). Both 200 and 401 can be + expected after a successful request. The 401 can, for example, occur + when the credential passed was valid, but the email attached to the + account still requires verification. + requestBody: + $ref: '#/components/requestBodies/allauth.LoginWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + operationId: allauth_auth_webauthn_login_post + /api/auth/v1/auth/webauthn/signup: + post: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Initiate the passkey signup flow + parameters: [] + description: | + You initiate the passkey signup flow by inputting (`POST`) the required properties (e.g. email) + similar to the regular account signup, except that the `password` is to be left out. + The user will then be required to verify the email address, after which WebAuthn credential + creation options can be retrieved (`GET`) and used to actually complete (`PUT`) the flow. + requestBody: + $ref: '#/components/requestBodies/allauth.PasskeySignup' + responses: + '400': + description: | + An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated, email verification pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '403': + description: | + Forbidden. For example, when signup is closed. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + '409': + description: | + Conflict. For example, when signing up while user is logged in. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_post + get: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Get passkey credential request options + parameters: [] + description: | + Returns the WebAuthn credential request options, that can be + processed using `parseRequestOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' + '409': + description: | + Conflict. For example, when the passkey signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_get + put: + tags: + - 'Authentication: WebAuthn: Signup' + summary: Complete the passkey signup flow + parameters: [] + description: | + Complete the passkey signup flow by handing over the WebAuthn credential. + requestBody: + $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_email: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + '409': + description: | + Conflict. For example, when the passkey signup flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_webauthn_signup_put + /api/auth/v1/auth/code/request: + post: + tags: + - 'Authentication: Login By Code' + summary: Request login code + description: | + Request a "special" login code that is sent to the user by email. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.RequestLoginCode' + responses: + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_email: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + pending_login_by_code: + $ref: '#/components/examples/allauth.UnauthenticatedPendingLoginByCode' + operationId: allauth_auth_code_request_post + /api/auth/v1/auth/code/confirm: + post: + tags: + - 'Authentication: Login By Code' + summary: Confirm login code + description: | + Use this endpoint to pass along the received "special" login code. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ConfirmLoginCode' + responses: + '200': + $ref: '#/components/responses/allauth.AuthenticatedByCode' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + description: | + Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + '409': + description: | + Conflict. The "login by code" flow is not pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_auth_code_confirm_post + /api/auth/v1/account/providers: + get: + tags: + - 'Account: Providers' + summary: List the connected third-party provider accounts + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.ProviderAccounts' + operationId: allauth_account_providers_get + delete: + tags: + - 'Account: Providers' + summary: | + Disconnect a third-party provider account + description: | + Disconnect a third-party provider account, returning the remaining + accounts that are still connected. The disconnect is not allowed if it + would leave the account unusable. For example, if no password was + set up yet. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ProviderAccount' + responses: + '200': + $ref: '#/components/responses/allauth.ProviderAccounts' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + no_password: + $ref: '#/components/examples/allauth.DisconnectNotAllowedNoPassword' + no_email: + $ref: '#/components/examples/allauth.DisconnectNotAllowedNoVerifiedEmail' + operationId: allauth_account_providers_delete + /api/auth/v1/account/email: + get: + tags: + - 'Account: Email' + summary: List email addresses + description: | + Retrieves the list of email addresses of the account. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_email_get + post: + tags: + - 'Account: Email' + summary: | + Add/Change email address + description: | + The following functionality is available: + + - Adding a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = False`). + - Change to a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = True`). + - Change to a new email address during the email verification process at signup (`ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True`). + + In all cases, an email verification mail will be sent containing a link or code that needs to be verified. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + '401': + $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' + '409': + description: | + Conflict. For example, when no user is authenticated and no email verification flow is pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_account_email_post + put: + tags: + - 'Account: Email' + summary: Request email verification + description: | + Requests for (another) email verification email to be sent. Note that + sending emails is rate limited, so when you send too many requests the + email will not be sent. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + '403': + description: | + Too many email verification mails were already sent. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + operationId: allauth_account_email_put + patch: + tags: + - 'Account: Email' + summary: Change primary email address + description: | + Used to change primary email address to a different one. Note that only verified email addresses + can be marked as primary. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.MarkPrimaryEmail' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + operationId: allauth_account_email_patch + delete: + tags: + - 'Account: Email' + summary: Remove an email address + description: | + Used to remove an email address. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Email' + responses: + '200': + $ref: '#/components/responses/allauth.EmailAddresses' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidEmail' + operationId: allauth_account_email_delete + /api/auth/v1/account/phone: + get: + tags: + - 'Account: Phone' + summary: Get the phone number + description: | + Retrieves the phone number of the account, if any. Note that while the + endpoint returns a list of phone numbers, at most one entry is returned. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.PhoneNumbers' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_phone_get + post: + tags: + - 'Account: Phone' + summary: | + Change the phone number + description: | + The following functionality is available: + + - Initiate the phone number change process for signed in users. + - Change to a new phone number during the phone number verification + process at signup for unauthenticated users. Note that this requires: + `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True`. + + In both cases, after posting a new phone number, proceed with the phone + verification endpoint to confirm the change of the phone number by + posting the verification code. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.Phone' + responses: + '202': + description: Phone number change process initiated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PhoneNumberChangeResponse' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + '401': + $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' + '409': + description: | + Conflict. For example, when no user is authenticated and no phone verification flow is pending. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + operationId: allauth_account_phone_post + /api/auth/v1/account/authenticators: + get: + tags: + - 'Account: 2FA' + summary: List authenticators + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Authenticators' + '401': + $ref: '#/components/responses/allauth.Authentication' + '410': + $ref: '#/components/responses/allauth.SessionGone' + operationId: allauth_account_authenticators_get + /api/auth/v1/account/authenticators/totp: + get: + tags: + - 'Account: 2FA' + summary: TOTP authenticator status + description: | + Retrieve the information about the current TOTP authenticator, if any. + parameters: [] + responses: + '404': + $ref: '#/components/responses/allauth.TOTPAuthenticatorNotFound' + '200': + $ref: '#/components/responses/allauth.TOTPAuthenticator' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_totp_get + post: + tags: + - 'Account: 2FA' + summary: Activate TOTP + description: | + The code should be provided from the consuming TOTP authenticator + application which was generated using the TOTP authenticator secret + retrieved from the TOTP authenticator status endpoint. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.SetupTOTP' + responses: + '200': + $ref: '#/components/responses/allauth.TOTPAuthenticator' + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_totp_post + delete: + tags: + - 'Account: 2FA' + summary: Deactivate TOTP + description: | + Deactivates TOTP authentication. If the user authentication is not + sufficiently recent, a reauthentication flow (`401`) will is presented. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_totp_delete + /api/auth/v1/account/authenticators/recovery-codes: + get: + tags: + - 'Account: 2FA' + summary: List recovery codes + description: | + List recovery codes. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.RecoveryCodes' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '404': + $ref: '#/components/responses/allauth.NotFound' + operationId: allauth_account_authenticators_recovery-codes_get + post: + tags: + - 'Account: 2FA' + summary: Regenerate recovery codes + parameters: [] + responses: + '400': + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + examples: + invalid_code: + $ref: '#/components/examples/allauth.CannotGenerateRecoveryCodes' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_recovery-codes_post + /api/auth/v1/account/authenticators/webauthn: + get: + tags: + - 'Account: WebAuthn' + summary: | + Get WebAuthn credential creation options + parameters: + - $ref: '#/components/parameters/allauth.PasswordLess' + description: | + Returns the WebAuthn credential creation options, that can be + processed using `parseCreationOptionsFromJSON()` on the frontend. + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnCreationOptionsResponse' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_webauthn_get + put: + tags: + - 'Account: WebAuthn' + summary: | + Rename a WebAuthn credential + description: | + You can alter the name of a WebAuthn credential by PUT'ting the ID and + name of the authenticator representing that credential. You can obtain + the credentials via the "List authenticators" endpoint. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.UpdateWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.WebAuthnAuthenticator' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_webauthn_put + delete: + tags: + - 'Account: WebAuthn' + summary: | + Delete a WebAuthn credential + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.DeleteWebAuthn' + responses: + '200': + $ref: '#/components/responses/allauth.StatusOK' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + operationId: allauth_account_authenticators_webauthn_delete + post: + tags: + - 'Account: WebAuthn' + summary: | + Add a WebAuthn credential + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' + responses: + '200': + $ref: '#/components/responses/allauth.AddWebAuthnAuthenticator' + '401': + $ref: '#/components/responses/allauth.ReauthenticationRequired' + '409': + $ref: '#/components/responses/allauth.AddAuthenticatorConflict' + operationId: allauth_account_authenticators_webauthn_post + /api/auth/v1/auth/session: + get: + tags: + - 'Authentication: Current Session' + summary: | + Get authentication status + description: | + Retrieve information about the authentication status for the current + session. + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Authenticated' + '401': + $ref: '#/components/responses/allauth.Authentication' + '410': + $ref: '#/components/responses/allauth.SessionGone' + operationId: allauth_auth_session_get + delete: + tags: + - 'Authentication: Current Session' + summary: Logout + description: | + Logs out the user from the current session. + parameters: [] + responses: + '401': + $ref: '#/components/responses/allauth.Unauthenticated' + operationId: allauth_auth_session_delete + /api/auth/v1/tokens/refresh: + post: + tags: + - Tokens + summary: | + Refresh the access token + description: | + Used to retrieve a new access token. Depending on `settings.HEADLESS_JWT_ROTATE_REFRESH_TOKEN`, + a new refresh token is returned as well. + requestBody: + $ref: '#/components/requestBodies/allauth.RefreshToken' + responses: + '200': + $ref: '#/components/responses/allauth.RefreshToken' + '400': + description: The refresh token is invalid or expired. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + operationId: allauth_tokens_refresh_post + /api/auth/v1/account/password/change: + post: + tags: + - 'Account: Password' + summary: Change password + description: | + In order to change the password of an account, the current and new + password must be provider. However, accounts that were created by + signing up using a third-party provider do not have a password set. In + that case, the current password is not required. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.ChangePassword' + responses: + '400': + $ref: '#/components/responses/allauth.Error' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_account_password_change_post + /api/auth/v1/auth/sessions: + get: + tags: + - Sessions + summary: List sessions + parameters: [] + responses: + '200': + $ref: '#/components/responses/allauth.Sessions' + operationId: allauth_auth_sessions_get + delete: + tags: + - Sessions + summary: End one or more sessions + parameters: [] + requestBody: + $ref: '#/components/requestBodies/allauth.EndSessions' + responses: + '200': + $ref: '#/components/responses/allauth.Sessions' + '401': + $ref: '#/components/responses/allauth.Authentication' + operationId: allauth_auth_sessions_delete +components: + examples: + allauth.AuthenticatedByCode: + summary: | + Authenticated by code. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: code + at: 1711555057.065702 + email: email@domain.org + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AuthenticatedByPassword: + summary: | + Authenticated by password. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AuthenticatedByPasswordAnd2FA: + summary: | + Fully authenticated using by password and 2FA. + value: + status: 200 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + meta: + is_authenticated: true + session_token: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.CannotGenerateRecoveryCodes: + summary: | + Unable to generate recovery codes. + value: + status: 400 + errors: + - message: | + You cannot deactivate two-factor authentication. + code: cannot_generate_recovery_codes + allauth.DisconnectNotAllowedNoPassword: + summary: Account without a password. + value: + status: 400 + errors: + - message: Your account has no password set up. + code: no_password + param: account + allauth.DisconnectNotAllowedNoVerifiedEmail: + summary: Account without a verified email. + value: + status: 400 + errors: + - message: Your account has no verified email address. + code: no_verified_email + param: account + allauth.IncorrectPassword: + value: + status: 400 + errors: + - message: Incorrect password. + param: password + code: incorrect_password + allauth.InvalidAuthenticatorCode: + summary: | + An error response indicating that the provided code is incorrect. + value: + status: 400 + errors: + - message: Incorrect code. + code: incorrect_code + param: code + allauth.InvalidEmail: + value: + status: 400 + errors: + - message: Enter a valid email address. + code: invalid + param: email + allauth.InvalidEmailVerificationKey: + summary: | + Email verification key invalid. + value: + status: 400 + errors: + - message: Invalid or expired key. + code: invalid + param: key + allauth.InvalidPasswordResetKey: + summary: | + Password reset key invalid. + value: + status: 400 + errors: + - message: The password reset token was invalid. + code: token_invalid + param: key + allauth.InvalidProviderToken: + summary: | + Provider token invalid. + value: + status: 400 + errors: + - message: The token was invalid. + code: invalid + param: token + allauth.PasswordMismatch: + value: + status: 400 + errors: + - message: The email address and/or password you specified are not correct. + code: email_password_mismatch + param: password + allauth.ReauthenticationRequired: + summary: | + Reauthentication required + value: + status: 401 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + flows: + - id: reauthenticate + - id: mfa_reauthenticate + meta: + is_authenticated: true + allauth.UnauthenticatedInitial: + summary: | + Unauthenticated: Initial + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + meta: + is_authenticated: false + allauth.UnauthenticatedPending2FA: + summary: | + Unauthenticated: pending 2FA + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: mfa_authenticate + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingEmailVerification: + summary: | + Unauthenticated: pending email verification + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: verify_email + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingLoginByCode: + summary: | + Unauthenticated: pending login by code + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: mfa_authenticate + - id: login_by_code + is_pending: true + meta: + is_authenticated: false + allauth.UnauthenticatedPendingProviderSignup: + summary: | + Unauthenticated: pending provider signup + value: + status: 401 + data: + flows: + - id: login + - id: signup + - id: provider_redirect + providers: + - facebook + - google + - telegram + - id: provider_token + providers: + - google + - id: provider_signup + provider: + id: google + name: Google + client_id: 123.apps.googleusercontent.com + flows: + - provider_redirect + - provider_token + is_pending: true + meta: + is_authenticated: false + allauth.User: + value: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + parameters: + allauth.EmailVerificationKey: + in: header + name: X-Email-Verification-Key + schema: + type: string + required: true + description: The email verification key + allauth.PasswordLess: + in: query + name: passwordless + required: false + schema: + type: boolean + allowEmptyValue: true + description: | + When present (regardless of its value), enables passwordless sign-in via a WebAuthn credential (Passkey), + but may enforce additional multi-factor authentication (MFA) requirements. Omit the parameter to disable. + allauth.PasswordResetKey: + in: header + name: X-Password-Reset-Key + schema: + type: string + required: true + description: The password reset key + requestBodies: + allauth.AddWebAuthnAuthenticator: + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: Master key + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.AuthenticateWebAuthn: + description: Authenticate using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.ChangePassword: + content: + application/json: + schema: + type: object + properties: + current_password: + $ref: '#/components/schemas/allauth.Password' + new_password: + type: string + description: | + The current password. + example: Aberto! + required: + - new_password + allauth.ConfirmLoginCode: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConfirmLoginCode' + allauth.DeleteWebAuthn: + content: + application/json: + schema: + type: object + properties: + authenticators: + description: | + The IDs of the authenticator that are to be deleted. + type: array + items: + $ref: '#/components/schemas/allauth.AuthenticatorID' + required: + - authenticators + allauth.Email: + content: + application/json: + schema: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.EndSessions: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.EndSessions' + allauth.Login: + description: Login. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Login' + allauth.LoginWebAuthn: + description: Login using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.MFAAuthenticate: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.MFAAuthenticate' + allauth.MFATrust: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.MFATrust' + allauth.MarkPrimaryEmail: + content: + application/json: + schema: + type: object + properties: + email: + type: string + description: | + An email address. + example: email@domain.org + primary: + type: boolean + enum: + - true + description: | + Primary flag. + required: + - email + - primary + allauth.PasskeySignup: + description: Signup using a passkey + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PasskeySignup' + allauth.Phone: + content: + application/json: + schema: + type: object + properties: + phone: + type: string + example: '+314159265359' + required: + - phone + allauth.ProviderAccount: + content: + application/json: + schema: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + account: + $ref: '#/components/schemas/allauth.ProviderAccountID' + required: + - account + - provider + allauth.ProviderRedirect: + required: true + description: | + Initiate the provider redirect flow. + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/allauth.ProviderRedirect' + allauth.ProviderSignup: + description: Provider signup. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ProviderSignup' + allauth.ProviderToken: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ProviderToken' + allauth.Reauthenticate: + description: Reauthenticate. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Reauthenticate' + allauth.ReauthenticateWebAuthn: + description: Reauthenticate using WebAuthn. + required: true + content: + application/json: + schema: + type: object + properties: + credential: + $ref: '#/components/schemas/allauth.WebAuthnCredential' + required: + - credential + allauth.RefreshToken: + content: + application/json: + schema: + type: object + properties: + refresh_token: + $ref: '#/components/schemas/allauth.RefreshToken' + required: + - refresh_token + allauth.RequestLoginCode: + description: Request a login code. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.RequestLoginCode' + allauth.RequestPassword: + description: Request password. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.RequestPassword' + allauth.ResetPassword: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ResetPassword' + allauth.SetupTOTP: + content: + application/json: + schema: + type: object + properties: + code: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - code + allauth.Signup: + description: Signup + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.Signup' + allauth.UpdateWebAuthn: + content: + application/json: + schema: + type: object + properties: + id: + $ref: '#/components/schemas/allauth.AuthenticatorID' + name: + type: string + example: Master key + allauth.VerifyEmail: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.VerifyEmail' + allauth.VerifyPhone: + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.VerifyPhone' + responses: + allauth.AddAuthenticatorConflict: + description: | + The account prohibits adding an authenticator, e.g. because of an unverified email address. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConflictResponse' + allauth.AddWebAuthnAuthenticator: + description: A WebAuthn authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + meta: + type: object + properties: + recovery_codes_generated: + type: boolean + description: | + Whether or not recovery codes where generated automatically. + required: + - status + - data + - meta + allauth.Authenticated: + description: The user is authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + allauth.AuthenticatedByCode: + description: | + Authenticated by code. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByCode' + allauth.AuthenticatedByPassword: + description: | + Authenticated by password. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByPassword' + allauth.AuthenticatedByPasswordAnd2FA: + description: | + Authenticated by password and 2FA. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticatedResponse' + examples: + authenticated: + $ref: '#/components/examples/allauth.AuthenticatedByPasswordAnd2FA' + allauth.Authentication: + description: Not authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauthenticated_initial: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + unauthenticated_pending_2fa: + $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' + unauthenticated_pending_provider_signup: + $ref: '#/components/examples/allauth.UnauthenticatedPendingProviderSignup' + unauthenticated_pending_email_verification: + $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' + reauthentication_required: + $ref: '#/components/examples/allauth.ReauthenticationRequired' + allauth.AuthenticationOrReauthentication: + description: | + The response indicates authentication or re-authentication is required. + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/allauth.AuthenticationResponse' + - $ref: '#/components/schemas/allauth.ReauthenticationResponse' + allauth.Authenticators: + description: | + List of authenticators. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.AuthenticatorList' + required: + - status + - data + allauth.Configuration: + description: | + The django-allauth configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ConfigurationResponse' + allauth.EmailAddresses: + description: | + List of email addresses. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.EmailAddress' + required: + - status + - data + allauth.EmailVerificationInfo: + description: Email verification information. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.EmailVerificationInfo' + allauth.Error: + description: An input error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ErrorResponse' + allauth.Forbidden: + description: | + A forbidden response. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ForbiddenResponse' + allauth.NotFound: + description: | + Not found. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 404 + required: + - status + allauth.PasswordResetInfo: + description: Information about the password reset key. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + user: + $ref: '#/components/schemas/allauth.User' + required: + - status + - data + allauth.PhoneNumbers: + description: | + List of phone numbers. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.PhoneNumbersResponse' + allauth.ProviderAccounts: + description: | + List of third-party provider accounts. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.ProviderAccount' + required: + - status + - data + allauth.ProviderSignup: + description: | + Information relating to the pending provider signup. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + email: + type: array + items: + $ref: '#/components/schemas/allauth.EmailAddress' + account: + $ref: '#/components/schemas/allauth.ProviderAccount' + user: + $ref: '#/components/schemas/allauth.User' + required: + - email + - account + - user + required: + - status + - data + allauth.ReauthenticationRequired: + description: | + The response indicates reauthentication is required. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.ReauthenticationResponse' + examples: + reauthentication_required: + summary: | + Reauthentication required + value: + status: 401 + data: + user: + id: 123 + display: Magic Wizard + has_usable_password: true + email: email@domain.org + username: wizard + methods: + - method: password + at: 1711555057.065702 + email: email@domain.org + - method: mfa + at: 1711555060.9375854 + id: 66 + type: totp + flows: + - id: reauthenticate + - id: mfa_reauthenticate + meta: + is_authenticated: true + allauth.RecoveryCodes: + description: | + Information on the recovery codes. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.SensitiveRecoveryCodesAuthenticator' + required: + - status + - data + allauth.RefreshToken: + description: A new access token (and optionally new refresh token). + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + access_token: + $ref: '#/components/schemas/allauth.AccessToken' + refresh_token: + $ref: '#/components/schemas/allauth.RefreshToken' + required: + - access_token + required: + - data + - status + allauth.SessionGone: + description: | + The response indicates session is invalid or no longer exists. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.SessionGoneResponse' + examples: + unauth: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + allauth.Sessions: + description: | + List of sessions. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.Session' + required: + - status + - data + allauth.StatusOK: + description: | + A success response. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + required: + - status + allauth.TOTPAuthenticator: + description: | + Information on the TOTP authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + meta: + properties: + recovery_codes_generated: + description: Whether or not recovery codes where generated automatically. + type: boolean + type: object + data: + $ref: '#/components/schemas/allauth.TOTPAuthenticator' + required: + - status + - data + allauth.TOTPAuthenticatorNotFound: + description: | + No TOTP authenticator has been set up. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 404 + meta: + type: object + properties: + secret: + type: string + description: | + A TOTP secret that can be used to setup a new authenticator. + example: J4ZKKXTK7NOVU7EPUVY23LCDV4T2QZYM + totp_url: + type: string + description: | + otpauth URI from which a QR code can be generated and scanned by OTP clients. + example: otpauth://totp/Example:alice@fsf.org?secret=JBSWY3DPEHPK3PXP&issuer=Example + required: + - secret + - totp_url + required: + - status + - meta + allauth.TooManyRequests: + description: | + Too many requests. + content: + application/json: + schema: + type: object + properties: + status: + type: integer + enum: + - 429 + required: + - status + allauth.Unauthenticated: + description: | + There is no authenticated session. + content: + application/json: + schema: + $ref: '#/components/schemas/allauth.AuthenticationResponse' + examples: + unauth: + $ref: '#/components/examples/allauth.UnauthenticatedInitial' + allauth.WebAuthnAuthenticator: + description: A WebAuthn authenticator. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + required: + - status + - data + allauth.WebAuthnCreationOptionsResponse: + description: WebAuthn credential creation options. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnCredentialCreationOptions' + required: + - status + - data + allauth.WebAuthnRequestOptionsResponse: + description: WebAuthn credential request options. + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.WebAuthnCredentialRequestOptions' + required: + - status + - data + schemas: + APISearchView: + type: object + description: Serializer for the APISearchView. + properties: + search: + type: string + search_regex: + type: boolean + default: false + search_whole: + type: boolean + default: false + search_notes: + type: boolean + default: false + limit: + type: integer + default: 1 + offset: + type: integer + default: 0 + required: + - search + AcceptOverallocatedEnum: + enum: + - reject + - accept + - trim + type: string + description: |- + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + ActionPlugin: + type: object + description: Serializer for the ActionPluginView responses. + properties: + action: + type: string + data: + type: object + additionalProperties: {} + required: + - action + - data + ActionPluginError: + type: object + description: Serializer for the ActionPluginView error responses. + properties: + error: + type: string + action: + type: string + required: + - error + Address: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + description: Select company + title: + type: string + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: + type: boolean + title: Primary address + description: Set as primary address + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + link: + type: string + format: uri + description: Link to address information (external) + maxLength: 2000 + required: + - company + - pk + - title + AddressBrief: + type: object + description: Serializer for Address Model (limited). + properties: + pk: + type: integer + readOnly: true + title: ID + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + required: + - pk + AllUnitListResponse: + type: object + description: Serializer for the AllUnitList. + properties: + default_system: + type: string + available_systems: + type: array + items: + type: string + available_units: + type: object + additionalProperties: + $ref: '#/components/schemas/Unit' + required: + - available_systems + - available_units + - default_system + Allauth.AuthenticationMethodMethodEnum: + type: string + enum: + - password + Allauth.ConflictResponseStatusEnum: + type: integer + enum: + - 409 + Allauth.ErrorResponseStatusEnum: + type: integer + enum: + - 400 + Allauth.ForbiddenResponseStatusEnum: + type: integer + enum: + - 403 + Allauth.RecoveryCodesAuthenticatorTypeEnum: + type: string + enum: + - recovery_codes + Allauth.SessionGoneResponseStatusEnum: + type: integer + enum: + - 410 + Allauth.TOTPAuthenticatorTypeEnum: + type: string + enum: + - totp + Allauth.WebAuthnAuthenticatorTypeEnum: + type: string + enum: + - webauthn + ApiToken: + type: object + description: Serializer for the ApiToken model. + properties: + created: + type: string + format: date-time + readOnly: true + expiry: + type: string + format: date + title: Expiry Date + description: Token expiry date + id: + type: integer + readOnly: true + last_seen: + type: string + format: date + nullable: true + description: Last time the token was used + name: + type: string + title: Token Name + description: Custom token name + maxLength: 100 + token: + type: string + description: |- + Provide a redacted version of the token. + + The *raw* key value should never be displayed anywhere! + readOnly: true + active: + type: boolean + description: Test if this token is active. + readOnly: true + revoked: + type: boolean + description: Token has been revoked + user: + type: integer + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + in_use: + type: boolean + description: Return True if the token is currently used to call the endpoint. + readOnly: true + required: + - active + - created + - id + - in_use + - token + - user_detail + Attachment: + type: object + description: Serializer class for the Attachment model. + properties: + pk: + type: integer + readOnly: true + title: ID + attachment: + type: string + format: uri + nullable: true + thumbnail: + type: string + format: uri + readOnly: true + nullable: true + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: + type: boolean + readOnly: true + description: True if this attachment is a valid image file + upload_date: + type: string + format: date + readOnly: true + upload_user: + type: integer + readOnly: true + nullable: true + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + tags: + type: array + items: + type: string + required: + - file_size + - is_image + - model_id + - model_type + - pk + - upload_date + - user_detail + AttachmentModelTypeEnum: + enum: + - build + - company + - manufacturerpart + - supplierpart + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + type: string + description: |- + * `build` - Build Order + * `company` - Company + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + Barcode: + type: object + description: Generic serializer for receiving barcode data. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + required: + - barcode + BarcodeAssign: + type: object + description: Serializer class for linking a barcode to an internal model. + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + repairorder: + type: integer + nullable: true + title: Repair Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + required: + - barcode + BarcodeGenerate: + type: object + description: Serializer for generating a barcode. + properties: + model: + type: string + description: Model name to generate barcode for + pk: + type: integer + description: Primary key of model object to generate barcode for + required: + - model + - pk + BarcodePOAllocate: + type: object + description: |- + Serializer for allocating items against a purchase order. + + The scanned barcode could be a Part, ManufacturerPart or SupplierPart object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + purchase_order: + type: integer + description: Purchase Order to allocate items against + required: + - barcode + - purchase_order + BarcodePOReceive: + type: object + description: |- + Serializer for receiving items against a purchase order. + + The following additional fields may be specified: + + - purchase_order: PurchaseOrder object to receive items against + - location: Location to receive items into + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + supplier: + type: integer + nullable: true + description: Supplier to receive items from + purchase_order: + type: integer + nullable: true + description: PurchaseOrder to receive items against + location: + type: integer + nullable: true + description: Location to receive items into + line_item: + type: integer + nullable: true + description: Purchase order line item to receive items against + auto_allocate: + type: boolean + default: true + description: Automatically allocate stock items to the purchase order + required: + - barcode + BarcodeSOAllocate: + type: object + description: |- + Serializr for allocating stock items to a sales order. + + The scanned barcode must map to a StockItem object + properties: + barcode: + type: string + description: Scanned barcode data + maxLength: 4095 + sales_order: + type: integer + description: Sales Order to allocate items against + line: + type: integer + nullable: true + description: Sales order line item to allocate items against + shipment: + type: integer + nullable: true + description: Sales order shipment to allocate items against + quantity: + type: integer + description: Quantity to allocate + required: + - barcode + - sales_order + BarcodeScanResult: + type: object + description: Serializer for barcode scan results. + properties: + pk: + type: integer + readOnly: true + title: ID + data: + type: string + readOnly: true + description: Barcode data + timestamp: + type: string + format: date-time + readOnly: true + description: Date and time of the barcode scan + endpoint: + type: string + readOnly: true + nullable: true + title: Path + description: URL endpoint which processed the barcode + context: + readOnly: true + nullable: true + description: Context data for the barcode scan + response: + readOnly: true + nullable: true + description: Response data from the barcode scan + result: + type: boolean + readOnly: true + description: Was the barcode scan successful? + user: + type: integer + readOnly: true + nullable: true + description: User who scanned the barcode + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + required: + - data + - pk + - result + - timestamp + - user_detail + BarcodeUnassign: + type: object + description: Serializer class for unlinking a barcode from an internal model. + properties: + build: + type: integer + nullable: true + title: Build Order + manufacturerpart: + type: integer + nullable: true + title: Manufacturer Part + supplierpart: + type: integer + nullable: true + title: Supplier Part + purchaseorder: + type: integer + nullable: true + title: Purchase Order + repairorder: + type: integer + nullable: true + title: Repair Order + returnorder: + type: integer + nullable: true + title: Return Order + salesorder: + type: integer + nullable: true + title: Sales Order + salesordershipment: + type: integer + nullable: true + title: Sales Order Shipment + transferorder: + type: integer + nullable: true + title: Transfer Order + part: + type: integer + nullable: true + stockitem: + type: integer + nullable: true + title: Stock Item + stocklocation: + type: integer + nullable: true + title: Stock Location + BlankEnum: + enum: + - '' + BomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: + type: boolean + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_min_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + substitutes: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + readOnly: true + nullable: true + validated: + type: boolean + description: This BOM item has been validated + available_stock: + type: number + format: double + readOnly: true + nullable: true + available_substitute_stock: + type: number + format: double + readOnly: true + nullable: true + available_variant_stock: + type: number + format: double + readOnly: true + nullable: true + external_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + title: In Production + can_build: + type: number + format: double + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + sub_part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Component + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + required: + - part + - pk + - sub_part + BomItemSubstitute: + type: object + description: Serializer for the BomItemSubstitute class. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_item: + type: integer + description: Parent BOM item + part: + type: integer + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + required: + - bom_item + - part + - part_detail + - pk + BomItemValidation: + type: object + description: Simple serializer for passing a single boolean field. + properties: + valid: + type: boolean + default: false + BriefUserProfile: + type: object + description: Brief serializer for the UserProfile model. + properties: + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + Build: + type: object + description: Serializes a Build object. + properties: + pk: + type: integer + readOnly: true + title: ID + title: + type: string + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: + type: string + readOnly: true + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: + type: string + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: + type: string + format: date + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: + type: string + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer + nullable: true + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + default: false + reference: + type: string + sales_order: + type: integer + nullable: true + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: + type: string + format: date + nullable: true + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + target_date: + type: string + format: date + nullable: true + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: + type: integer + readOnly: true + nullable: true + description: User who issued this build order + issued_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + responsible: + type: integer + nullable: true + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + priority: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level + required: + - barcode_hash + - completed + - creation_date + - issued_by_detail + - level + - overdue + - part + - part_detail + - part_name + - pk + - quantity + - reference + - status + BuildAllocation: + type: object + description: Serializer for allocating stock items against a build order. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildAllocationItem' + required: + - items + BuildAllocationItem: + type: object + description: A serializer for allocating a single stock item against a build + order. + properties: + build_line: + type: integer + title: Build Line Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + output: + type: integer + nullable: true + title: Build Output + required: + - build_line + - quantity + - stock_item + BuildAutoAllocation: + type: object + description: DRF serializer for auto allocating stock items against a build + order. + properties: + location: + type: integer + nullable: true + title: Source Location + description: Stock location where parts are to be sourced (leave blank to + take from any location) + exclude_location: + type: integer + nullable: true + description: Exclude stock items from this selected location + interchangeable: + type: boolean + default: false + title: Interchangeable Stock + description: Stock items in multiple locations can be used interchangeably + substitutes: + type: boolean + default: true + title: Substitute Stock + description: Allow allocation of substitute parts + optional_items: + type: boolean + default: false + description: Allocate optional BOM items to build order + item_type: + allOf: + - $ref: '#/components/schemas/ItemTypeEnum' + default: untracked + description: |- + Select item type to auto-allocate + + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + build_lines: + type: array + items: + type: integer + title: Build Lines + description: Limit allocation to these build lines (leave blank to allocate + all lines) + BuildCancel: + type: object + description: Cancel an active BuildOrder. + properties: + remove_allocated_stock: + type: boolean + default: false + title: Consume Allocated Stock + description: Consume any stock which has already been allocated to this + build + remove_incomplete_outputs: + type: boolean + default: false + description: Delete any build outputs which have not been completed + BuildComplete: + type: object + description: DRF serializer for marking a BuildOrder as complete. + properties: + accept_overallocated: + allOf: + - $ref: '#/components/schemas/AcceptOverallocatedEnum' + default: reject + title: Overallocated Stock + description: |- + How do you want to handle extra stock items assigned to the build order + + * `reject` - Not permitted + * `accept` - Accept as consumed by this build order + * `trim` - Deallocate before completing this build order + accept_unallocated: + type: boolean + default: false + description: Accept that stock items have not been fully allocated to this + build order + accept_incomplete: + type: boolean + default: false + description: Accept that the required number of build outputs have not been + completed + BuildConsume: + type: object + description: |- + Serializer for consuming allocations against a BuildOrder. + + - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. + - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. + properties: + items: + type: array + items: + $ref: '#/components/schemas/BuildConsumeAllocation' + lines: + type: array + items: + $ref: '#/components/schemas/BuildConsumeLineItem' + notes: + type: string + description: Optional notes for the stock consumption + BuildConsumeAllocation: + type: object + description: Serializer for an individual BuildItem to be consumed against a + BuildOrder. + properties: + build_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - build_item + - quantity + BuildConsumeLineItem: + type: object + description: Serializer for an individual BuildLine to be consumed against a + BuildOrder. + properties: + build_line: + type: integer + required: + - build_line + BuildItem: + type: object + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + build_line: + type: integer + nullable: true + install_into: + type: integer + nullable: true + description: Destination stock item + stock_item: + type: integer + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: + type: integer + readOnly: true + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + stock_item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Stock Item + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + install_into_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Install Into + bom_reference: + type: string + readOnly: true + required: + - bom_reference + - build + - location + - pk + - quantity + - stock_item + BuildLine: + type: object + description: Serializer for a BuildItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + description: Build object + bom_item: + type: integer + readOnly: true + quantity: + type: number + format: double + consumed: + type: number + format: double + allocations: + type: array + items: + $ref: '#/components/schemas/BuildItem' + readOnly: true + nullable: true + part: + type: integer + readOnly: true + build_reference: + type: string + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: + type: number + format: double + readOnly: true + in_production: + type: number + format: double + readOnly: true + scheduled_to_build: + type: number + format: double + readOnly: true + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: + type: number + format: double + readOnly: true + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true + nullable: true + title: BOM Item + assembly_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + required: + - allocated + - allow_variants + - available_stock + - available_substitute_stock + - available_variant_stock + - bom_item + - build + - build_reference + - consumable + - consumed + - external_stock + - in_production + - inherited + - on_order + - optional + - part + - pk + - quantity + - reference + - scheduled_to_build + - testable + - trackable + BuildOutput: + type: object + description: |- + Serializer for a "BuildOutput". + + Note that a "BuildOutput" is really just a StockItem which is "in production"! + properties: + output: + type: integer + title: Build Output + required: + - output + BuildOutputComplete: + type: object + description: DRF serializer for completing one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: + type: integer + description: Location for completed build outputs + status_custom_key: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + title: Status + accept_incomplete_allocation: + type: boolean + default: false + description: Complete outputs if stock has not been fully allocated + notes: + type: string + required: + - location + - outputs + BuildOutputCreate: + type: object + description: |- + Serializer for creating a new BuildOutput against a BuildOrder. + + URL pattern is "/api/build//create-output/", where is the PK of a Build. + + The Build object is provided to the serializer context. + properties: + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output + batch_code: + type: string + description: Batch code for this build output + serial_numbers: + type: string + description: Enter serial numbers for build outputs + location: + type: integer + nullable: true + description: Stock location for build output + auto_allocate: + type: boolean + nullable: true + default: false + title: Auto Allocate Serial Numbers + description: Automatically allocate required items with matching serial + numbers + required: + - quantity + BuildOutputDelete: + type: object + description: DRF serializer for deleting (cancelling) one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutput' + required: + - outputs + BuildOutputQuantity: + type: object + description: Build output with quantity field. + properties: + output: + type: integer + title: Build Output + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Enter quantity for build output + required: + - output + BuildOutputScrap: + type: object + description: Scrapping one or more build outputs. + properties: + outputs: + type: array + items: + $ref: '#/components/schemas/BuildOutputQuantity' + location: + type: integer + description: Stock location for scrapped outputs + discard_allocations: + type: boolean + default: false + description: Discard any stock allocations for scrapped outputs + notes: + type: string + description: Reason for scrapping build output(s) + required: + - location + - notes + - outputs + BuildStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + BuildUnallocation: + type: object + description: |- + DRF serializer for unallocating stock from a BuildOrder. + + Allocated stock can be unallocated with a number of filters: + + - output: Filter against a particular build output (blank = untracked stock) + - bom_item: Filter against a particular BOM line item + properties: + build_line: + type: integer + nullable: true + output: + type: integer + nullable: true + title: Build output + BulkRequest: + type: object + description: Parameters for selecting items for bulk operations. + properties: + items: + type: array + items: + type: integer + title: A list of primary key values + filters: + type: object + additionalProperties: {} + title: A dictionary of filter values + Category: + type: object + description: Serializer for PartCategory. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + default_location: + type: integer + nullable: true + description: Default location for parts in this category + default_keywords: + type: string + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: + type: integer + readOnly: true + parent: + type: integer + nullable: true + title: Parent Category + description: Parent part category + part_count: + type: integer + readOnly: true + nullable: true + title: Parts + subcategories: + type: integer + readOnly: true + nullable: true + pathstring: + type: string + readOnly: true + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. + readOnly: true + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string + nullable: true + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer + readOnly: true + nullable: true + required: + - level + - name + - pathstring + - pk + - starred + CategoryParameterTemplate: + type: object + description: Serializer for the PartCategoryParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + category: + type: integer + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + template: + type: integer + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + default_value: + type: string + description: Default Parameter Value + maxLength: 500 + required: + - category + - pk + - template + - template_detail + CategoryTree: + type: object + description: Serializer for PartCategory tree. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + parent: + type: integer + nullable: true + icon: + type: string + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + subcategories: + type: integer + readOnly: true + required: + - name + - pk + - subcategories + ColorEnum: + enum: + - primary + - secondary + - success + - danger + - warning + - info + - dark + type: string + description: |- + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + Company: + type: object + description: Serializer for Company object (full detail). + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + website: + type: string + format: uri + description: Company website URL + maxLength: 2000 + phone: + type: string + title: Phone number + description: Contact phone number + maxLength: 50 + email: + type: string + format: email + nullable: true + default: '' + currency: + type: string + description: |- + Default currency used for this supplier + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + contact: + type: string + description: Point of contact + maxLength: 100 + link: + type: string + format: uri + description: Link to external company information + maxLength: 2000 + image: + type: string + format: uri + nullable: true + active: + type: boolean + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parts_supplied: + type: integer + readOnly: true + parts_manufactured: + type: integer + readOnly: true + primary_address: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + required: + - currency + - name + - parts_manufactured + - parts_supplied + - pk + CompanyBrief: + type: object + description: Serializer for Company object (limited detail). + properties: + pk: + type: integer + readOnly: true + title: ID + active: + type: boolean + description: Is this company active? + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + image: + type: string + format: uri + readOnly: true + thumbnail: + type: string + readOnly: true + currency: + type: string + readOnly: true + description: Default currency used for this company + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + required: + - currency + - image + - name + - pk + - thumbnail + Config: + type: object + description: |- + Serializer for the InvenTree configuration. + + This is a read-only serializer. + properties: + key: + type: string + readOnly: true + env_var: + type: string + readOnly: true + nullable: true + config_key: + type: string + readOnly: true + nullable: true + source: + type: string + readOnly: true + accessed: + type: string + format: date-time + readOnly: true + required: + - accessed + - key + - source + ConfigTypeEnum: + enum: + - M + - D + type: string + description: |- + * `M` - Machine + * `D` - Driver + Contact: + type: object + description: Serializer class for the Contact model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + company_name: + type: string + readOnly: true + name: + type: string + maxLength: 100 + phone: + type: string + maxLength: 100 + email: + type: string + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + required: + - company + - company_name + - name + - pk + ContentType: + type: object + description: Serializer for ContentType models. + properties: + pk: + type: integer + readOnly: true + app_label: + type: string + readOnly: true + model: + type: string + readOnly: true + app_labeled_name: + type: string + readOnly: true + is_plugin: + type: boolean + description: Return True if the model is a plugin model. + readOnly: true + required: + - app_label + - app_labeled_name + - is_plugin + - model + - pk + ConvertStockItem: + type: object + description: DRF serializer class for converting a StockItem to a valid variant + part. + properties: + part: + type: integer + description: Select part to convert stock item into + required: + - part + CurrencyExchange: + type: object + description: |- + Serializer for a Currency Exchange request. + + It's only purpose is describing the results correctly in the API schema right now. + properties: + base_currency: + type: string + readOnly: true + exchange_rates: + type: object + additionalProperties: + type: number + format: double + updated: + type: string + format: date-time + readOnly: true + required: + - base_currency + - exchange_rates + - updated + CustomState: + type: object + description: Serializer for the custom state model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: + type: string + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: + type: integer + nullable: true + description: Model this state is associated with + model_name: + type: string + readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' + required: + - key + - label + - logical_key + - model_name + - name + - pk + - reference_status + CustomUnit: + type: object + description: DRF serializer for CustomUnit model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Unit name + maxLength: 50 + symbol: + type: string + description: Optional unit symbol + maxLength: 10 + definition: + type: string + description: Unit definition + maxLength: 50 + required: + - definition + - name + - pk + Customize: + type: object + description: Serializer for customize field. + properties: + logo: + type: string + splash: + type: string + login_message: + type: string + nullable: true + navbar_message: + type: string + nullable: true + disable_theme_storage: + type: boolean + default: false + required: + - login_message + - logo + - navbar_message + - splash + DataImportAcceptRow: + type: object + description: Serializer for accepting rows of data. + properties: + rows: + type: array + items: + type: integer + title: Rows + description: List of row IDs to accept + required: + - rows + DataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + column: + type: string + maxLength: 100 + field: + type: string + readOnly: true + label: + type: string + readOnly: true + description: + type: string + readOnly: true + required: + - description + - field + - label + - pk + - session + DataImportRow: + type: object + description: Serializer for the DataImportRow model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + row_index: + type: integer + readOnly: true + row_data: + readOnly: true + nullable: true + title: Original row data + data: + nullable: true + errors: + readOnly: true + nullable: true + valid: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + required: + - complete + - pk + - row_index + - session + - valid + DataImportSession: + type: object + description: Serializer for the DataImportSession model. + properties: + pk: + type: integer + readOnly: true + title: ID + timestamp: + type: string + format: date-time + readOnly: true + data_file: + type: string + format: uri + update_records: + type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' + readOnly: true + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + columns: + readOnly: true + nullable: true + column_mappings: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: + type: integer + readOnly: true + completed_row_count: + type: integer + readOnly: true + required: + - available_fields + - column_mappings + - completed_row_count + - data_file + - model_type + - pk + - row_count + - status + - timestamp + - user_detail + DataImportSessionModelTypeEnum: + enum: + - projectcode + - inventreecustomuserstatemodel + - customunit + - parametertemplate + - parameter + - partcategory + - parttesttemplate + - partsellpricebreak + - part + - bomitem + - partcategoryparametertemplate + - address + - company + - contact + - manufacturerpart + - supplierpart + - supplierpricebreak + - stockitemtestresult + - stockitem + - stocklocation + - stockitemtracking + - purchaseorder + - purchaseorderlineitem + - purchaseorderextraline + - salesorder + - salesorderlineitem + - salesordershipment + - salesorderextraline + - returnorder + - returnorderlineitem + - returnorderextraline + - transferorder + - transferorderlineitem + type: string + description: |- + * `projectcode` - Project Code + * `inventreecustomuserstatemodel` - Custom State + * `customunit` - Custom Unit + * `parametertemplate` - Parameter Template + * `parameter` - Parameter + * `partcategory` - Part Category + * `parttesttemplate` - Part Test Template + * `partsellpricebreak` - Part Sale Price Break + * `part` - Part + * `bomitem` - BOM Item + * `partcategoryparametertemplate` - Part Category Parameter Template + * `address` - Address + * `company` - Company + * `contact` - Contact + * `manufacturerpart` - Manufacturer Part + * `supplierpart` - Supplier Part + * `supplierpricebreak` - Supplier Price Break + * `stockitemtestresult` - Stock Item Test Result + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + * `stockitemtracking` - Stock Item Tracking + * `purchaseorder` - Purchase Order + * `purchaseorderlineitem` - Purchase Order Line Item + * `purchaseorderextraline` - Purchase Order Extra Line + * `salesorder` - Sales Order + * `salesorderlineitem` - Sales Order Line Item + * `salesordershipment` - Sales Order Shipment + * `salesorderextraline` - Sales Order Extra Line + * `returnorder` - Return Order + * `returnorderlineitem` - Return Order Line Item + * `returnorderextraline` - Return Order Extra Line + * `transferorder` - Transfer Order + * `transferorderlineitem` - Transfer Order Line Item + DataImportSessionStatusEnum: + enum: + - 0 + - 10 + - 20 + - 30 + - 40 + type: integer + description: |- + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + DataImporterModel: + type: object + description: Model references to map info that might get imported. + properties: + serializer: + type: string + readOnly: true + model_type: + type: string + readOnly: true + api_url: + type: string + format: uri + readOnly: true + nullable: true + required: + - model_type + - serializer + DataOutput: + type: object + description: Serializer for the DataOutput model. + properties: + pk: + type: integer + readOnly: true + title: ID + created: + type: string + format: date + readOnly: true + user: + type: integer + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + total: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + progress: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + complete: + type: boolean + output_type: + type: string + nullable: true + maxLength: 100 + template_name: + type: string + nullable: true + maxLength: 100 + plugin: + type: string + nullable: true + maxLength: 100 + output: + type: string + format: uri + readOnly: true + nullable: true + errors: + nullable: true + required: + - created + - pk + - user_detail + DefaultLocation: + type: object + description: |- + Brief serializer for a StockLocation object. + + Defined here, rather than stock.serializers, to negotiate circular imports. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + pathstring: + type: string + title: Path + description: Path + maxLength: 250 + required: + - name + - pk + DirectionEnum: + enum: + - I + - O + type: string + description: |- + * `I` - Inbound + * `O` - Outbound + DuplicateOrder: + type: object + description: Serializer for specifying options when duplicating an order. + properties: + order_id: + type: integer + description: ID of the order to duplicate + copy_lines: + type: boolean + default: true + description: Copy line items from the original order + copy_extra_lines: + type: boolean + default: true + description: Copy extra line items from the original order + copy_parameters: + type: boolean + default: true + description: Copy order parameters from the original order + required: + - order_id + DuplicatePart: + type: object + description: |- + Serializer for specifying options when duplicating a Part. + + The fields in this serializer control how the Part is duplicated. + properties: + part: + type: integer + title: Original Part + description: Select original part to duplicate + copy_image: + type: boolean + default: false + description: Copy image from original part + copy_bom: + type: boolean + default: false + description: Copy bill of materials from original part + copy_parameters: + type: boolean + default: false + description: Copy parameter data from original part + copy_notes: + type: boolean + default: true + description: Copy notes from original part + copy_tests: + type: boolean + default: false + description: Copy test templates from original part + required: + - part + EmailMessage: + type: object + description: Serializer for the EmailMessage model. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Global ID + description: Unique identifier for this message + global_id: + type: string + format: uuid + readOnly: true + description: Unique identifier for this message + message_id_key: + type: string + nullable: true + title: Message ID + description: Identifier for this message (might be supplied by external + system) + maxLength: 250 + thread_id_key: + type: string + nullable: true + title: Thread ID + description: Identifier for this message thread (might be supplied by external + system) + maxLength: 250 + thread: + type: string + format: uuid + description: Linked thread for this message + nullable: true + subject: + type: string + maxLength: 250 + body: + type: string + to: + type: string + format: email + maxLength: 254 + sender: + type: string + format: email + maxLength: 254 + status: + nullable: true + oneOf: + - $ref: '#/components/schemas/EmailMessageStatusEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + timestamp: + type: string + format: date-time + readOnly: true + headers: + nullable: true + full_message: + type: string + nullable: true + direction: + nullable: true + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + priority: + allOf: + - $ref: '#/components/schemas/PriorityEnum' + minimum: -9223372036854775808 + maximum: 9223372036854775807 + error_code: + type: string + nullable: true + maxLength: 50 + error_message: + type: string + nullable: true + error_timestamp: + type: string + format: date-time + nullable: true + delivery_options: + nullable: true + required: + - body + - global_id + - pk + - priority + - sender + - subject + - timestamp + - to + EmailMessageStatusEnum: + enum: + - A + - S + - F + - D + - R + - C + type: string + description: |- + * `A` - Announced + * `S` - Sent + * `F` - Failed + * `D` - Delivered + * `R` - Read + * `C` - Confirmed + ErrorMessage: + type: object + description: DRF serializer for server error messages. + properties: + when: + type: string + format: date-time + readOnly: true + info: + type: string + readOnly: true + data: + type: string + readOnly: true + nullable: true + path: + type: string + format: uri + readOnly: true + nullable: true + maxLength: 200 + pk: + type: integer + readOnly: true + title: ID + required: + - info + - pk + - when + ExtendedUser: + type: object + description: Serializer for a User with a bit more info. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + required: + - email + - first_name + - groups + - last_name + - pk + - profile + - username + FailedTask: + type: object + description: Serializer for an individual failed task object. + properties: + pk: + type: string + readOnly: true + name: + type: string + readOnly: true + description: Optional human-readable name for lookup and display. + func: + type: string + title: Function + description: Dotted import path to the callable, e.g. myapp.tasks.job. + maxLength: 256 + args: + type: string + readOnly: true + nullable: true + title: Arguments + description: Pickled positional arguments (tuple). + kwargs: + type: string + readOnly: true + nullable: true + title: Keyword arguments + description: Pickled keyword arguments (dict). + started: + type: string + format: date-time + readOnly: true + title: Started at + description: When the worker started executing the task. + stopped: + type: string + format: date-time + readOnly: true + title: Stopped at + description: When the worker finished (success or failure). + attempt_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: How many times execution was attempted. + result: + type: string + required: + - func + - name + - pk + - result + - started + - stopped + Flag: + type: object + description: Serializer for feature flags. + properties: + key: + type: string + readOnly: true + state: + type: string + readOnly: true + conditions: + type: array + items: + type: object + additionalProperties: {} + readOnly: true + nullable: true + required: + - key + - state + FlowsEnum: + type: string + enum: + - provider_redirect + - provider_token + GenerateBatchCode: + type: object + description: |- + Serializer for generating a batch code. + + Any of the provided write-only fields can be used for additional context. + properties: + batch_code: + type: string + readOnly: true + description: Generated batch code + build_order: + type: integer + nullable: true + description: Select build order + item: + type: integer + nullable: true + title: Stock Item + description: Select stock item to generate batch code for + location: + type: integer + nullable: true + description: Select location to generate batch code for + part: + type: integer + nullable: true + description: Select part to generate batch code for + purchase_order: + type: integer + nullable: true + description: Select purchase order + quantity: + type: number + format: double + nullable: true + description: Enter quantity for batch code + required: + - batch_code + GenerateSerialNumber: + type: object + description: |- + Serializer for generating one or multiple serial numbers. + + Any of the provided write-only fields can be used for additional context. + + Note that in the case where multiple serial numbers are required, + the "serial_number" field will return a string with multiple serial numbers + separated by a comma. + properties: + serial_number: + type: string + readOnly: true + nullable: true + description: Generated serial number + part: + type: integer + nullable: true + description: Select part to generate serial number for + quantity: + type: integer + default: 1 + description: Quantity of serial numbers to generate + GenericStateClass: + type: object + description: API serializer for generic state class information. + properties: + status_class: + type: string + readOnly: true + title: Class + values: + type: object + additionalProperties: + $ref: '#/components/schemas/GenericStateValue' + required: + - status_class + - values + GenericStateValue: + type: object + description: API serializer for generic state information. + properties: + key: + type: integer + logical_key: + type: string + name: + type: string + label: + type: string + color: + type: string + custom: + type: boolean + required: + - key + - label + - name + GetAuthToken: + type: object + description: Serializer for the GetAuthToken API endpoint. + properties: + token: + type: string + readOnly: true + name: + type: string + expiry: + type: string + format: date + readOnly: true + required: + - expiry + - name + - token + GetSimpleLogin: + type: object + description: Serializer for the simple login view. + properties: + email: + type: string + required: + - email + GlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable + readOnly: true + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - read_only + - typ + - type + - units + - value + Group: + type: object + description: Serializer for a 'Group'. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + maxLength: 150 + permissions: + type: object + additionalProperties: {} + description: Return a list of permissions associated with the group. + readOnly: true + nullable: true + roles: + type: array + items: + $ref: '#/components/schemas/RuleSet' + readOnly: true + nullable: true + users: + type: array + items: + $ref: '#/components/schemas/User' + readOnly: true + nullable: true + required: + - name + - pk + HealthCheckStatus: + type: object + description: Status of the overall system health. + properties: + status: + allOf: + - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' + readOnly: true + default: ok + description: |- + Health status of the InvenTree server + + * `ok` - ok + * `loading` - loading + required: + - status + HealthCheckStatusStatusEnum: + enum: + - ok + - loading + type: string + description: |- + * `ok` - ok + * `loading` - loading + Icon: + type: object + description: Serializer for an icon. + properties: + name: + type: string + category: + type: string + tags: + type: array + items: + type: string + variants: + type: object + additionalProperties: + type: string + required: + - category + - name + - tags + - variants + IconPackage: + type: object + description: Serializer for a list of icons. + properties: + name: + type: string + prefix: + type: string + fonts: + type: object + additionalProperties: + type: string + icons: + type: object + additionalProperties: + $ref: '#/components/schemas/Icon' + required: + - fonts + - icons + - name + - prefix + IdEnum: + type: string + enum: + - login + - login_by_code + - mfa_authenticate + - mfa_reauthenticate + - provider_redirect + - provider_signup + - provider_token + - reauthenticate + - signup + - verify_email + - verify_phone + ImportParameter: + type: object + description: Serializer for a ImportParameter. + properties: + name: + type: string + value: + type: string + parameter_template: + type: integer + nullable: true + description: Return the ID of the parameter template if available. + readOnly: true + on_category: + type: boolean + required: + - name + - on_category + - value + ImportRequest: + type: object + description: Serializer for the import request. + properties: + plugin: + type: string + supplier: + type: string + part_import_id: + type: string + category_id: + type: integer + nullable: true + part_id: + type: integer + nullable: true + required: + - part_import_id + - plugin + - supplier + ImportResult: + type: object + description: Serializer for the import result. + properties: + part_id: + type: integer + part_detail: + $ref: '#/components/schemas/Part' + manufacturer_part_id: + type: integer + supplier_part_id: + type: integer + pricing: + type: array + items: + type: array + items: + type: number + format: double + minLength: 2 + maxLength: 2 + description: Return the pricing data as a dictionary. + readOnly: true + parameters: + type: array + items: + $ref: '#/components/schemas/ImportParameter' + required: + - manufacturer_part_id + - parameters + - part_detail + - part_id + - pricing + - supplier_part_id + InfoApi: + type: object + description: InvenTree server information - some information might be blanked + if called without elevated credentials. + properties: + server: + type: string + readOnly: true + id: + type: string + readOnly: true + nullable: true + version: + type: string + readOnly: true + instance: + type: string + readOnly: true + apiVersion: + type: integer + readOnly: true + worker_running: + type: boolean + readOnly: true + worker_count: + type: integer + readOnly: true + worker_pending_tasks: + type: integer + readOnly: true + plugins_enabled: + type: boolean + readOnly: true + plugins_install_disabled: + type: boolean + readOnly: true + active_plugins: + readOnly: true + email_configured: + type: boolean + readOnly: true + debug_mode: + type: boolean + readOnly: true + docker_mode: + type: boolean + readOnly: true + default_locale: + type: string + readOnly: true + customize: + allOf: + - $ref: '#/components/schemas/Customize' + readOnly: true + system_health: + type: boolean + readOnly: true + database: + type: string + readOnly: true + platform: + type: string + readOnly: true + installer: + type: string + readOnly: true + target: + type: string + readOnly: true + nullable: true + django_admin: + type: string + readOnly: true + settings: + allOf: + - $ref: '#/components/schemas/Settings' + readOnly: true + required: + - active_plugins + - apiVersion + - customize + - database + - debug_mode + - default_locale + - django_admin + - docker_mode + - email_configured + - installer + - instance + - platform + - plugins_enabled + - plugins_install_disabled + - server + - settings + - system_health + - version + - worker_count + - worker_pending_tasks + - worker_running + InitialStock: + type: object + description: Serializer for creating initial stock quantity. + properties: + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + title: Initial Stock Quantity + description: Specify initial stock quantity for this Part. If quantity is + zero, no stock is added. + location: + type: integer + nullable: true + title: Initial Stock Location + description: Specify initial stock location for this Part + required: + - quantity + InitialSupplier: + type: object + description: Serializer for adding initial supplier / manufacturer information. + properties: + supplier: + type: integer + nullable: true + description: Select supplier (or leave blank to skip) + sku: + type: string + description: Supplier stock keeping unit + maxLength: 100 + manufacturer: + type: integer + nullable: true + description: Select manufacturer (or leave blank to skip) + mpn: + type: string + description: Manufacturer part number + maxLength: 100 + InstallStockItem: + type: object + description: Serializer for installing a stock item into a given part. + properties: + stock_item: + type: integer + description: Select stock item to install + quantity: + type: integer + minimum: 1 + default: 1 + title: Quantity to Install + description: Enter the quantity of items to install + note: + type: string + description: Add transaction note (optional) + required: + - stock_item + IsTrueEnum: + type: boolean + enum: + - true + ItemTypeEnum: + enum: + - all + - untracked + - tracked + type: string + description: |- + * `all` - All Items + * `untracked` - Untracked Items + * `tracked` - Tracked Items + LabelPrint: + type: object + description: Serializer class for printing a label. + properties: + template: + type: integer + description: Select label template + plugin: + type: string + title: Printing Plugin + description: Select plugin to use for label printing + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report + required: + - items + - template + LabelTemplate: + type: object + description: Serializer class for label template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm + required: + - description + - model_type + - name + - pk + - revision + - template + LicenseView: + type: object + description: Serializer for license information. + properties: + backend: + type: array + items: {} + readOnly: true + description: Backend licenses texts + frontend: + type: array + items: {} + readOnly: true + description: Frontend licenses texts + required: + - backend + - frontend + Link: + type: object + description: Serializer for all possible links. + properties: + doc: + type: string + format: uri + code: + type: string + format: uri + app: + type: string + format: uri + bug: + type: string + format: uri + required: + - app + - bug + - code + - doc + LocatePlugin: + type: object + description: Serializer for the LocatePluginView API endpoint. + properties: + plugin: + type: string + description: Plugin to use for location identification + item: + type: integer + description: StockItem to identify + location: + type: integer + description: StockLocation to identify + required: + - plugin + Location: + type: object + description: Detailed information about a stock location. + properties: + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + name: + type: string + description: Name + maxLength: 100 + level: + type: integer + readOnly: true + description: + type: string + description: Description (optional) + maxLength: 250 + parent: + type: integer + nullable: true + title: Parent Location + description: Parent stock location + pathstring: + type: string + readOnly: true + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + items: + type: integer + readOnly: true + title: Stock Items + sublocations: + type: integer + readOnly: true + owner: + type: integer + nullable: true + description: Select Owner + icon: + type: string + readOnly: true + custom_icon: + type: string + nullable: true + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: + type: integer + nullable: true + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' + readOnly: true + nullable: true + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + required: + - barcode_hash + - icon + - items + - level + - name + - pathstring + - pk + - sublocations + LocationBrief: + type: object + description: Provides a brief serializer for a StockLocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + pathstring: + type: string + title: Path + description: Path + maxLength: 250 + required: + - name + - pk + LocationTree: + type: object + description: Serializer for a simple tree view. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + parent: + type: integer + nullable: true + icon: + type: string + description: |- + Get the current icon used for this location. + + The icon field on this model takes precedences over the possibly assigned stock location type + readOnly: true + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + sublocations: + type: integer + readOnly: true + required: + - icon + - name + - pk + - sublocations + LoginMethodsEnum: + type: string + enum: + - email + - username + MachineConfig: + type: object + description: Serializer for a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + readOnly: true + description: Type of machine + driver: + type: string + readOnly: true + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + required: + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type + - name + - pk + - properties + - restart_required + - status + - status_text + MachineConfigCreate: + type: object + description: Serializer for creating a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + description: Type of machine + maxLength: 255 + driver: + type: string + description: Driver used for the machine + maxLength: 255 + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + required: + - driver + - initialized + - is_driver_available + - machine_errors + - machine_type + - name + - pk + - properties + - restart_required + - status + - status_text + MachineDriver: + type: object + description: Machine drivers. + properties: + slug: + type: string + pattern: ^[-a-zA-Z0-9_]+$ + name: + type: string + description: + type: string + provider_file: + type: string + description: File that contains the class definition. + readOnly: true + provider_plugin: + type: object + additionalProperties: {} + nullable: true + description: Plugin(s) that contain(s) the class definition. + readOnly: true + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. + readOnly: true + machine_type: + type: string + readOnly: true + pattern: ^[-a-zA-Z0-9_]+$ + driver_errors: + type: array + items: + type: string + description: Errors registered against driver. + readOnly: true + required: + - description + - driver_errors + - is_builtin + - machine_type + - name + - provider_file + - slug + MachineProperty: + type: object + description: Machine Properties are set by the driver/machine to represent specific + state. + properties: + key: + type: string + description: Key of the property + value: + type: string + description: Value of the property + group: + type: string + description: Grouping of the property + type: + allOf: + - $ref: '#/components/schemas/MachinePropertyTypeEnum' + default: str + description: |- + Type of the property + + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + max_progress: + type: integer + nullable: true + description: Maximum value for progress type, required if type=progress + required: + - key + - value + MachinePropertyTypeEnum: + enum: + - str + - bool + - progress + - int + - float + type: string + description: |- + * `str` - str + * `bool` - bool + * `progress` - progress + * `int` - int + * `float` - float + MachineRegistryError: + type: object + description: Machine registry error. + properties: + message: + type: string + required: + - message + MachineRegistryStatus: + type: object + description: Machine registry status, showing all errors that were registered. + properties: + registry_errors: + type: array + items: + $ref: '#/components/schemas/MachineRegistryError' + required: + - registry_errors + MachineRestart: + type: object + description: Serializer for the machine restart response. + properties: + ok: + type: boolean + required: + - ok + MachineSetting: + type: object + description: Serializer for the MachineSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + config_type: + allOf: + - $ref: '#/components/schemas/ConfigTypeEnum' + readOnly: true + required: + - choices + - config_type + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - required + - typ + - type + - units + - value + MachineType: + type: object + description: Available machine types. + properties: + slug: + type: string + pattern: ^[-a-zA-Z0-9_]+$ + name: + type: string + description: + type: string + provider_file: + type: string + description: File that contains the class definition. + readOnly: true + provider_plugin: + type: object + additionalProperties: {} + nullable: true + description: Plugin(s) that contain(s) the class definition. + readOnly: true + is_builtin: + type: boolean + description: Indicates if the machine type is build into the InvenTree source + code. + readOnly: true + required: + - description + - is_builtin + - name + - provider_file + - slug + ManufacturerPart: + type: object + description: Serializer for ManufacturerPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + title: Base Part + description: Select part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + pretty_name: + type: string + readOnly: true + nullable: true + manufacturer: + type: integer + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + description: + type: string + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number + maxLength: 100 + link: + type: string + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + required: + - manufacturer + - part + - pk + MeUser: + type: object + description: API serializer specifically for the 'me' endpoint. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + is_staff: + type: boolean + readOnly: true + title: Staff + description: Does this user have staff permissions + is_superuser: + type: boolean + readOnly: true + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + readOnly: true + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/UserProfile' + readOnly: true + required: + - email + - first_name + - groups + - is_active + - is_staff + - is_superuser + - last_name + - pk + - profile + - username + Metadata: + type: object + description: Serializer class for model metadata API access. + properties: + metadata: {} + required: + - metadata + ModelTypeF01Enum: + enum: + - build.build + - company.company + - company.manufacturerpart + - company.supplierpart + - order.purchaseorder + - order.repairorder + - order.returnorder + - order.salesorder + - order.salesordershipment + - order.transferorder + - part.part + - stock.stocklocation + type: string + description: |- + * `build.build` - Build Order + * `company.company` - Company + * `company.manufacturerpart` - Manufacturer Part + * `company.supplierpart` - Supplier Part + * `order.purchaseorder` - Purchase Order + * `order.repairorder` - Repair Order + * `order.returnorder` - Return Order + * `order.salesorder` - Sales Order + * `order.salesordershipment` - Sales Order Shipment + * `order.transferorder` - Transfer Order + * `part.part` - Part + * `stock.stocklocation` - Stock Location + NameEnum: + enum: + - admin + - part_category + - part + - bom + - stock_location + - stock + - build + - purchase_order + - sales_order + - return_order + - transfer_order + - repair_order + type: string + description: |- + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + NewsFeedEntry: + type: object + description: Serializer for the NewsFeedEntry model. + properties: + pk: + type: integer + readOnly: true + title: ID + feed_id: + type: string + title: Id + maxLength: 250 + title: + type: string + maxLength: 250 + link: + type: string + format: uri + maxLength: 250 + published: + type: string + format: date-time + author: + type: string + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean + required: + - author + - feed_id + - link + - pk + - published + - read + - summary + - title + NotesImage: + type: object + description: Serializer for the NotesImage model. + properties: + pk: + type: integer + readOnly: true + title: ID + image: + type: string + format: uri + user: + type: integer + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + model_type: + type: string + nullable: true + description: Target model type for this image + maxLength: 100 + model_id: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + nullable: true + description: Target model ID for this image + required: + - date + - image + - pk + NotificationMessage: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. + readOnly: true + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: + type: integer + readOnly: true + category: + type: string + readOnly: true + name: + type: string + readOnly: true + message: + type: string + readOnly: true + nullable: true + creation: + type: string + format: date-time + readOnly: true + age: + type: integer + description: Age of the message in seconds. + readOnly: true + age_human: + type: string + description: Humanized age. + readOnly: true + read: + type: boolean + required: + - age + - age_human + - category + - creation + - name + - pk + - read + - source + - target + - user + NullEnum: + enum: + - null + ObservabilityEnd: + type: object + description: Serializer for observability end endpoint. + properties: + traceid: + type: string + description: Trace ID to end + maxLength: 128 + service: + type: string + description: Service name + maxLength: 128 + required: + - service + - traceid + OutcomeEnum: + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + - 60 + type: integer + description: |- + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + Owner: + type: object + description: Serializer for an "Owner" (either a "user" or a "group"). + properties: + pk: + type: integer + readOnly: true + title: ID + owner_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + nullable: true + owner_model: + type: string + readOnly: true + name: + type: string + readOnly: true + label: + type: string + readOnly: true + required: + - label + - name + - owner_model + - pk + PageSizeEnum: + enum: + - A4 + - A3 + - Legal + - Letter + type: string + description: |- + * `A4` - A4 + * `A3` - A3 + * `Legal` - Legal + * `Letter` - Letter + PaginatedAddressList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Address' + PaginatedApiTokenList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ApiToken' + PaginatedAttachmentList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Attachment' + PaginatedBarcodeScanResultList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BarcodeScanResult' + PaginatedBomItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItem' + PaginatedBomItemSubstituteList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + PaginatedBuildItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BuildItem' + PaginatedBuildLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/BuildLine' + PaginatedBuildList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Build' + PaginatedCategoryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Category' + PaginatedCategoryParameterTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryParameterTemplate' + PaginatedCategoryTreeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CategoryTree' + PaginatedCompanyList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Company' + PaginatedContactList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Contact' + PaginatedContentTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ContentType' + PaginatedCustomStateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CustomState' + PaginatedCustomUnitList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/CustomUnit' + PaginatedDataImportColumnMapList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + PaginatedDataImportRowList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportRow' + PaginatedDataImportSessionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataImportSession' + PaginatedDataOutputList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/DataOutput' + PaginatedEmailMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/EmailMessage' + PaginatedErrorMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ErrorMessage' + PaginatedFailedTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/FailedTask' + PaginatedGlobalSettingsList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/GlobalSettings' + PaginatedGroupList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Group' + PaginatedIconPackageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/IconPackage' + PaginatedLabelTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/LabelTemplate' + PaginatedLocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Location' + PaginatedLocationTreeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/LocationTree' + PaginatedMachineConfigList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/MachineConfig' + PaginatedManufacturerPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ManufacturerPart' + PaginatedNewsFeedEntryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NewsFeedEntry' + PaginatedNotesImageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NotesImage' + PaginatedNotificationMessageList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/NotificationMessage' + PaginatedOwnerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Owner' + PaginatedParameterList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Parameter' + PaginatedParameterTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ParameterTemplate' + PaginatedPartInternalPriceList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartInternalPrice' + PaginatedPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Part' + PaginatedPartRelationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartRelation' + PaginatedPartSalePriceList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' + PaginatedPartStocktakeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartStocktake' + PaginatedPartTestTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartTestTemplate' + PaginatedPartThumbList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PartThumb' + PaginatedPendingTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PendingTask' + PaginatedPluginConfigList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PluginConfig' + PaginatedPluginSettingList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PluginSetting' + PaginatedProjectCodeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ProjectCode' + PaginatedPurchaseOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderExtraLine' + PaginatedPurchaseOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItem' + PaginatedPurchaseOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrder' + PaginatedRepairOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrderAllocation' + PaginatedRepairOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrderLineItem' + PaginatedRepairOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RepairOrder' + PaginatedReportAssetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportAsset' + PaginatedReportSnippetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportSnippet' + PaginatedReportTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReportTemplate' + PaginatedReturnOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrderExtraLine' + PaginatedReturnOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrderLineItem' + PaginatedReturnOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ReturnOrder' + PaginatedRuleSetList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/RuleSet' + PaginatedSalesOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderAllocation' + PaginatedSalesOrderExtraLineList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderExtraLine' + PaginatedSalesOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderLineItem' + PaginatedSalesOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrder' + PaginatedSalesOrderShipmentList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SalesOrderShipment' + PaginatedScheduledTaskList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/ScheduledTask' + PaginatedSelectionEntryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + PaginatedSelectionListList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SelectionList' + PaginatedStockItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockItem' + PaginatedStockItemTestResultList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' + PaginatedStockLocationTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockLocationType' + PaginatedStockTrackingList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/StockTracking' + PaginatedSupplierPartList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SupplierPart' + PaginatedSupplierPriceBreakList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreak' + PaginatedTransferOrderAllocationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrderAllocation' + PaginatedTransferOrderLineItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrderLineItem' + PaginatedTransferOrderList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/TransferOrder' + PaginatedUserCreateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/UserCreate' + PaginatedUserSettingsList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/UserSettings' + Parameter: + type: object + description: Serializer for the Parameter model. + properties: + pk: + type: integer + readOnly: true + title: ID + template: + type: integer + description: Parameter template + model_type: + allOf: + - $ref: '#/components/schemas/ModelTypeF01Enum' + default: '' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: + type: string + description: Parameter Value + maxLength: 500 + minLength: 1 + data_numeric: + type: number + format: double + nullable: true + note: + type: string + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + updated_by: + type: integer + readOnly: true + nullable: true + title: Update By + description: User who last updated this object + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + required: + - data + - model_id + - pk + - template + - template_detail + ParameterTemplate: + type: object + description: Serializer for the ParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Parameter Name + maxLength: 100 + units: + type: string + description: Physical units for this parameter + maxLength: 25 + description: + type: string + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeF01Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: + type: string + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + required: + - name + - pk + Part: + type: object + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. + properties: + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category: + type: integer + nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + category_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + category_name: + type: string + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: + type: string + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + default_location_detail: + allOf: + - $ref: '#/components/schemas/DefaultLocation' + readOnly: true + nullable: true + description: + type: string + description: Part description (optional) + maxLength: 250 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: + type: string + default: '' + maxLength: 100 + is_template: + type: boolean + description: Is this part a template part? + keywords: + type: string + nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: + type: string + description: Part name + maxLength: 100 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + pk: + type: integer + readOnly: true + title: ID + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: + type: string + nullable: true + default: '' + maxLength: 100 + revision_of: + type: integer + nullable: true + description: Is this part a revision of another part? + revision_count: + type: integer + readOnly: true + nullable: true + title: Revisions + salable: + type: boolean + description: Can this part be sold to customers? + starred: + type: boolean + description: Return "true" if the part is starred by the current user. + readOnly: true + thumbnail: + type: string + readOnly: true + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + variant_of: + type: integer + nullable: true + description: Is this part a variant of another part? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + responsible: + type: integer + nullable: true + price_breaks: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' + readOnly: true + nullable: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + nullable: true + allocated_to_sales_orders: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true + nullable: true + description: Outstanding quantity of this part scheduled to be built + category_default_location: + type: integer + readOnly: true + nullable: true + in_stock: + type: number + format: double + readOnly: true + nullable: true + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: + type: integer + readOnly: true + nullable: true + required_for_sales_orders: + type: integer + readOnly: true + nullable: true + stock_item_count: + type: integer + readOnly: true + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double + readOnly: true + nullable: true + title: Total Stock + external_stock: + type: number + format: double + readOnly: true + nullable: true + unallocated_stock: + type: number + format: double + readOnly: true + nullable: true + variant_stock: + type: number + format: double + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + tags: + type: array + items: + type: string + required: + - barcode_hash + - category_name + - full_name + - name + - pk + - starred + - thumbnail + PartBomValidate: + type: object + description: Serializer for Part BOM information. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_validated: + type: boolean + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: + type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true + nullable: true + bom_checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + bom_checked_date: + type: string + format: date + readOnly: true + nullable: true + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials + required: + - bom_checksum + - bom_validated + - pk + PartBrief: + type: object + description: Serializer for Part (brief detail). + properties: + pk: + type: integer + readOnly: true + title: ID + IPN: + type: string + nullable: true + description: Internal Part Number + maxLength: 100 + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category_default_location: + type: integer + readOnly: true + nullable: true + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + name: + type: string + description: Part name + maxLength: 100 + revision: + type: string + nullable: true + default: '' + maxLength: 100 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + description: + type: string + description: Part description (optional) + maxLength: 250 + image: + type: string + format: uri + readOnly: true + nullable: true + thumbnail: + type: string + readOnly: true + active: + type: boolean + description: Is this part active? + locked: + type: boolean + description: Locked parts cannot be edited + assembly: + type: boolean + description: Can this part be built from other parts? + component: + type: boolean + description: Can this part be used to build other parts? + minimum_stock: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + description: Minimum allowed stock level + is_template: + type: boolean + description: Is this part a template part? + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + salable: + type: boolean + description: Can this part be sold to customers? + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + required: + - barcode_hash + - full_name + - name + - pk + - thumbnail + PartCopyBOM: + type: object + description: Serializer for copying a BOM from another part. + properties: + part: + type: integer + description: Select part to copy BOM from + remove_existing: + type: boolean + default: true + title: Remove Existing Data + description: Remove existing BOM items before copying + include_inherited: + type: boolean + default: false + description: Include BOM items which are inherited from templated parts + skip_invalid: + type: boolean + default: false + title: Skip Invalid Rows + description: Enable this option to skip invalid rows + copy_substitutes: + type: boolean + default: true + title: Copy Substitute Parts + description: Copy substitute parts when duplicate BOM items + required: + - part + PartInternalPrice: + type: object + description: Serializer for internal prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + required: + - part + - pk + - quantity + PartPricing: + type: object + description: Serializer for Part pricing information. + properties: + currency: + type: string + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + bom_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + override_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + overall_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + update: + type: boolean + writeOnly: true + nullable: true + default: false + description: Update pricing for this part + required: + - scheduled_for_update + PartRelation: + type: object + description: Serializer for a PartRelated model. + properties: + pk: + type: integer + readOnly: true + title: ID + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: + type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + note: + type: string + description: Note for this relationship + maxLength: 500 + required: + - part_1 + - part_1_detail + - part_2 + - part_2_detail + - pk + PartRequirements: + type: object + description: Serializer for Part requirements. + properties: + total_stock: + type: number + format: double + readOnly: true + unallocated_stock: + type: number + format: double + readOnly: true + title: Available Stock + can_build: + type: number + format: double + readOnly: true + ordering: + type: number + format: double + readOnly: true + title: On Order + building: + type: number + format: double + readOnly: true + title: In Production + scheduled_to_build: + type: integer + readOnly: true + required_for_build_orders: + type: number + format: double + readOnly: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + required_for_sales_orders: + type: number + format: double + readOnly: true + allocated_to_sales_orders: + type: number + format: double + description: Return the allocated sales order quantity. + readOnly: true + required: + - allocated_to_build_orders + - allocated_to_sales_orders + - building + - can_build + - ordering + - required_for_build_orders + - required_for_sales_orders + - scheduled_to_build + - total_stock + - unallocated_stock + PartSalePrice: + type: object + description: Serializer for sale prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + required: + - part + - pk + - quantity + PartSerialNumber: + type: object + description: Serializer for Part serial number information. + properties: + latest: + type: string + readOnly: true + nullable: true + next: + type: string + readOnly: true + required: + - next + PartStocktake: + type: object + description: Serializer for the PartStocktake model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Part for stocktake + part_name: + type: string + readOnly: true + part_ipn: + type: string + readOnly: true + nullable: true + part_description: + type: string + readOnly: true + nullable: true + date: + type: string + format: date + readOnly: true + description: Date stocktake was performed + item_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: Number of individual stock entries at time of stocktake + quantity: + type: number + format: double + cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_min_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_max_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + required: + - date + - part + - part_name + - pk + - quantity + PartStocktakeGenerate: + type: object + description: Serializer for generating PartStocktake entries. + properties: + part: + type: integer + nullable: true + description: Select a part to generate stocktake information for that part + (and any variant parts) + category: + type: integer + nullable: true + description: Select a category to include all parts within that category + (and subcategories) + location: + type: integer + nullable: true + description: Select a location to include all parts with stock in that location + (including sub-locations) + generate_entry: + type: boolean + writeOnly: true + default: false + title: Generate Stocktake Entries + description: Save stocktake entries for the selected parts + generate_report: + type: boolean + writeOnly: true + default: false + description: Generate a stocktake report for the selected parts + output: + allOf: + - $ref: '#/components/schemas/DataOutput' + readOnly: true + required: + - output + PartTestTemplate: + type: object + description: Serializer for the PartTestTemplate class. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + part: + type: integer + test_name: + type: string + description: Enter a name for the test + maxLength: 100 + description: + type: string + nullable: true + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: + type: boolean + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer + readOnly: true + description: Number of results recorded against this template + choices: + type: string + description: Valid choices for this test (comma-separated) + maxLength: 5000 + required: + - key + - part + - pk + - results + - test_name + PartThumb: + type: object + description: |- + Serializer for the 'image' field of the Part model. + + Used to serve and display existing Part images. + properties: + image: + type: string + format: uri + readOnly: true + count: + type: integer + readOnly: true + required: + - count + - image + PartThumbSerializerUpdate: + type: object + description: Serializer for updating Part thumbnail. + properties: + image: + type: string + format: uri + required: + - image + PatchedAddress: + type: object + description: Serializer for the Address Model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + description: Select company + title: + type: string + title: Address title + description: Title describing the address entry + maxLength: 100 + primary: + type: boolean + title: Primary address + description: Set as primary address + line1: + type: string + title: Line 1 + description: Address line 1 + maxLength: 50 + line2: + type: string + title: Line 2 + description: Address line 2 + maxLength: 50 + postal_code: + type: string + description: Postal code + maxLength: 10 + postal_city: + type: string + title: City/Region + description: Postal code city/region + maxLength: 50 + province: + type: string + title: State/Province + description: State or province + maxLength: 50 + country: + type: string + description: Address country + maxLength: 50 + shipping_notes: + type: string + title: Courier shipping notes + description: Notes for shipping courier + maxLength: 100 + internal_shipping_notes: + type: string + description: Shipping notes for internal use + maxLength: 100 + link: + type: string + format: uri + description: Link to address information (external) + maxLength: 2000 + PatchedAttachment: + type: object + description: Serializer class for the Attachment model. + properties: + pk: + type: integer + readOnly: true + title: ID + attachment: + type: string + format: uri + nullable: true + thumbnail: + type: string + format: uri + readOnly: true + nullable: true + filename: + type: string + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + comment: + type: string + description: Attachment comment + maxLength: 250 + is_image: + type: boolean + readOnly: true + description: True if this attachment is a valid image file + upload_date: + type: string + format: date + readOnly: true + upload_user: + type: integer + readOnly: true + nullable: true + title: User + description: User + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + file_size: + type: integer + readOnly: true + description: File size in bytes + model_type: + $ref: '#/components/schemas/AttachmentModelTypeEnum' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + tags: + type: array + items: + type: string + PatchedBomItem: + type: object + description: Serializer for BomItem object. + properties: + part: + type: integer + title: Assembly + description: Select the parent assembly + sub_part: + type: integer + title: Component + description: Select the component part + reference: + type: string + description: BOM item reference + maxLength: 5000 + raw_amount: + type: string + title: Amount + description: Amount required for this item (can include units) + quantity: + type: number + format: double + allow_variants: + type: boolean + description: Stock items for variant parts can be used for this BOM item + inherited: + type: boolean + title: Gets inherited + description: This BOM item is inherited by BOMs for variant parts + optional: + type: boolean + description: This BOM item is optional + consumable: + type: boolean + description: This BOM item is consumable (it is not tracked in build orders) + setup_quantity: + type: number + format: double + attrition: + type: number + format: double + rounding_multiple: + type: number + format: double + nullable: true + note: + type: string + description: BOM item notes + maxLength: 500 + pk: + type: integer + readOnly: true + title: ID + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_min_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max_total: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + substitutes: + type: array + items: + $ref: '#/components/schemas/BomItemSubstitute' + readOnly: true + nullable: true + validated: + type: boolean + description: This BOM item has been validated + available_stock: + type: number + format: double + readOnly: true + nullable: true + available_substitute_stock: + type: number + format: double + readOnly: true + nullable: true + available_variant_stock: + type: number + format: double + readOnly: true + nullable: true + external_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + title: In Production + can_build: + type: number + format: double + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + sub_part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Component + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + PatchedBomItemSubstitute: + type: object + description: Serializer for the BomItemSubstitute class. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_item: + type: integer + description: Parent BOM item + part: + type: integer + description: Substitute part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + PatchedBomItemValidation: + type: object + description: Simple serializer for passing a single boolean field. + properties: + valid: + type: boolean + default: false + PatchedBuild: + type: object + description: Serializes a Build object. + properties: + pk: + type: integer + readOnly: true + title: ID + title: + type: string + title: Description + description: Brief description of the build (optional) + maxLength: 100 + barcode_hash: + type: string + readOnly: true + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this build output + maxLength: 100 + creation_date: + type: string + format: date + readOnly: true + completed: + type: integer + readOnly: true + title: Completed items + description: Number of stock items which have been completed + completion_date: + type: string + format: date + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Select location where the completed items will be stored + external: + type: boolean + title: External Build + description: This build order is fulfilled externally + parent: + type: integer + nullable: true + title: Parent Build + description: Build Order to which this build is allocated + part: + type: integer + description: Select part to build + part_name: + type: string + readOnly: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + project_code: + type: integer + nullable: true + description: Project code for this build order + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + default: false + reference: + type: string + sales_order: + type: integer + nullable: true + title: Sales Order Reference + description: Sales Order to which this build is allocated + quantity: + type: number + format: double + start_date: + type: string + format: date + nullable: true + title: Build start date + description: Scheduled start date for this build order + status: + allOf: + - $ref: '#/components/schemas/BuildStatusEnum' + readOnly: true + title: Build Status + description: |- + Build status code + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Production + * `25` - On Hold + * `30` - Cancelled + * `40` - Complete + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + target_date: + type: string + format: date + nullable: true + title: Target completion date + description: Target date for build completion. Build will be overdue after + this date. + take_from: + type: integer + nullable: true + title: Source Location + description: Select location to take stock from for this build (leave blank + to take from any stock location) + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + issued_by: + type: integer + readOnly: true + nullable: true + description: User who issued this build order + issued_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + responsible: + type: integer + nullable: true + description: User or group responsible for this build order + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + priority: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + title: Build Priority + description: Priority of this build order + level: + type: integer + readOnly: true + title: Build Level + PatchedBuildItem: + type: object + description: Serializes a BuildItem object, which is an allocation of a stock + item against a build order. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + build_line: + type: integer + nullable: true + install_into: + type: integer + nullable: true + description: Destination stock item + stock_item: + type: integer + description: Source stock item + quantity: + type: number + format: double + title: Allocated Quantity + location: + type: integer + readOnly: true + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + stock_item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Stock Item + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + install_into_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + title: Install Into + bom_reference: + type: string + readOnly: true + PatchedBuildLine: + type: object + description: Serializer for a BuildItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + build: + type: integer + readOnly: true + description: Build object + bom_item: + type: integer + readOnly: true + quantity: + type: number + format: double + consumed: + type: number + format: double + allocations: + type: array + items: + $ref: '#/components/schemas/BuildItem' + readOnly: true + nullable: true + part: + type: integer + readOnly: true + build_reference: + type: string + readOnly: true + reference: + type: string + readOnly: true + consumable: + type: boolean + readOnly: true + optional: + type: boolean + readOnly: true + testable: + type: boolean + readOnly: true + trackable: + type: boolean + readOnly: true + inherited: + type: boolean + readOnly: true + allow_variants: + type: boolean + readOnly: true + allocated: + type: number + format: double + readOnly: true + in_production: + type: number + format: double + readOnly: true + scheduled_to_build: + type: number + format: double + readOnly: true + on_order: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_substitute_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + external_stock: + type: number + format: double + readOnly: true + bom_item_detail: + allOf: + - $ref: '#/components/schemas/BomItem' + readOnly: true + nullable: true + title: BOM Item + assembly_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Assembly + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + title: Category + build_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + title: Build + PatchedCategory: + type: object + description: Serializer for PartCategory. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + default_location: + type: integer + nullable: true + description: Default location for parts in this category + default_keywords: + type: string + nullable: true + description: Default keywords for parts in this category + maxLength: 250 + level: + type: integer + readOnly: true + parent: + type: integer + nullable: true + title: Parent Category + description: Parent part category + part_count: + type: integer + readOnly: true + nullable: true + title: Parts + subcategories: + type: integer + readOnly: true + nullable: true + pathstring: + type: string + readOnly: true + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + starred: + type: boolean + description: Return True if the category is directly "starred" by the current + user. + readOnly: true + structural: + type: boolean + description: Parts may not be directly assigned to a structural category, + but may be assigned to child categories. + icon: + type: string + nullable: true + description: Icon (optional) + maxLength: 100 + parent_default_location: + type: integer + readOnly: true + nullable: true + PatchedCategoryParameterTemplate: + type: object + description: Serializer for the PartCategoryParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + category: + type: integer + description: Part Category + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + template: + type: integer + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + default_value: + type: string + description: Default Parameter Value + maxLength: 500 + PatchedCompany: + type: object + description: Serializer for Company object (full detail). + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + title: Company name + description: Company name + maxLength: 100 + description: + type: string + title: Company description + description: Description of the company + maxLength: 500 + website: + type: string + format: uri + description: Company website URL + maxLength: 2000 + phone: + type: string + title: Phone number + description: Contact phone number + maxLength: 50 + email: + type: string + format: email + nullable: true + default: '' + currency: + type: string + description: |- + Default currency used for this supplier + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + contact: + type: string + description: Point of contact + maxLength: 100 + link: + type: string + format: uri + description: Link to external company information + maxLength: 2000 + image: + type: string + format: uri + nullable: true + active: + type: boolean + description: Is this company active? + is_customer: + type: boolean + description: Do you sell items to this company? + is_manufacturer: + type: boolean + description: Does this company manufacture parts? + is_supplier: + type: boolean + description: Do you purchase items from this company? + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parts_supplied: + type: integer + readOnly: true + parts_manufactured: + type: integer + readOnly: true + primary_address: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + tax_id: + type: string + description: Company Tax ID + maxLength: 50 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedContact: + type: object + description: Serializer class for the Contact model. + properties: + pk: + type: integer + readOnly: true + title: ID + company: + type: integer + company_name: + type: string + readOnly: true + name: + type: string + maxLength: 100 + phone: + type: string + maxLength: 100 + email: + type: string + format: email + maxLength: 254 + role: + type: string + maxLength: 100 + PatchedCustomState: + type: object + description: Serializer for the custom state model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + title: Value + description: Numerical value that will be saved in the models database + name: + type: string + description: Name of the state + maxLength: 250 + label: + type: string + description: Label that will be displayed in the frontend + maxLength: 250 + color: + allOf: + - $ref: '#/components/schemas/ColorEnum' + description: |- + Color that will be displayed in the frontend + + * `primary` - primary + * `secondary` - secondary + * `success` - success + * `danger` - danger + * `warning` - warning + * `info` - info + * `dark` - dark + logical_key: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: State logical key that is equal to this custom state in business + logic + model: + type: integer + nullable: true + description: Model this state is associated with + model_name: + type: string + readOnly: true + reference_status: + $ref: '#/components/schemas/ReferenceStatusEnum' + PatchedCustomUnit: + type: object + description: DRF serializer for CustomUnit model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Unit name + maxLength: 50 + symbol: + type: string + description: Optional unit symbol + maxLength: 10 + definition: + type: string + description: Unit definition + maxLength: 50 + PatchedDataImportColumnMap: + type: object + description: Serializer for the DataImportColumnMap model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + column: + type: string + maxLength: 100 + field: + type: string + readOnly: true + label: + type: string + readOnly: true + description: + type: string + readOnly: true + PatchedDataImportRow: + type: object + description: Serializer for the DataImportRow model. + properties: + pk: + type: integer + readOnly: true + title: ID + session: + type: integer + readOnly: true + title: Import Session + row_index: + type: integer + readOnly: true + row_data: + readOnly: true + nullable: true + title: Original row data + data: + nullable: true + errors: + readOnly: true + nullable: true + valid: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + PatchedDataImportSession: + type: object + description: Serializer for the DataImportSession model. + properties: + pk: + type: integer + readOnly: true + title: ID + timestamp: + type: string + format: date-time + readOnly: true + data_file: + type: string + format: uri + update_records: + type: boolean + title: Update Existing Records + description: If enabled, existing records will be updated with new data + model_type: + $ref: '#/components/schemas/DataImportSessionModelTypeEnum' + available_fields: + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/DataImportSessionStatusEnum' + readOnly: true + description: |- + Import status + + * `0` - Initializing + * `10` - Mapping Columns + * `20` - Importing Data + * `30` - Processing Data + * `40` - Complete + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + columns: + readOnly: true + nullable: true + column_mappings: + type: array + items: + $ref: '#/components/schemas/DataImportColumnMap' + readOnly: true + field_defaults: + nullable: true + field_overrides: + nullable: true + field_filters: + nullable: true + row_count: + type: integer + readOnly: true + completed_row_count: + type: integer + readOnly: true + PatchedErrorMessage: + type: object + description: DRF serializer for server error messages. + properties: + when: + type: string + format: date-time + readOnly: true + info: + type: string + readOnly: true + data: + type: string + readOnly: true + nullable: true + path: + type: string + format: uri + readOnly: true + nullable: true + maxLength: 200 + pk: + type: integer + readOnly: true + title: ID + PatchedExtendedUser: + type: object + description: Serializer for a User with a bit more info. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + PatchedGlobalSettings: + type: object + description: Serializer for the InvenTreeSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + read_only: + type: boolean + description: Indicates if the setting is overridden by an environment variable + readOnly: true + title: Override + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + PatchedGroup: + type: object + description: Serializer for a 'Group'. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + maxLength: 150 + permissions: + type: object + additionalProperties: {} + description: Return a list of permissions associated with the group. + readOnly: true + nullable: true + roles: + type: array + items: + $ref: '#/components/schemas/RuleSet' + readOnly: true + nullable: true + users: + type: array + items: + $ref: '#/components/schemas/User' + readOnly: true + nullable: true + PatchedLabelTemplate: + type: object + description: Serializer class for label template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + width: + type: number + format: double + minimum: 2 + title: Width [mm] + description: Label width, specified in mm + height: + type: number + format: double + minimum: 2 + title: Height [mm] + description: Label height, specified in mm + PatchedLocation: + type: object + description: Detailed information about a stock location. + properties: + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + name: + type: string + description: Name + maxLength: 100 + level: + type: integer + readOnly: true + description: + type: string + description: Description (optional) + maxLength: 250 + parent: + type: integer + nullable: true + title: Parent Location + description: Parent stock location + pathstring: + type: string + readOnly: true + title: Path + description: Path + path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + items: + type: integer + readOnly: true + title: Stock Items + sublocations: + type: integer + readOnly: true + owner: + type: integer + nullable: true + description: Select Owner + icon: + type: string + readOnly: true + custom_icon: + type: string + nullable: true + title: Icon + description: Icon (optional) + maxLength: 100 + structural: + type: boolean + description: Stock items may not be directly located into a structural stock + locations, but may be located to child locations. + external: + type: boolean + description: This is an external stock location + location_type: + type: integer + nullable: true + description: Stock location type of this location + location_type_detail: + allOf: + - $ref: '#/components/schemas/StockLocationType' + readOnly: true + nullable: true + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedMachineConfig: + type: object + description: Serializer for a MachineConfig. + properties: + pk: + type: string + format: uuid + readOnly: true + title: Id + name: + type: string + description: Name of machine + maxLength: 255 + machine_type: + type: string + readOnly: true + description: Type of machine + driver: + type: string + readOnly: true + description: Driver used for the machine + initialized: + type: boolean + description: Indicator if machine is initialized. + readOnly: true + active: + type: boolean + description: Machines can be disabled + status: + type: integer + description: Numerical machine status if available, else -1. + readOnly: true + status_model: + type: string + nullable: true + description: Textual machine status name if available, else None. + readOnly: true + status_text: + type: string + description: Current status text for machine. + readOnly: true + machine_errors: + type: array + items: + type: string + description: List of machine errors. + readOnly: true + is_driver_available: + type: boolean + description: Indicator if driver for machine is available. + readOnly: true + restart_required: + type: boolean + description: Indicator if machine restart is required. + readOnly: true + properties: + type: array + items: + $ref: '#/components/schemas/MachineProperty' + readOnly: true + default: [] + PatchedMachineSetting: + type: object + description: Serializer for the MachineSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + config_type: + allOf: + - $ref: '#/components/schemas/ConfigTypeEnum' + readOnly: true + PatchedManufacturerPart: + type: object + description: Serializer for ManufacturerPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + title: Base Part + description: Select part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + pretty_name: + type: string + readOnly: true + nullable: true + manufacturer: + type: integer + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + description: + type: string + nullable: true + description: Manufacturer part description + maxLength: 250 + MPN: + type: string + nullable: true + description: Manufacturer Part Number + maxLength: 100 + link: + type: string + format: uri + nullable: true + description: URL for external manufacturer part link + maxLength: 2000 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + tags: + type: array + items: + type: string + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedMeUser: + type: object + description: API serializer specifically for the 'me' endpoint. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + is_staff: + type: boolean + readOnly: true + title: Staff + description: Does this user have staff permissions + is_superuser: + type: boolean + readOnly: true + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + readOnly: true + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/UserProfile' + readOnly: true + PatchedMetadata: + type: object + description: Serializer class for model metadata API access. + properties: + metadata: {} + PatchedNewsFeedEntry: + type: object + description: Serializer for the NewsFeedEntry model. + properties: + pk: + type: integer + readOnly: true + title: ID + feed_id: + type: string + title: Id + maxLength: 250 + title: + type: string + maxLength: 250 + link: + type: string + format: uri + maxLength: 250 + published: + type: string + format: date-time + author: + type: string + maxLength: 250 + summary: + type: string + maxLength: 250 + read: + type: boolean + PatchedNotificationMessage: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + target: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to target. + readOnly: true + source: + type: object + additionalProperties: {} + description: Function to resolve generic object reference to source. + readOnly: true + user: + type: integer + readOnly: true + category: + type: string + readOnly: true + name: + type: string + readOnly: true + message: + type: string + readOnly: true + nullable: true + creation: + type: string + format: date-time + readOnly: true + age: + type: integer + description: Age of the message in seconds. + readOnly: true + age_human: + type: string + description: Humanized age. + readOnly: true + read: + type: boolean + PatchedParameter: + type: object + description: Serializer for the Parameter model. + properties: + pk: + type: integer + readOnly: true + title: ID + template: + type: integer + description: Parameter template + model_type: + allOf: + - $ref: '#/components/schemas/ModelTypeF01Enum' + default: '' + model_id: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: ID of the target model for this parameter + data: + type: string + description: Parameter Value + maxLength: 500 + minLength: 1 + data_numeric: + type: number + format: double + nullable: true + note: + type: string + description: Optional note field + maxLength: 500 + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + updated_by: + type: integer + readOnly: true + nullable: true + title: Update By + description: User who last updated this object + template_detail: + allOf: + - $ref: '#/components/schemas/ParameterTemplate' + readOnly: true + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + PatchedParameterTemplate: + type: object + description: Serializer for the ParameterTemplate model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Parameter Name + maxLength: 100 + units: + type: string + description: Physical units for this parameter + maxLength: 25 + description: + type: string + description: Parameter description + maxLength: 250 + model_type: + nullable: true + default: '' + oneOf: + - $ref: '#/components/schemas/ModelTypeF01Enum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + checkbox: + type: boolean + description: Is this parameter a checkbox? + choices: + type: string + description: Valid choices for this parameter (comma-separated) + maxLength: 5000 + selectionlist: + type: integer + nullable: true + title: Selection List + description: Selection list for this parameter + enabled: + type: boolean + description: Is this parameter template enabled? + PatchedPart: + type: object + description: |- + Serializer for complete detail information of a part. + + Used when displaying all details of a single component. + properties: + active: + type: boolean + description: Is this part active? + assembly: + type: boolean + description: Can this part be built from other parts? + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + category: + type: integer + nullable: true + category_detail: + allOf: + - $ref: '#/components/schemas/Category' + readOnly: true + nullable: true + category_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + category_name: + type: string + readOnly: true + component: + type: boolean + description: Can this part be used to build other parts? + creation_date: + type: string + format: date + readOnly: true + nullable: true + creation_user: + type: integer + nullable: true + default_expiry: + type: integer + maximum: 9223372036854775807 + minimum: 0 + format: int64 + description: Expiry time (in days) for stock items of this part + default_location: + type: integer + nullable: true + description: Where is this item normally stored? + default_location_detail: + allOf: + - $ref: '#/components/schemas/DefaultLocation' + readOnly: true + nullable: true + description: + type: string + description: Part description (optional) + maxLength: 250 + full_name: + type: string + description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT + defined in InvenTree settings. + readOnly: true + image: + type: string + format: uri + nullable: true + existing_image: + type: string + writeOnly: true + description: Filename of an existing part image + IPN: + type: string + default: '' + maxLength: 100 + is_template: + type: boolean + description: Is this part a template part? + keywords: + type: string + nullable: true + description: Part keywords to improve visibility in search results + maxLength: 250 + link: + type: string + format: uri + nullable: true + description: Link to external URL + maxLength: 2000 + locked: + type: boolean + description: Locked parts cannot be edited + minimum_stock: + type: number + format: double + default: 0.0 + maximum_stock: + type: number + format: double + default: 0.0 + name: + type: string + description: Part name + maxLength: 100 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + pk: + type: integer + readOnly: true + title: ID + purchaseable: + type: boolean + description: Can this part be purchased from external suppliers? + revision: + type: string + nullable: true + default: '' + maxLength: 100 + revision_of: + type: integer + nullable: true + description: Is this part a revision of another part? + revision_count: + type: integer + readOnly: true + nullable: true + title: Revisions + salable: + type: boolean + description: Can this part be sold to customers? + starred: + type: boolean + description: Return "true" if the part is starred by the current user. + readOnly: true + thumbnail: + type: string + readOnly: true + testable: + type: boolean + description: Can this part have test results recorded against it? + trackable: + type: boolean + description: Does this part have tracking for unique items? + units: + type: string + nullable: true + description: Units of measure for this part + maxLength: 20 + variant_of: + type: integer + nullable: true + description: Is this part a variant of another part? + virtual: + type: boolean + description: Is this a virtual part, such as a software product or license? + pricing_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + pricing_updated: + type: string + format: date-time + readOnly: true + nullable: true + responsible: + type: integer + nullable: true + price_breaks: + type: array + items: + $ref: '#/components/schemas/PartSalePrice' + readOnly: true + nullable: true + allocated_to_build_orders: + type: number + format: double + readOnly: true + nullable: true + allocated_to_sales_orders: + type: number + format: double + readOnly: true + nullable: true + building: + type: number + format: double + readOnly: true + nullable: true + description: Quantity of this part currently being in production + scheduled_to_build: + type: number + format: double + readOnly: true + nullable: true + description: Outstanding quantity of this part scheduled to be built + category_default_location: + type: integer + readOnly: true + nullable: true + in_stock: + type: number + format: double + readOnly: true + nullable: true + ordering: + type: number + format: double + readOnly: true + nullable: true + title: On Order + required_for_build_orders: + type: integer + readOnly: true + nullable: true + required_for_sales_orders: + type: integer + readOnly: true + nullable: true + stock_item_count: + type: integer + readOnly: true + nullable: true + title: Stock Items + total_in_stock: + type: number + format: double + readOnly: true + nullable: true + title: Total Stock + external_stock: + type: number + format: double + readOnly: true + nullable: true + unallocated_stock: + type: number + format: double + readOnly: true + nullable: true + variant_stock: + type: number + format: double + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicatePart' + writeOnly: true + title: Duplicate Part + description: Copy initial data from another Part + initial_stock: + allOf: + - $ref: '#/components/schemas/InitialStock' + writeOnly: true + description: Create Part with initial stock quantity + initial_supplier: + allOf: + - $ref: '#/components/schemas/InitialSupplier' + writeOnly: true + title: Supplier Information + description: Add initial supplier information for this part + copy_category_parameters: + type: boolean + writeOnly: true + default: true + description: Copy parameter templates from selected part category + tags: + type: array + items: + type: string + PatchedPartBomValidate: + type: object + description: Serializer for Part BOM information. + properties: + pk: + type: integer + readOnly: true + title: ID + bom_validated: + type: boolean + readOnly: true + description: Is the BOM for this part valid? + bom_checksum: + type: string + readOnly: true + description: Stored BOM checksum + bom_checked_by: + type: integer + readOnly: true + nullable: true + bom_checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + bom_checked_date: + type: string + format: date + readOnly: true + nullable: true + valid: + type: boolean + writeOnly: true + default: false + description: Validate entire Bill of Materials + PatchedPartInternalPrice: + type: object + description: Serializer for internal prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + PatchedPartPricing: + type: object + description: Serializer for Part pricing information. + properties: + currency: + type: string + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + scheduled_for_update: + type: boolean + readOnly: true + bom_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + bom_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + purchase_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + internal_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + supplier_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + variant_cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + override_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Minimum Price + description: Override calculated value for minimum price + override_min_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Minimum price currency + override_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + title: Maximum Price + description: Override calculated value for maximum price + override_max_currency: + type: string + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + title: Maximum price currency + overall_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + overall_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_price_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + sale_history_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + update: + type: boolean + writeOnly: true + nullable: true + default: false + description: Update pricing for this part + PatchedPartRelation: + type: object + description: Serializer for a PartRelated model. + properties: + pk: + type: integer + readOnly: true + title: ID + part_1: + type: integer + part_1_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + part_2: + type: integer + description: Select Related Part + part_2_detail: + allOf: + - $ref: '#/components/schemas/Part' + readOnly: true + note: + type: string + description: Note for this relationship + maxLength: 500 + PatchedPartSalePrice: + type: object + description: Serializer for sale prices for Part model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + PatchedPartStocktake: + type: object + description: Serializer for the PartStocktake model. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Part for stocktake + part_name: + type: string + readOnly: true + part_ipn: + type: string + readOnly: true + nullable: true + part_description: + type: string + readOnly: true + nullable: true + date: + type: string + format: date + readOnly: true + description: Date stocktake was performed + item_count: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: Number of individual stock entries at time of stocktake + quantity: + type: number + format: double + cost_min: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_min_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + cost_max: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + cost_max_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + PatchedPartTestTemplate: + type: object + description: Serializer for the PartTestTemplate class. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + part: + type: integer + test_name: + type: string + description: Enter a name for the test + maxLength: 100 + description: + type: string + nullable: true + title: Test Description + description: Enter description for this test + maxLength: 100 + enabled: + type: boolean + description: Is this test enabled? + required: + type: boolean + description: Is this test required to pass? + requires_value: + type: boolean + description: Does this test require a value when adding a test result? + requires_attachment: + type: boolean + description: Does this test require a file attachment when adding a test + result? + results: + type: integer + readOnly: true + description: Number of results recorded against this template + choices: + type: string + description: Valid choices for this test (comma-separated) + maxLength: 5000 + PatchedPartThumbSerializerUpdate: + type: object + description: Serializer for updating Part thumbnail. + properties: + image: + type: string + format: uri + PatchedPluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: + active: + type: boolean + default: true + title: Activate Plugin + description: Activate this plugin + PatchedPluginSetting: + type: object + description: Serializer for the PluginSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + PatchedPluginUninstall: + type: object + description: Serializer for uninstalling a plugin. + properties: + delete_config: + type: boolean + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PatchedPluginUserSetting: + type: object + description: Serializer for the PluginUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + PatchedProjectCode: + type: object + description: Serializer for the ProjectCode model. + properties: + pk: + type: integer + readOnly: true + title: ID + code: + type: string + title: Project Code + description: Unique project code + maxLength: 50 + description: + type: string + description: Project description + maxLength: 200 + responsible: + type: integer + nullable: true + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + PatchedPurchaseOrder: + type: object + description: Serializer for a PurchaseOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + readOnly: true + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Placed + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: + type: string + format: date + readOnly: true + nullable: true + title: Completion Date + description: Date order was completed + supplier: + type: integer + nullable: true + description: Company from which the items are being ordered + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string + readOnly: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + destination: + type: integer + nullable: true + description: Destination for received items + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + PatchedPurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + PatchedPurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + minimum: 0 + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + part: + type: integer + nullable: true + title: Supplier Part + build_order: + type: integer + nullable: true + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean + readOnly: true + nullable: true + received: + type: number + format: double + readOnly: true + default: 0.0 + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + purchase_price_currency: + type: string + title: Currency + description: |- + Purchase price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + auto_pricing: + type: boolean + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer + nullable: true + description: Destination for received items + total_price: + type: number + format: double + readOnly: true + merge_items: + type: boolean + writeOnly: true + default: true + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string + readOnly: true + nullable: true + mpn: + type: string + readOnly: true + nullable: true + ipn: + type: string + readOnly: true + nullable: true + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: + type: string + readOnly: true + build_order_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + destination_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + PatchedRepairOrder: + type: object + description: Serializer for a RepairOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + reference: + type: string + description: Repair Order Reference + maxLength: 100 + customer: + type: integer + nullable: true + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: + allOf: + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: 0 + maximum: 9223372036854775807 + PatchedRepairOrderAllocation: + type: object + description: Serializer for a RepairOrderAllocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: integer + title: Line Item + item: + type: integer + title: Stock Item + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + PatchedRepairOrderLineItem: + type: object + description: Serializer for a RepairOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + title: Repair Order + part: + type: integer + nullable: true + description: Part to be consumed for repair + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + PatchedReportAsset: + type: object + description: Serializer class for the ReportAsset model. + properties: + pk: + type: integer + readOnly: true + title: ID + asset: + type: string + format: uri + description: + type: string + description: Asset file description + maxLength: 250 + PatchedReportSnippet: + type: object + description: Serializer class for the ReportSnippet model. + properties: + pk: + type: integer + readOnly: true + title: ID + snippet: + type: string + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + PatchedReportTemplate: + type: object + description: Serializer class for report template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: + type: boolean + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + PatchedReturnOrder: + type: object + description: Serializer for the ReturnOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + PatchedReturnOrderExtraLine: + type: object + description: Serializer for a ReturnOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + PatchedReturnOrderLineItem: + type: object + description: Serializer for a ReturnOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: + type: string + format: date + nullable: true + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Line price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + PatchedRuleSet: + type: object + description: Serializer for a RuleSet. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: + type: string + description: Return the translated label for this ruleset. + readOnly: true + group: + type: integer + readOnly: true + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items + PatchedSalesOrder: + type: object + description: Serializer for the SalesOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `15` - In Progress + * `20` - Shipped + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + PatchedSalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' + readOnly: true + nullable: true + PatchedSalesOrderExtraLine: + type: object + description: Serializer for a SalesOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + PatchedSalesOrderLineItem: + type: object + description: Serializer for a SalesOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + sale_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + sale_price_currency: + type: string + title: Currency + description: |- + Sale price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipped: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + PatchedSalesOrderShipment: + type: object + description: Serializer for the SalesOrderShipment class. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + description: Sales Order + allocated_items: + type: integer + readOnly: true + nullable: true + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + checked_by: + type: integer + nullable: true + description: User who checked this shipment + reference: + type: string + default: '1' + title: Shipment + description: Shipment number + maxLength: 100 + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + shipment_address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + PatchedSelectionEntry: + type: object + description: Serializer for a selection entry. + properties: + id: + type: integer + readOnly: true + value: + type: string + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 + description: + type: string + description: Description of the selection list entry + maxLength: 250 + active: + type: boolean + description: Is this selection list entry active? + list: + type: integer + nullable: true + title: Selection List + description: Selection list to which this entry belongs + PatchedSelectionList: + type: object + description: Serializer for a selection list. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name of the selection list + maxLength: 100 + description: + type: string + description: Description of the selection list + maxLength: 250 + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: + type: integer + nullable: true + description: Plugin which provides the selection list + source_string: + type: string + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' + readOnly: true + nullable: true + created: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer + readOnly: true + PatchedStockItem: + type: object + description: |- + Serializer for a StockItem. + + - Includes serialization for the linked part + - Includes serialization for the item location + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Base Part + quantity: + type: number + format: double + serial: + type: string + nullable: true + title: Serial Number + description: Serial number for this item + maxLength: 100 + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + location: + type: integer + nullable: true + title: Stock Location + description: Where is this stock item located? + belongs_to: + type: integer + nullable: true + title: Installed In + description: Is this item installed in another item? + build: + type: integer + nullable: true + title: Source Build + description: Build for this stock item + consumed_by: + type: integer + nullable: true + description: Build order which consumed this stock item + customer: + type: integer + nullable: true + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: + type: string + format: date + nullable: true + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean + readOnly: true + is_building: + type: boolean + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: + type: integer + readOnly: true + nullable: true + title: Parent Item + description: Parent stock item + purchase_order: + type: integer + nullable: true + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: + type: string + readOnly: true + nullable: true + sales_order: + type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: + type: string + readOnly: true + nullable: true + status: + allOf: + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: + type: string + readOnly: true + nullable: true + title: Supplier Part Number + MPN: + type: string + readOnly: true + nullable: true + title: Manufacturer Part Number + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true + nullable: true + description: Date that this stock item was created + stocktake_date: + type: string + format: date + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + use_pack_size: + type: boolean + writeOnly: true + nullable: true + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: + type: string + writeOnly: true + nullable: true + description: Enter serial numbers for new items + allocated: + type: number + format: double + readOnly: true + nullable: true + title: Allocated Quantity + expired: + type: boolean + readOnly: true + nullable: true + installed_items: + type: integer + readOnly: true + nullable: true + child_items: + type: integer + readOnly: true + nullable: true + stale: + type: boolean + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + location_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + tags: + type: array + items: + type: string + tests: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' + readOnly: true + nullable: true + tracking_items: + type: integer + readOnly: true + nullable: true + PatchedStockItemTestResult: + type: object + description: Serializer for the StockItemTestResult model. + properties: + pk: + type: integer + readOnly: true + title: ID + stock_item: + type: integer + result: + type: boolean + description: Test result + value: + type: string + description: Test output value + maxLength: 500 + attachment: + type: string + format: uri + nullable: true + description: Test result attachment + notes: + type: string + description: Test notes + maxLength: 500 + test_station: + type: string + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: + type: string + format: date-time + nullable: true + title: Started + description: The timestamp of the test start + finished_datetime: + type: string + format: date-time + nullable: true + title: Finished + description: The timestamp of the test finish + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + template: + type: integer + nullable: true + title: Test template for this result + description: Template + template_detail: + allOf: + - $ref: '#/components/schemas/PartTestTemplate' + readOnly: true + nullable: true + PatchedStockLocationType: + type: object + description: Serializer for StockLocationType model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + icon: + type: string + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: + type: integer + readOnly: true + nullable: true + PatchedSupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + available: + type: number + format: double + availability_updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Date of last update of availability data + description: + type: string + nullable: true + description: Supplier part description + maxLength: 250 + in_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + link: + type: string + format: uri + nullable: true + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Manufacturer + manufacturer_part: + type: integer + nullable: true + description: Select manufacturer part + manufacturer_part_detail: + allOf: + - $ref: '#/components/schemas/ManufacturerPart' + readOnly: true + nullable: true + title: Manufacturer Part + MPN: + type: string + readOnly: true + nullable: true + note: + type: string + nullable: true + description: Notes + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + packaging: + type: string + nullable: true + description: Part packaging + maxLength: 50 + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: + type: number + format: double + readOnly: true + part: + type: integer + title: Base Part + description: Select part + pretty_name: + type: string + readOnly: true + nullable: true + SKU: + type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: + type: integer + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Supplier + updated: + type: string + format: date-time + readOnly: true + nullable: true + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tags: + type: array + items: + type: string + price_breaks: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + PatchedSupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. + + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + PatchedTransferOrder: + type: object + description: Serializer for a TransferOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Issued + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + take_from: + type: integer + nullable: true + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Destination for transferred items + destination_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + consume: + type: boolean + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + PatchedTransferOrderAllocation: + type: object + description: |- + Serializer for the TransferOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + PatchedTransferOrderLineItem: + type: object + description: Serializer for a TransferOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Transfer Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + transferred: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + PatchedUserProfile: + type: object + description: Serializer for the UserProfile model. + properties: + language: + type: string + nullable: true + description: Preferred language for the user + maxLength: 10 + theme: + nullable: true + description: Settings for the web UI as JSON - do not edit manually! + widgets: + nullable: true + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + PatchedUserSetPassword: + type: object + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + PatchedUserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + user: + type: integer + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + PendingTask: + type: object + description: Serializer for an individual pending task object. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + title: Cluster key + description: Name of the target cluster + maxLength: 100 + lock: + type: string + format: date-time + description: Lock time + task_id: + type: string + description: Unique task ID + name: + type: string + description: Task name + func: + type: string + title: Function + description: Function name + args: + type: string + title: Arguments + description: Task arguments + kwargs: + type: string + title: Keyword Arguments + description: Task keyword arguments + required: + - args + - func + - key + - kwargs + - lock + - name + - pk + - task_id + PluginActivate: + type: object + description: Serializer for activating or deactivating a plugin. + properties: + active: + type: boolean + default: true + title: Activate Plugin + description: Activate this plugin + PluginAdminDetail: + type: object + description: Serializer for a PluginConfig with admin details. + properties: + source: + type: string + nullable: true + title: Source File + description: Path to the source file for admin integration + context: + nullable: true + description: Optional context data for the admin integration + required: + - context + - source + PluginConfig: + type: object + description: Serializer for a PluginConfig. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + description: Key of plugin + name: + type: string + nullable: true + description: Name of the plugin + maxLength: 255 + package_name: + type: string + nullable: true + description: Name of the installed package, if the plugin was installed + via PIP + maxLength: 255 + active: + type: boolean + description: Is the plugin active + meta: + type: object + additionalProperties: {} + readOnly: true + mixins: + type: object + additionalProperties: {} + readOnly: true + is_builtin: + type: boolean + description: Return True if this is a 'builtin' plugin. + readOnly: true + is_sample: + type: boolean + description: Is this plugin a sample app? + readOnly: true + is_installed: + type: boolean + description: |- + Simple check to determine if this plugin is installed. + + A plugin might not be installed if it has been removed from the system, + but the PluginConfig associated with it still exists. + readOnly: true + is_package: + type: boolean + description: Return True if this is a 'package' plugin. + readOnly: true + is_mandatory: + type: boolean + readOnly: true + required: + - is_builtin + - is_installed + - is_mandatory + - is_package + - is_sample + - key + - meta + - mixins + - pk + PluginConfigInstall: + type: object + description: Serializer for installing a new plugin. + properties: + url: + type: string + title: Source URL + description: Source for the package - this can be a custom registry or a + VCS path + packagename: + type: string + title: Package Name + description: Name for the Plugin Package - can also contain a version indicator + version: + type: string + description: Version specifier for the plugin. Leave blank for latest version. + confirm: + type: boolean + title: Confirm plugin installation + description: This will install this plugin now into the current instance. + The instance will go into maintenance. + required: + - confirm + PluginRegistryError: + type: object + description: Serializer for a plugin registry error. + properties: + stage: + type: string + name: + type: string + message: + type: string + required: + - message + - name + - stage + PluginRegistryStatus: + type: object + description: Serializer for plugin registry status. + properties: + active_plugins: + type: integer + readOnly: true + registry_errors: + type: array + items: + $ref: '#/components/schemas/PluginRegistryError' + required: + - active_plugins + - registry_errors + PluginReload: + type: object + description: Serializer for remotely forcing plugin registry reload. + properties: + full_reload: + type: boolean + default: false + description: Perform a full reload of the plugin registry + force_reload: + type: boolean + default: false + description: Force a reload of the plugin registry, even if it is already + loaded + collect_plugins: + type: boolean + default: false + description: Collect plugins and add them to the registry + PluginSetting: + type: object + description: Serializer for the PluginSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - value + PluginUIFeature: + type: object + description: Serializer for a plugin ui feature. + properties: + plugin_name: + type: string + feature_type: + type: string + key: + type: string + title: Feature Label + title: + type: string + title: Feature Title + description: + type: string + title: Feature Description + icon: + type: string + title: Feature Icon + options: + type: object + additionalProperties: {} + title: Feature Options + context: + type: object + additionalProperties: {} + title: Feature Context + source: + type: string + title: Feature Source (javascript) + required: + - feature_type + - key + - plugin_name + PluginUninstall: + type: object + description: Serializer for uninstalling a plugin. + properties: + delete_config: + type: boolean + default: true + title: Delete configuration + description: Delete the plugin configuration from the database + PluginUserSetting: + type: object + description: Serializer for the PluginUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + type: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + model_filters: + type: object + additionalProperties: {} + readOnly: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + units: + type: string + readOnly: true + required: + type: boolean + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + plugin: + type: string + readOnly: true + user: + type: integer + readOnly: true + description: The user for which this setting applies + required: + - choices + - confirm + - confirm_text + - description + - key + - model_filters + - name + - pk + - plugin + - required + - typ + - type + - units + - user + - value + PriorityEnum: + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + type: integer + description: |- + * `0` - None + * `1` - Very High + * `2` - High + * `3` - Normal + * `4` - Low + * `5` - Very Low + ProjectCode: + type: object + description: Serializer for the ProjectCode model. + properties: + pk: + type: integer + readOnly: true + title: ID + code: + type: string + title: Project Code + description: Unique project code + maxLength: 50 + description: + type: string + description: Project description + maxLength: 200 + responsible: + type: integer + nullable: true + description: User or group responsible for this project + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + required: + - code + - pk + PurchaseOrder: + type: object + description: Serializer for a PurchaseOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + readOnly: true + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Placed + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: + type: string + format: date + readOnly: true + nullable: true + title: Completion Date + description: Date order was completed + supplier: + type: integer + nullable: true + description: Company from which the items are being ordered + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + supplier_reference: + type: string + description: Supplier order reference code + maxLength: 64 + supplier_name: + type: string + readOnly: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + destination: + type: integer + nullable: true + description: Destination for received items + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + - supplier + - supplier_name + PurchaseOrderComplete: + type: object + description: Serializer for completing a purchase order. + properties: + accept_incomplete: + type: boolean + default: false + description: Allow order to be closed with incomplete line items + PurchaseOrderExtraLine: + type: object + description: Serializer for a PurchaseOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + PurchaseOrderLineItem: + type: object + description: Serializer class for the PurchaseOrderLineItem model. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Purchase Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + minimum: 0 + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/PurchaseOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + part: + type: integer + nullable: true + title: Supplier Part + build_order: + type: integer + nullable: true + description: External Build Order to be fulfilled by this line item + overdue: + type: boolean + readOnly: true + nullable: true + received: + type: number + format: double + readOnly: true + default: 0.0 + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + purchase_price_currency: + type: string + title: Currency + description: |- + Purchase price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + auto_pricing: + type: boolean + default: false + description: Automatically calculate purchase price based on supplier part + data + destination: + type: integer + nullable: true + description: Destination for received items + total_price: + type: number + format: double + readOnly: true + merge_items: + type: boolean + writeOnly: true + default: true + description: Merge items with the same part, destination and target date + into one line item + sku: + type: string + readOnly: true + nullable: true + mpn: + type: string + readOnly: true + nullable: true + ipn: + type: string + readOnly: true + nullable: true + title: Internal Part Number + internal_part: + type: integer + readOnly: true + internal_part_name: + type: string + readOnly: true + build_order_detail: + allOf: + - $ref: '#/components/schemas/Build' + readOnly: true + nullable: true + destination_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + required: + - internal_part + - internal_part_name + - order + - part + - pk + - quantity + - received + - total_price + PurchaseOrderLineItemReceive: + type: object + description: A serializer for receiving a single purchase order line item against + a purchase order. + properties: + line_item: + type: integer + location: + type: integer + nullable: true + description: Select destination location for received items + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch_code: + type: string + default: '' + description: Enter batch code for incoming stock items + expiry_date: + type: string + format: date + nullable: true + description: Enter expiry date for incoming stock items + serial_numbers: + type: string + default: '' + description: Enter serial numbers for incoming stock items + status: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + packaging: + type: string + default: '' + description: Override packaging information for incoming stock items + note: + type: string + default: '' + description: Additional note for incoming stock items + barcode: + type: string + nullable: true + default: '' + description: Scanned barcode + required: + - line_item + - quantity + PurchaseOrderReceive: + type: object + description: Serializer for receiving items against a PurchaseOrder. + properties: + items: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItemReceive' + location: + type: integer + nullable: true + description: Select destination location for received items + required: + - items + ReferenceStatusEnum: + enum: + - BuildStatus + - DataImportStatusCode + - MachineStatus + - PurchaseOrderStatus + - RepairOrderStatus + - ReturnOrderLineStatus + - ReturnOrderStatus + - SalesOrderStatus + - StockHistoryCode + - StockStatus + - TransferOrderStatus + type: string + description: |- + * `BuildStatus` - BuildStatus + * `DataImportStatusCode` - DataImportStatusCode + * `MachineStatus` - MachineStatus + * `PurchaseOrderStatus` - PurchaseOrderStatus + * `RepairOrderStatus` - RepairOrderStatus + * `ReturnOrderLineStatus` - ReturnOrderLineStatus + * `ReturnOrderStatus` - ReturnOrderStatus + * `SalesOrderStatus` - SalesOrderStatus + * `StockHistoryCode` - StockHistoryCode + * `StockStatus` - StockStatus + * `TransferOrderStatus` - TransferOrderStatus + RepairOrder: + type: object + description: Serializer for a RepairOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + reference: + type: string + description: Repair Order Reference + maxLength: 100 + customer: + type: integer + nullable: true + description: Customer reference + description: + type: string + description: Repair order description + maxLength: 250 + symptoms: + type: string + description: Reported symptoms or issues + status: + allOf: + - $ref: '#/components/schemas/RepairOrderStatusEnum' + description: |- + Repair order status + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + minimum: 0 + maximum: 9223372036854775807 + required: + - description + - pk + - reference + RepairOrderAllocation: + type: object + description: Serializer for a RepairOrderAllocation object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: integer + title: Line Item + item: + type: integer + title: Stock Item + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Allocated stock quantity + required: + - item + - line + - pk + RepairOrderLineItem: + type: object + description: Serializer for a RepairOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + title: Repair Order + part: + type: integer + nullable: true + description: Part to be consumed for repair + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + description: Item quantity required for repair + required: + - order + - pk + RepairOrderStatusEnum: + enum: + - 10 + - 20 + - 25 + - 30 + - 40 + type: integer + description: |- + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + ReportAsset: + type: object + description: Serializer class for the ReportAsset model. + properties: + pk: + type: integer + readOnly: true + title: ID + asset: + type: string + format: uri + description: + type: string + description: Asset file description + maxLength: 250 + required: + - asset + - description + - pk + ReportPrint: + type: object + description: Serializer class for printing a report. + properties: + template: + type: integer + description: Select report template + items: + type: array + items: + type: integer + description: List of item primary keys to include in the report + required: + - items + - template + ReportSnippet: + type: object + description: Serializer class for the ReportSnippet model. + properties: + pk: + type: integer + readOnly: true + title: ID + snippet: + type: string + format: uri + description: + type: string + description: Snippet file description + maxLength: 250 + required: + - description + - pk + - snippet + ReportTemplate: + type: object + description: Serializer class for report template model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Template name + maxLength: 100 + description: + type: string + description: Template description + maxLength: 250 + model_type: + $ref: '#/components/schemas/TemplateModelTypeEnum' + template: + type: string + format: uri + filters: + type: string + description: Template query filters (comma-separated list of key=value pairs) + maxLength: 250 + filename_pattern: + type: string + description: Pattern for generating filenames + maxLength: 100 + enabled: + type: boolean + description: Template is enabled + revision: + type: integer + readOnly: true + attach_to_model: + type: boolean + title: Attach to Model on Print + description: Save report output as an attachment against linked model instance + when printing + updated: + type: string + format: date-time + nullable: true + description: Timestamp of last update + updated_by: + type: integer + nullable: true + title: Update By + description: User who last updated this object + updated_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + page_size: + allOf: + - $ref: '#/components/schemas/PageSizeEnum' + default: A4 + landscape: + type: boolean + description: Render report in landscape orientation + merge: + type: boolean + description: Render a single report against selected items + required: + - description + - model_type + - name + - pk + - revision + - template + ReturnOrder: + type: object + description: Serializer for the ReturnOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - In Progress + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + customer: + type: integer + nullable: true + description: Company from which items are being returned + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + ReturnOrderExtraLine: + type: object + description: Serializer for a ReturnOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + ReturnOrderLineItem: + type: object + description: Serializer for a ReturnOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Return Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + description: Quantity to return + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/ReturnOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + item: + type: integer + description: Select item to return from customer + received_date: + type: string + format: date + nullable: true + description: The date this return item was received + outcome: + allOf: + - $ref: '#/components/schemas/OutcomeEnum' + description: |- + Outcome for this line item + + * `10` - Pending + * `20` - Return + * `30` - Repair + * `40` - Replace + * `50` - Refund + * `60` - Reject + minimum: 0 + maximum: 9223372036854775807 + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Line price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + required: + - item + - order + - pk + - quantity + ReturnOrderLineItemReceive: + type: object + description: Serializer for receiving a single line item against a ReturnOrder. + properties: + item: + type: integer + title: Return order line item + status: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + required: + - item + ReturnOrderReceive: + type: object + description: Serializer for receiving items against a ReturnOrder. + properties: + items: + type: array + items: + $ref: '#/components/schemas/ReturnOrderLineItemReceive' + location: + type: integer + description: Select destination location for received items + note: + type: string + default: '' + description: Additional note for incoming stock items + required: + - items + - location + Role: + type: object + description: Serializer for a roles associated with a given user. + properties: + user: + type: integer + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + roles: + type: object + additionalProperties: {} + description: Roles associated with the user. + readOnly: true + permissions: + type: object + additionalProperties: {} + description: Permissions associated with the user. + readOnly: true + nullable: true + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + required: + - roles + - user + - username + RuleSet: + type: object + description: Serializer for a RuleSet. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + allOf: + - $ref: '#/components/schemas/NameEnum' + readOnly: true + description: |- + Permission set + + * `admin` - Admin + * `part_category` - Part Categories + * `part` - Parts + * `bom` - Bills of Material + * `stock_location` - Stock Locations + * `stock` - Stock Items + * `build` - Build Orders + * `purchase_order` - Purchase Orders + * `sales_order` - Sales Orders + * `return_order` - Return Orders + * `transfer_order` - Transfer Orders + * `repair_order` - Repair Orders + label: + type: string + description: Return the translated label for this ruleset. + readOnly: true + group: + type: integer + readOnly: true + description: Group + can_view: + type: boolean + title: View + description: Permission to view items + can_add: + type: boolean + title: Add + description: Permission to add items + can_change: + type: boolean + title: Change + description: Permissions to edit items + can_delete: + type: boolean + title: Delete + description: Permission to delete items + required: + - group + - label + - name + - pk + SalesOrder: + type: object + description: Serializer for the SalesOrder model class. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `15` - In Progress + * `20` - Shipped + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + * `50` - Lost + * `60` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + customer: + type: integer + nullable: true + description: Company to which the items are being sold + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + customer_reference: + type: string + description: Customer order reference code + maxLength: 64 + shipment_date: + type: string + format: date + readOnly: true + nullable: true + total_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + readOnly: true + nullable: true + order_currency: + type: string + nullable: true + description: |- + Currency for this order (leave blank to use company default) + + * `` - --------- + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipments_count: + type: integer + readOnly: true + nullable: true + title: Shipments + completed_shipments_count: + type: integer + readOnly: true + nullable: true + title: Completed Shipments + allocated_lines: + type: integer + readOnly: true + nullable: true + updated_at: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - barcode_hash + - created_by + - pk + - reference + - status + SalesOrderAllocation: + type: object + description: |- + Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + shipment: + type: integer + nullable: true + description: Sales order shipment reference + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + shipment_detail: + allOf: + - $ref: '#/components/schemas/SalesOrderShipment' + readOnly: true + nullable: true + required: + - item + - line + - location + - order + - part + - pk + - quantity + SalesOrderAutoAllocation: + type: object + description: DRF serializer for auto-allocating stock items against a SalesOrder. + properties: + location: + type: integer + nullable: true + title: Source Location + description: Stock location where items are sourced (leave blank to use + any location) + exclude_location: + type: integer + nullable: true + description: Exclude stock items from this location + shipment: + type: integer + nullable: true + description: Assign allocations to this shipment + interchangeable: + type: boolean + default: true + title: Interchangeable Stock + description: Allow stock to be taken from multiple locations to fulfil a + single line item + stock_sort_by: + allOf: + - $ref: '#/components/schemas/StockSortByEnum' + default: updated + title: Stock Priority + description: |- + Preferred order in which matching stock items are consumed + + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + serialized_stock: + allOf: + - $ref: '#/components/schemas/SerializedStockEnum' + default: any + description: |- + Control whether serialized stock items are included in auto-allocation + + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + line_items: + type: array + items: + type: integer + title: Line Items + description: Limit allocation to these line items (leave blank to allocate + all lines) + SalesOrderComplete: + type: object + description: DRF serializer for manually marking a sales order as complete. + properties: + accept_incomplete: + type: boolean + default: false + description: Allow order to be closed with incomplete line items + SalesOrderExtraLine: + type: object + description: Serializer for a SalesOrderExtraLine object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + description: + type: string + description: Line item description (optional) + maxLength: 250 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + description: Target date for this line item (leave blank to use the target + date from the order) + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + required: + - order + - pk + - quantity + SalesOrderLineItem: + type: object + description: Serializer for a SalesOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Sales Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + sale_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + sale_price_currency: + type: string + title: Currency + description: |- + Sale price currency + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + shipped: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + required: + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order + - pk + - quantity + - shipped + SalesOrderSerialAllocation: + type: object + description: DRF serializer for allocation of serial numbers against a sales + order / shipment. + properties: + line_item: + type: integer + quantity: + type: integer + minimum: 1 + serial_numbers: + type: string + description: Enter serial numbers to allocate + shipment: + type: integer + nullable: true + required: + - line_item + - quantity + - serial_numbers + SalesOrderShipment: + type: object + description: Serializer for the SalesOrderShipment class. + properties: + pk: + type: integer + readOnly: true + title: ID + order: + type: integer + description: Sales Order + allocated_items: + type: integer + readOnly: true + nullable: true + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + shipment_address: + type: integer + nullable: true + title: Address + description: Shipping address for this shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + checked_by: + type: integer + nullable: true + description: User who checked this shipment + reference: + type: string + default: '1' + title: Shipment + description: Shipment number + maxLength: 100 + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + barcode_hash: + type: string + description: Unique hash of barcode data + maxLength: 128 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + checked_by_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + customer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/SalesOrder' + readOnly: true + nullable: true + shipment_address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + required: + - order + - pk + SalesOrderShipmentAllocation: + type: object + description: DRF serializer for allocation of stock items against a sales order + / shipment. + properties: + items: + type: array + items: + $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' + shipment: + type: integer + nullable: true + required: + - items + SalesOrderShipmentAllocationItem: + type: object + description: A serializer for allocating a single stock-item against a SalesOrder + shipment. + properties: + line_item: + type: integer + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - line_item + - quantity + - stock_item + SalesOrderShipmentComplete: + type: object + description: Serializer for completing (shipping) a SalesOrderShipment. + properties: + shipment_date: + type: string + format: date + nullable: true + description: Date of shipment + delivery_date: + type: string + format: date + nullable: true + description: Date of delivery of shipment + tracking_number: + type: string + description: Shipment tracking information + maxLength: 100 + invoice_number: + type: string + description: Reference number for associated invoice + maxLength: 100 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + ScheduleTypeEnum: + enum: + - O + - I + - H + - D + - W + - BW + - M + - BM + - Q + - Y + - C + type: string + description: |- + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + ScheduledTask: + type: object + description: Serializer for an individual scheduled task object. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + nullable: true + description: Optional label to identify this schedule in the admin. + maxLength: 100 + func: + type: string + title: Function + description: e.g. module.tasks.function + maxLength: 256 + args: + type: string + nullable: true + title: Arguments + description: e.g. 1, 2, 'John' + kwargs: + type: string + nullable: true + title: Keyword arguments + description: e.g. x=1, y=2, name='John' + schedule_type: + allOf: + - $ref: '#/components/schemas/ScheduleTypeEnum' + description: |- + How often this task should be enqueued. + + * `O` - Once + * `I` - Minutes + * `H` - Hourly + * `D` - Daily + * `W` - Weekly + * `BW` - Biweekly + * `M` - Monthly + * `BM` - Bimonthly + * `Q` - Quarterly + * `Y` - Yearly + * `C` - Cron + repeats: + type: integer + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 + description: n = n times, -1 = forever + last_run: + type: string + format: date-time + next_run: + type: string + format: date-time + nullable: true + description: When this schedule runs next (stored in UTC). + success: + type: boolean + task: + type: string + readOnly: true + nullable: true + title: Last task id + description: Id of the last task spawned from this schedule (read-only). + required: + - func + - last_run + - pk + - success + SearchResult: + type: object + description: Serializer for a search result. + properties: + id: + type: string + sku: + type: string + name: + type: string + exact: + type: boolean + description: + type: string + price: + type: string + link: + type: string + image_url: + type: string + existing_part_id: + type: integer + nullable: true + description: Return the ID of the existing part if available. + readOnly: true + required: + - description + - exact + - id + - image_url + - link + - name + - price + - sku + SelectionEntry: + type: object + description: Serializer for a selection entry. + properties: + id: + type: integer + readOnly: true + value: + type: string + description: Value of the selection list entry + maxLength: 255 + label: + type: string + description: Label for the selection list entry + maxLength: 255 + description: + type: string + description: Description of the selection list entry + maxLength: 250 + active: + type: boolean + description: Is this selection list entry active? + list: + type: integer + nullable: true + title: Selection List + description: Selection list to which this entry belongs + required: + - id + - label + - value + SelectionList: + type: object + description: Serializer for a selection list. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name of the selection list + maxLength: 100 + description: + type: string + description: Description of the selection list + maxLength: 250 + active: + type: boolean + description: Can this selection list be used? + locked: + type: boolean + description: Is this selection list locked? + source_plugin: + type: integer + nullable: true + description: Plugin which provides the selection list + source_string: + type: string + description: Optional string identifying the source used for this list + maxLength: 1000 + default: + allOf: + - $ref: '#/components/schemas/SelectionEntry' + readOnly: true + nullable: true + created: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was created + last_updated: + type: string + format: date-time + readOnly: true + description: Date and time that the selection list was last updated + choices: + type: array + items: + $ref: '#/components/schemas/SelectionEntry' + entry_count: + type: integer + readOnly: true + required: + - created + - entry_count + - last_updated + - name + - pk + SerializeStockItem: + type: object + description: |- + A DRF serializer for "serializing" a StockItem. + + (Sorry for the confusing naming...) + + Here, "serializing" means splitting out a single StockItem, + into multiple single-quantity items with an assigned serial number + + Note: The base StockItem object is provided to the serializer context + properties: + quantity: + type: integer + minimum: 0 + description: Enter number of stock items to serialize + serial_numbers: + type: string + description: Enter serial numbers for new items + destination: + type: integer + title: Location + description: Destination stock location + notes: + type: string + description: Optional note field + required: + - destination + - quantity + - serial_numbers + SerializedStockEnum: + enum: + - any + - serialized + - unserialized + type: string + description: |- + * `any` - Allow any stock (serialized or unserialized) + * `serialized` - Serialized stock only + * `unserialized` - Unserialized stock only + Settings: + type: object + description: Serializer for InfoApiSerializer. + properties: + sso_registration: + type: boolean + registration_enabled: + type: boolean + password_forgotten_enabled: + type: boolean + required: + - password_forgotten_enabled + - registration_enabled + - sso_registration + StockAdd: + type: object + description: Serializer for adding stock to stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + required: + - items + StockAdjustmentItem: + type: object + description: |- + Serializer for a single StockItem within a stock adjustment request. + + Required Fields: + - item: StockItem object + - quantity: Numerical quantity + + Optional Fields (may be used by external tools) + - status: Change StockItem status code + - packaging: Change StockItem packaging + - batch: Change StockItem batch code + + The optional fields can be used to adjust values for individual stock items + properties: + pk: + type: integer + title: stock_item + description: StockItem primary key value + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + batch: + type: string + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + status: + type: integer + description: |- + Stock item status code + + * `None` - No Change + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + packaging: + type: string + description: Packaging this stock item is stored in + maxLength: 50 + required: + - pk + - quantity + StockAssignment: + type: object + description: |- + Serializer for assigning one (or more) stock items to a customer. + + This is a manual assignment process, separate for (for example) a Sales Order + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAssignmentItem' + customer: + type: integer + description: Customer to assign stock items + notes: + type: string + description: Stock assignment notes + required: + - customer + - items + StockAssignmentItem: + type: object + description: |- + Serializer for a single StockItem with in StockAssignment request. + + Here, the particular StockItem is being assigned (manually) to a customer + + Fields: + - item: StockItem object + properties: + item: + type: integer + title: Stock Item + required: + - item + StockChangeStatus: + type: object + description: Serializer for changing status of multiple StockItem objects. + properties: + items: + type: array + items: + type: integer + title: Stock Items + title: Stock Items + description: Select stock items to change status + status: + type: integer + description: |- + Stock item status code + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. + default: 10 + note: + type: string + title: Notes + description: Add transaction note (optional) + required: + - items + StockCount: + type: object + description: Serializer for counting stock items. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + nullable: true + description: Set stock location for counted items (optional) + required: + - items + StockItem: + type: object + description: |- + Serializer for a StockItem. + + - Includes serialization for the linked part + - Includes serialization for the item location + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + description: Base Part + quantity: + type: number + format: double + serial: + type: string + nullable: true + title: Serial Number + description: Serial number for this item + maxLength: 100 + batch: + type: string + nullable: true + title: Batch Code + description: Batch code for this stock item + maxLength: 100 + location: + type: integer + nullable: true + title: Stock Location + description: Where is this stock item located? + belongs_to: + type: integer + nullable: true + title: Installed In + description: Is this item installed in another item? + build: + type: integer + nullable: true + title: Source Build + description: Build for this stock item + consumed_by: + type: integer + nullable: true + description: Build order which consumed this stock item + customer: + type: integer + nullable: true + description: Customer + delete_on_deplete: + type: boolean + description: Delete this Stock Item when stock is depleted + expiry_date: + type: string + format: date + nullable: true + description: Expiry date for stock item. Stock will be considered expired + after this date + in_stock: + type: boolean + readOnly: true + is_building: + type: boolean + link: + type: string + format: uri + title: External Link + description: Link to external URL + maxLength: 2000 + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + owner: + type: integer + nullable: true + description: Select Owner + packaging: + type: string + nullable: true + description: Packaging this stock item is stored in + maxLength: 50 + parent: + type: integer + readOnly: true + nullable: true + title: Parent Item + description: Parent stock item + purchase_order: + type: integer + nullable: true + title: Source Purchase Order + description: Purchase order for this stock item + purchase_order_reference: + type: string + readOnly: true + nullable: true + sales_order: + type: integer + nullable: true + title: Destination Sales Order + sales_order_reference: + type: string + readOnly: true + nullable: true + status: + allOf: + - $ref: '#/components/schemas/StockItemStatusEnum' + minimum: 0 + maximum: 9223372036854775807 + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + supplier_part: + type: integer + nullable: true + description: Select a matching supplier part for this stock item + SKU: + type: string + readOnly: true + nullable: true + title: Supplier Part Number + MPN: + type: string + readOnly: true + nullable: true + title: Manufacturer Part Number + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + creation_date: + type: string + format: date-time + readOnly: true + nullable: true + description: Date that this stock item was created + stocktake_date: + type: string + format: date + readOnly: true + nullable: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + purchase_price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + description: Purchase price of this stock item, per unit or pack + purchase_price_currency: + type: string + title: Currency + description: |- + Purchase currency of this stock item + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + use_pack_size: + type: boolean + writeOnly: true + nullable: true + description: 'Use pack size when adding: the quantity defined is the number + of packs' + serial_numbers: + type: string + writeOnly: true + nullable: true + description: Enter serial numbers for new items + allocated: + type: number + format: double + readOnly: true + nullable: true + title: Allocated Quantity + expired: + type: boolean + readOnly: true + nullable: true + installed_items: + type: integer + readOnly: true + nullable: true + child_items: + type: integer + readOnly: true + nullable: true + stale: + type: boolean + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + title: Location + location_path: + type: array + items: + $ref: '#/components/schemas/TreePath' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + supplier_part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + title: Supplier Part + tags: + type: array + items: + type: string + tests: + type: array + items: + $ref: '#/components/schemas/StockItemTestResult' + readOnly: true + nullable: true + tracking_items: + type: integer + readOnly: true + nullable: true + required: + - barcode_hash + - in_stock + - part + - pk + - quantity + StockItemSerialNumbers: + type: object + description: Serializer for extra serial number information about a stock item. + properties: + next: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Next Serial Number + previous: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + title: Previous Serial Number + required: + - next + - previous + StockItemStatusEnum: + enum: + - 10 + - 50 + - 55 + - 60 + - 65 + - 70 + - 75 + - 85 + type: integer + description: |- + * `10` - OK + * `50` - Attention needed + * `55` - Damaged + * `60` - Destroyed + * `65` - Rejected + * `70` - Lost + * `75` - Quarantined + * `85` - Returned + StockItemTestResult: + type: object + description: Serializer for the StockItemTestResult model. + properties: + pk: + type: integer + readOnly: true + title: ID + stock_item: + type: integer + result: + type: boolean + description: Test result + value: + type: string + description: Test output value + maxLength: 500 + attachment: + type: string + format: uri + nullable: true + description: Test result attachment + notes: + type: string + description: Test notes + maxLength: 500 + test_station: + type: string + description: The identifier of the test station where the test was performed + maxLength: 500 + started_datetime: + type: string + format: date-time + nullable: true + title: Started + description: The timestamp of the test start + finished_datetime: + type: string + format: date-time + nullable: true + title: Finished + description: The timestamp of the test finish + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + template: + type: integer + nullable: true + title: Test template for this result + description: Template + template_detail: + allOf: + - $ref: '#/components/schemas/PartTestTemplate' + readOnly: true + nullable: true + required: + - date + - pk + - stock_item + StockLocationType: + type: object + description: Serializer for StockLocationType model. + properties: + pk: + type: integer + readOnly: true + title: ID + name: + type: string + description: Name + maxLength: 100 + description: + type: string + description: Description (optional) + maxLength: 250 + icon: + type: string + description: Default icon for all locations that have no icon set (optional) + maxLength: 100 + location_count: + type: integer + readOnly: true + nullable: true + required: + - name + - pk + StockMerge: + type: object + description: Serializer for merging two (or more) stock items together. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockMergeItem' + location: + type: integer + description: Destination stock location + notes: + type: string + description: Stock merging notes + allow_mismatched_suppliers: + type: boolean + description: Allow stock items with different supplier parts to be merged + allow_mismatched_status: + type: boolean + description: Allow stock items with different status codes to be merged + required: + - items + - location + StockMergeItem: + type: object + description: |- + Serializer for a single StockItem within the StockMergeSerializer class. + + Here, the individual StockItem is being checked for merge compatibility. + properties: + item: + type: integer + title: Stock Item + required: + - item + StockRemove: + type: object + description: Serializer for removing stock from stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + required: + - items + StockReturn: + type: object + description: Serializer class for returning stock item(s) into stock. + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + description: Destination stock location + merge: + type: boolean + default: false + title: Merge into existing stock + description: Merge returned items into existing stock items if possible + required: + - items + - location + StockSortByEnum: + enum: + - updated + - -updated + - quantity + - -quantity + - expiry_date + type: string + description: |- + * `updated` - Oldest stock first (FIFO) + * `-updated` - Newest stock first (LIFO) + * `quantity` - Smallest quantity first + * `-quantity` - Largest quantity first + * `expiry_date` - Soonest expiry date first + StockTracking: + type: object + description: Serializer for StockItemTracking model. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + nullable: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part: + type: integer + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + date: + type: string + format: date-time + readOnly: true + deltas: + readOnly: true + label: + type: string + readOnly: true + notes: + type: string + nullable: true + description: Entry notes + maxLength: 512 + tracking_type: + type: integer + readOnly: true + user: + type: integer + readOnly: true + nullable: true + user_detail: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + nullable: true + required: + - date + - deltas + - label + - pk + - tracking_type + StockTransfer: + type: object + description: Serializer for transferring (moving) stock item(s). + properties: + items: + type: array + items: + $ref: '#/components/schemas/StockAdjustmentItem' + notes: + type: string + description: Stock transaction notes + location: + type: integer + description: Destination stock location + required: + - items + - location + SupplierList: + type: object + description: Serializer for a supplier plugin. + properties: + plugin_slug: + type: string + supplier_slug: + type: string + supplier_name: + type: string + required: + - plugin_slug + - supplier_name + - supplier_slug + SupplierPart: + type: object + description: Serializer for SupplierPart object. + properties: + available: + type: number + format: double + availability_updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Date of last update of availability data + description: + type: string + nullable: true + description: Supplier part description + maxLength: 250 + in_stock: + type: number + format: double + readOnly: true + nullable: true + on_order: + type: number + format: double + readOnly: true + nullable: true + link: + type: string + format: uri + nullable: true + description: URL for external supplier part link + maxLength: 2000 + active: + type: boolean + description: Is this supplier part active? + primary: + type: boolean + description: Is this the primary supplier part for the linked Part? + manufacturer_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Manufacturer + manufacturer_part: + type: integer + nullable: true + description: Select manufacturer part + manufacturer_part_detail: + allOf: + - $ref: '#/components/schemas/ManufacturerPart' + readOnly: true + nullable: true + title: Manufacturer Part + MPN: + type: string + readOnly: true + nullable: true + note: + type: string + nullable: true + description: Notes + maxLength: 100 + pk: + type: integer + readOnly: true + title: ID + barcode_hash: + type: string + readOnly: true + description: Unique hash of barcode data + packaging: + type: string + nullable: true + description: Part packaging + maxLength: 50 + pack_quantity: + type: string + description: Total quantity supplied in a single pack. Leave empty for single + items. + maxLength: 25 + pack_quantity_native: + type: number + format: double + readOnly: true + part: + type: integer + title: Base Part + description: Select part + pretty_name: + type: string + readOnly: true + nullable: true + SKU: + type: string + description: Supplier stock keeping unit + maxLength: 100 + supplier: + type: integer + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + title: Supplier + updated: + type: string + format: date-time + readOnly: true + nullable: true + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + title: Part + tags: + type: array + items: + type: string + price_breaks: + type: array + items: + $ref: '#/components/schemas/SupplierPriceBreakBrief' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + required: + - SKU + - barcode_hash + - pack_quantity_native + - part + - pk + - supplier + SupplierPriceBreak: + type: object + description: |- + Serializer for SupplierPriceBreak object. + + Note that this inherits from the SupplierPriceBreakBriefSerializer, + and does so to prevent circular serializer import issues. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + supplier_detail: + allOf: + - $ref: '#/components/schemas/CompanyBrief' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/SupplierPart' + readOnly: true + nullable: true + required: + - part + - pk + - price + - quantity + - supplier + SupplierPriceBreakBrief: + type: object + description: |- + Brief serializer for SupplierPriceBreak object. + + Used to provide a list of price breaks against the SupplierPart object. + properties: + pk: + type: integer + readOnly: true + title: ID + part: + type: integer + quantity: + type: number + format: double + price: + type: string + format: decimal + pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ + nullable: true + price_currency: + type: string + title: Currency + description: |- + Select currency from available options + + * `AUD` - AUD - Australian Dollar + * `CAD` - CAD - Canadian Dollar + * `CNY` - CNY - Chinese Yuan + * `EUR` - EUR - Euro + * `GBP` - GBP - British Pound + * `JPY` - JPY - Japanese Yen + * `NZD` - NZD - New Zealand Dollar + * `USD` - USD - US Dollar + + Other valid currencies may be found in the 'CURRENCY_CODES' global setting. + supplier: + type: integer + readOnly: true + updated: + type: string + format: date-time + readOnly: true + nullable: true + description: Timestamp of last update + required: + - part + - pk + - price + - quantity + - supplier + TaskDetail: + type: object + description: Serializer for a background task detail. + properties: + task_id: + type: string + readOnly: true + exists: + type: boolean + readOnly: true + pending: + type: boolean + readOnly: true + complete: + type: boolean + readOnly: true + success: + type: boolean + readOnly: true + http_status: + type: integer + readOnly: true + required: + - complete + - exists + - http_status + - pending + - success + - task_id + TaskOverview: + type: object + description: Serializer for background task overview. + properties: + is_running: + type: boolean + readOnly: true + description: Boolean value to indicate if the background worker process + is running. + pending_tasks: + type: integer + readOnly: true + description: Number of active background tasks + scheduled_tasks: + type: integer + readOnly: true + description: Number of scheduled background tasks + failed_tasks: + type: integer + readOnly: true + description: Number of failed background tasks + required: + - failed_tasks + - is_running + - pending_tasks + - scheduled_tasks + TemplateModelTypeEnum: + enum: + - build + - buildline + - company + - purchaseorder + - repairorder + - returnorder + - salesorder + - salesordershipment + - transferorder + - part + - stockitem + - stocklocation + type: string + description: |- + * `build` - Build Order + * `buildline` - Build Order Line Item + * `company` - Company + * `purchaseorder` - Purchase Order + * `repairorder` - Repair Order + * `returnorder` - Return Order + * `salesorder` - Sales Order + * `salesordershipment` - Sales Order Shipment + * `transferorder` - Transfer Order + * `part` - Part + * `stockitem` - Stock Item + * `stocklocation` - Stock Location + TestEmail: + type: object + description: Serializer to send a test email. + properties: + email: + type: string + format: email + required: + - email + TransferOrder: + type: object + description: Serializer for a TransferOrder object. + properties: + pk: + type: integer + readOnly: true + title: ID + created_by: + allOf: + - $ref: '#/components/schemas/User' + readOnly: true + creation_date: + type: string + format: date + nullable: true + issue_date: + type: string + format: date + nullable: true + description: Date order was issued + start_date: + type: string + format: date + nullable: true + description: Scheduled start date for this order + target_date: + type: string + format: date + nullable: true + description: Expected date for order delivery. Order will be overdue after + this date. + description: + type: string + description: Order description (optional) + maxLength: 250 + line_items: + type: integer + readOnly: true + nullable: true + completed_lines: + type: integer + readOnly: true + nullable: true + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + project_code: + type: integer + nullable: true + description: Select project code for this order + reference: + type: string + responsible: + type: integer + nullable: true + description: User or group responsible for this order + contact: + type: integer + nullable: true + description: Point of contact for this order + address: + type: integer + nullable: true + description: Company address for this order + status: + type: integer + readOnly: true + title: Order Status + status_text: + type: string + nullable: true + readOnly: true + status_custom_key: + type: integer + readOnly: true + nullable: true + title: Custom status key + description: |- + Additional status information for this item + + * `10` - Pending + * `20` - Issued + * `25` - On Hold + * `30` - Complete + * `40` - Cancelled + + Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. + notes: + type: string + nullable: true + description: Markdown notes (optional) + maxLength: 50000 + barcode_hash: + type: string + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + duplicate: + allOf: + - $ref: '#/components/schemas/DuplicateOrder' + writeOnly: true + title: Duplicate Order + description: Specify options for duplicating this order + address_detail: + allOf: + - $ref: '#/components/schemas/AddressBrief' + readOnly: true + nullable: true + contact_detail: + allOf: + - $ref: '#/components/schemas/Contact' + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + responsible_detail: + allOf: + - $ref: '#/components/schemas/Owner' + readOnly: true + nullable: true + parameters: + type: array + items: + $ref: '#/components/schemas/Parameter' + readOnly: true + nullable: true + take_from: + type: integer + nullable: true + title: Source Location + description: Source for transferred items + take_from_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + destination: + type: integer + nullable: true + title: Destination Location + description: Destination for transferred items + destination_detail: + allOf: + - $ref: '#/components/schemas/Location' + readOnly: true + nullable: true + consume: + type: boolean + title: Consume Stock + description: Rather than transfer the stock to the destination, "consume" + it, by removing transferred quantity from the allocated stock item + complete_date: + type: string + format: date + nullable: true + title: Completion Date + description: Date order was completed + required: + - barcode_hash + - created_by + - pk + - reference + - status + TransferOrderAllocation: + type: object + description: |- + Serializer for the TransferOrderAllocation model. + + This includes some fields from the related model objects. + properties: + pk: + type: integer + readOnly: true + title: ID + item: + type: integer + description: Select stock item to allocate + quantity: + type: number + format: double + line: + type: integer + readOnly: true + part: + type: integer + readOnly: true + order: + type: integer + readOnly: true + serial: + type: string + readOnly: true + nullable: true + location: + type: integer + readOnly: true + item_detail: + allOf: + - $ref: '#/components/schemas/StockItem' + readOnly: true + nullable: true + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + location_detail: + allOf: + - $ref: '#/components/schemas/LocationBrief' + readOnly: true + nullable: true + required: + - item + - line + - location + - order + - part + - pk + - quantity + TransferOrderAllocationItem: + type: object + description: A serializer for allocating a single stock-item against a TransferOrder + line item. + properties: + line_item: + type: integer + title: Stock Item + stock_item: + type: integer + quantity: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ + required: + - line_item + - quantity + - stock_item + TransferOrderComplete: + type: object + description: Serializer for completing a transfer order. + properties: + accept_incomplete_allocation: + type: boolean + default: false + description: Allow order to complete with incomplete allocations + TransferOrderLineItem: + type: object + description: Serializer for a TransferOrderLineItem object. + properties: + pk: + type: integer + readOnly: true + title: ID + line: + type: string + title: Line Number + description: Line number for this item (optional) + maxLength: 20 + link: + type: string + format: uri + description: Link to external page + maxLength: 2000 + notes: + type: string + description: Line item notes + maxLength: 500 + order: + type: integer + description: Transfer Order + project_code: + type: integer + nullable: true + description: Select project code for this order + quantity: + type: number + format: double + reference: + type: string + description: Line item reference + maxLength: 100 + target_date: + type: string + format: date + nullable: true + order_detail: + allOf: + - $ref: '#/components/schemas/TransferOrder' + readOnly: true + nullable: true + project_code_label: + type: string + readOnly: true + nullable: true + project_code_detail: + allOf: + - $ref: '#/components/schemas/ProjectCode' + readOnly: true + nullable: true + allocated: + type: number + format: double + readOnly: true + overdue: + type: boolean + readOnly: true + nullable: true + part: + type: integer + nullable: true + description: Part + part_detail: + allOf: + - $ref: '#/components/schemas/PartBrief' + readOnly: true + nullable: true + transferred: + type: number + format: double + readOnly: true + available_stock: + type: number + format: double + readOnly: true + available_variant_stock: + type: number + format: double + readOnly: true + building: + type: number + format: double + readOnly: true + title: In Production + on_order: + type: number + format: double + readOnly: true + required: + - allocated + - available_stock + - available_variant_stock + - building + - on_order + - order + - pk + - quantity + - transferred + TransferOrderLineItemAllocation: + type: object + description: DRF serializer for allocation of stock items against a transfer + order line item. + properties: + items: + type: array + items: + $ref: '#/components/schemas/TransferOrderAllocationItem' + required: + - items + TransferOrderSerialAllocation: + type: object + description: DRF serializer for allocation of serial numbers against a transfer + order. + properties: + line_item: + type: integer + quantity: + type: integer + minimum: 1 + serial_numbers: + type: string + description: Enter serial numbers to allocate + required: + - line_item + - quantity + - serial_numbers + TreePath: + type: object + description: Serializer field for representing a tree path. + properties: + pk: + type: integer + readOnly: true + name: + type: string + readOnly: true + icon: + type: string + readOnly: true + nullable: true + required: + - name + - pk + UnauthorizedStatus: + type: integer + enum: + - 401 + UninstallStockItem: + type: object + description: API serializers for uninstalling an installed item from a stock + item. + properties: + location: + type: integer + description: Destination location for uninstalled item + note: + type: string + title: Notes + description: Add transaction note (optional) + required: + - location + Unit: + type: object + description: Serializer for the AllUnitListResponseSerializer. + properties: + name: + type: string + is_alias: + type: boolean + compatible_units: + type: array + items: + type: string + isdimensionless: + type: boolean + required: + - compatible_units + - is_alias + - isdimensionless + - name + User: + type: object + description: Serializer for a User. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + required: + - email + - first_name + - last_name + - pk + - username + UserCreate: + type: object + description: Serializer for creating a new User. + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Username + first_name: + type: string + description: First name of the user + last_name: + type: string + description: Last name of the user + email: + type: string + format: email + description: Email address of the user + groups: + type: array + items: + $ref: '#/components/schemas/Group' + readOnly: true + group_ids: + type: array + items: + type: integer + writeOnly: true + writeOnly: true + is_staff: + type: boolean + title: Administrator + description: Does this user have administrative permissions + is_superuser: + type: boolean + title: Superuser + description: Is this user a superuser + is_active: + type: boolean + title: Active + description: Is this user account active + profile: + allOf: + - $ref: '#/components/schemas/BriefUserProfile' + readOnly: true + required: + - email + - first_name + - groups + - last_name + - pk + - profile + - username + UserProfile: + type: object + description: Serializer for the UserProfile model. + properties: + language: + type: string + nullable: true + description: Preferred language for the user + maxLength: 10 + theme: + nullable: true + description: Settings for the web UI as JSON - do not edit manually! + widgets: + nullable: true + description: Settings for the dashboard widgets as JSON - do not edit manually! + displayname: + type: string + nullable: true + title: Display Name + description: Chosen display name for the user + maxLength: 255 + position: + type: string + nullable: true + description: Main job title or position + maxLength: 255 + status: + type: string + nullable: true + description: User status message + maxLength: 2000 + location: + type: string + nullable: true + description: User location information + maxLength: 2000 + active: + type: boolean + description: User is actively using the system + contact: + type: string + nullable: true + description: Preferred contact information for the user + maxLength: 255 + type: + allOf: + - $ref: '#/components/schemas/UserTypeEnum' + title: User Type + description: |- + Which type of user is this? + + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + organisation: + type: string + nullable: true + description: Users primary organisation/affiliation + maxLength: 255 + primary_group: + type: integer + nullable: true + description: Primary group for the user + UserSetPassword: + type: object + description: Serializer for setting a password for a user. + properties: + password: + type: string + writeOnly: true + description: Password for the user + override_warning: + type: boolean + writeOnly: true + description: Override the warning about password rules + required: + - password + UserSettings: + type: object + description: Serializer for the InvenTreeUserSetting model. + properties: + pk: + type: integer + readOnly: true + title: ID + key: + type: string + readOnly: true + value: + type: string + nullable: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + user: + type: integer + readOnly: true + type: + type: string + readOnly: true + units: + type: string + readOnly: true + choices: + type: array + items: {} + description: Returns the choices available for a given item. + readOnly: true + model_name: + type: string + readOnly: true + nullable: true + api_url: + type: string + readOnly: true + nullable: true + typ: + type: string + readOnly: true + confirm: + type: boolean + readOnly: true + description: Indicates if changing this setting requires confirmation + confirm_text: + type: string + readOnly: true + required: + - choices + - confirm + - confirm_text + - description + - key + - name + - pk + - typ + - type + - units + - user + - value + UserTypeEnum: + enum: + - bot + - internal + - external + - guest + type: string + description: |- + * `bot` - Bot + * `internal` - Internal + * `external` - External + * `guest` - Guest + Version: + type: object + description: Serializer for server version. + properties: + server: + type: string + api: + type: integer + commit_hash: + type: string + commit_date: + type: string + commit_branch: + type: string + nullable: true + python: + type: string + django: + type: string + required: + - api + - commit_branch + - commit_date + - commit_hash + - django + - python + - server + VersionInformation: + type: object + description: Serializer for a single version. + properties: + version: + type: string + date: + type: string + format: date + gh: + type: string + nullable: true + text: + type: array + items: + type: string + latest: + type: boolean + required: + - date + - gh + - latest + - text + - version + VersionView: + type: object + description: Serializer for a single version. + properties: + dev: + type: boolean + up_to_date: + type: boolean + version: + $ref: '#/components/schemas/Version' + links: + $ref: '#/components/schemas/Link' + required: + - dev + - links + - up_to_date + - version + allauth.AccessToken: + type: string + description: | + The access token. + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.AccountConfiguration: + type: object + description: | + Configuration of the Django `allauth.account` app. + properties: + login_methods: + type: array + items: + $ref: '#/components/schemas/LoginMethodsEnum' + is_open_for_signup: + type: boolean + email_verification_by_code_enabled: + type: boolean + login_by_code_enabled: + type: boolean + password_reset_by_code_enabled: + type: boolean + required: + - authentication_method + - email_verification_by_code_enabled + - is_open_for_signup + - login_by_code_enabled + allauth.Authenticated: + type: object + properties: + user: + $ref: '#/components/schemas/allauth.User' + methods: + type: array + description: | + A list of methods used to authenticate. + items: + $ref: '#/components/schemas/allauth.AuthenticationMethod' + required: + - user + - methods + allauth.AuthenticatedMeta: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' + - type: object + description: | + Metadata available in an re-authentication related response. + properties: + is_authenticated: + $ref: '#/components/schemas/IsTrueEnum' + required: + - is_authenticated + allauth.AuthenticatedResponse: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + $ref: '#/components/schemas/allauth.Authenticated' + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.AuthenticationMeta: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' + - type: object + description: | + Metadata available in an authentication related response. + properties: + is_authenticated: + type: boolean + required: + - is_authenticated + allauth.AuthenticationMethod: + oneOf: + - type: object + title: | + Authenticated by username/email login + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + username: + $ref: '#/components/schemas/allauth.Username' + required: + - method + - at + - type: object + title: | + Authenticated after password reset + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + required: + - at + - email + - method + - type: object + title: | + Authenticated by confirming a code sent by email. + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + email: + $ref: '#/components/schemas/allauth.Email' + required: + - at + - email + - method + - type: object + title: | + Authenticated by confirming a code sent by phone. + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - at + - method + - phone + - type: object + title: | + Reauthenticated by password + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + reauthenticated: + $ref: '#/components/schemas/IsTrueEnum' + required: + - method + - reauthenticated + - at + - type: object + title: | + Authenticated by third-party provider + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + provider: + $ref: '#/components/schemas/allauth.ProviderID' + uid: + $ref: '#/components/schemas/allauth.ProviderAccountID' + required: + - method + - reauthenticated + - at + - provider + - uid + - type: object + title: | + (Re)authenticated by 2FA + properties: + method: + $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' + at: + $ref: '#/components/schemas/allauth.Timestamp' + type: + $ref: '#/components/schemas/allauth.AuthenticatorType' + reauthenticated: + type: boolean + required: + - method + - at + - type + allauth.AuthenticationResponse: + type: object + description: | + An authentication related response. + properties: + status: + $ref: '#/components/schemas/UnauthorizedStatus' + data: + type: object + properties: + flows: + type: array + items: + $ref: '#/components/schemas/allauth.Flow' + required: + - flows + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.AuthenticatorCode: + type: string + description: | + An authenticator code. + example: '314159' + allauth.AuthenticatorID: + type: integer + description: | + Authenticator ID. + example: 123 + allauth.AuthenticatorList: + type: array + items: + oneOf: + - $ref: '#/components/schemas/allauth.TOTPAuthenticator' + - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' + - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' + allauth.AuthenticatorType: + type: string + enum: + - recovery_codes + - totp + - webauthn + description: | + The type of authenticator. + allauth.BaseAuthenticationMeta: + type: object + properties: + session_token: + type: string + description: | + The session token (`app` clients only). + example: ufwcig0zen9skyd545jc0fkq813ghar2 + access_token: + type: string + description: | + The access token (`app` clients only). + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW + allauth.BaseAuthenticator: + type: object + properties: + last_used_at: + $ref: '#/components/schemas/allauth.OptionalTimestamp' + created_at: + $ref: '#/components/schemas/allauth.Timestamp' + required: + - created_at + - last_used_at + allauth.BaseSignup: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + phone: + $ref: '#/components/schemas/allauth.Phone' + username: + $ref: '#/components/schemas/allauth.Username' + allauth.ClientID: + type: string + description: | + The client ID (in case of OAuth2 or OpenID Connect based providers) + example: 123.apps.googleusercontent.com + allauth.Code: + type: string + description: | + An one-time code. + example: NQ3TM5 + allauth.ConfigurationResponse: + type: object + properties: + data: + type: object + properties: + account: + $ref: '#/components/schemas/allauth.AccountConfiguration' + socialaccount: + $ref: '#/components/schemas/allauth.SocialAccountConfiguration' + mfa: + $ref: '#/components/schemas/allauth.MFAConfiguration' + usersessions: + $ref: '#/components/schemas/allauth.UserSessionsConfiguration' + required: + - account + status: + $ref: '#/components/schemas/allauth.StatusOK' + required: + - status + - data + example: + status: 200 + data: + account: + authentication_method: email + socialaccount: + providers: + - id: google + name: Google + flows: + - provider_redirect + - provider_token + client_id: 123.apps.googleusercontent.com + openid_configuration_url: https://accounts.google.com/.well-known/openid-configuration + mfa: + supported_types: + - recovery_codes + - totp + usersessions: + track_activity: false + allauth.ConfirmLoginCode: + type: object + properties: + code: + $ref: '#/components/schemas/allauth.Code' + required: + - code + allauth.ConflictResponse: + type: object + properties: + status: + $ref: '#/components/schemas/Allauth.ConflictResponseStatusEnum' + required: + - status + allauth.Email: + type: string + description: | + The email address. + example: email@domain.org + allauth.EmailAddress: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + primary: + type: boolean + example: true + verified: + type: boolean + example: false + required: + - email + - primary + - verified + allauth.EmailVerificationInfo: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + user: + $ref: '#/components/schemas/allauth.User' + required: + - email + - user + meta: + type: object + properties: + is_authenticating: + type: boolean + required: + - is_authenticating + required: + - status + - data + - meta + allauth.EndSessions: + type: object + properties: + sessions: + description: | + The IDs of the sessions that are to be ended. + type: array + items: + type: integer + example: 123 + required: + - sessions + allauth.ErrorResponse: + type: object + properties: + status: + allOf: + - $ref: '#/components/schemas/Allauth.ErrorResponseStatusEnum' + example: 400 + errors: + type: array + items: + type: object + properties: + code: + type: string + example: invalid + description: | + An error code. + param: + type: string + example: email + description: | + The name of the input parameter that was incorrect. + message: + type: string + example: Enter a valid email address. + description: | + A human readable error message. + required: + - code + - message + allauth.Flow: + type: object + properties: + id: + $ref: '#/components/schemas/IdEnum' + provider: + $ref: '#/components/schemas/allauth.Provider' + is_pending: + $ref: '#/components/schemas/IsTrueEnum' + types: + type: array + description: Matches `settings.MFA_SUPPORTED_TYPES`. + items: + $ref: '#/components/schemas/allauth.AuthenticatorType' + required: + - id + allauth.ForbiddenResponse: + type: object + properties: + status: + $ref: '#/components/schemas/Allauth.ForbiddenResponseStatusEnum' + required: + - status + allauth.Login: + allOf: + - type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + - anyOf: + - title: Login by username + properties: + username: + $ref: '#/components/schemas/allauth.Username' + required: + - username + - title: Login by email + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + - title: Login by phone + properties: + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - phone + allauth.MFAAuthenticate: + type: object + properties: + code: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - code + allauth.MFAConfiguration: + type: object + description: | + Configuration of the Django `allauth.mfa` app. + properties: + supported_types: + type: array + description: | + Matches `settings.MFA_SUPPORTED_TYPES`. + items: + $ref: '#/components/schemas/allauth.AuthenticatorType' + required: + - supported_types + allauth.MFATrust: + type: object + properties: + trust: + type: boolean + required: + - trust + allauth.OptionalTimestamp: + nullable: true + $ref: '#/components/schemas/allauth.Timestamp' + allauth.PasskeySignup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + allauth.Password: + type: string + description: | + The password. + example: Alohomora! + allauth.Phone: + type: string + description: | + The phone number. + example: '+314159265359' + allauth.PhoneNumber: + type: object + description: | + A phone number. + properties: + phone: + type: string + example: '+314159265359' + verified: + type: boolean + required: + - phone + - verified + allauth.PhoneNumberChangeResponse: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusAccepted' + data: + type: array + items: + $ref: '#/components/schemas/allauth.PhoneNumber' + required: + - status + - data + example: + status: 202 + data: + - phone: '+314159265359' + verified: false + allauth.PhoneNumbersResponse: + type: object + properties: + status: + $ref: '#/components/schemas/allauth.StatusOK' + data: + type: array + items: + $ref: '#/components/schemas/allauth.PhoneNumber' + required: + - status + - data + allauth.Process: + type: string + description: | + The process to be executed when the user successfully + authenticates. When set to `login`, the user will be logged into the + account to which the provider account is connected, or if no such + account exists, a signup will occur. If set to `connect`, the provider + account will be connected to the list of provider accounts for the + currently authenticated user. + enum: + - login + - connect + example: login + allauth.Provider: + type: object + properties: + id: + type: string + example: google + description: | + The provider ID. + name: + type: string + description: | + The name of the provider. + example: Google + client_id: + type: string + description: | + The client ID (in case of OAuth2 or OpenID Connect based providers) + example: 123.apps.googleusercontent.com + openid_configuration_url: + type: string + description: | + The OIDC discovery or well-known URL (in case of OAuth2 or OpenID Connect based providers) + example: https://accounts.google.com/.well-known/openid-configuration + flows: + type: array + description: | + The authentication flows the provider integration supports. + items: + $ref: '#/components/schemas/FlowsEnum' + required: + - id + - name + - flows + allauth.ProviderAccount: + type: object + properties: + uid: + $ref: '#/components/schemas/allauth.ProviderAccountID' + display: + type: string + description: | + A name derived from the third-party provider account data. + example: Wizzkid + provider: + $ref: '#/components/schemas/allauth.Provider' + required: + - uid + - provider + - display + allauth.ProviderAccountID: + type: string + description: | + The provider specific account ID. + example: goo12345 + allauth.ProviderID: + type: string + description: | + The provider ID. + example: google + allauth.ProviderList: + type: array + items: + $ref: '#/components/schemas/allauth.Provider' + allauth.ProviderRedirect: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + callback_url: + type: string + description: | + The URL to return to after the redirect flow is complete. + + Note that this is not to be mistaken with the callback URL that you + configure over at the OAuth provider during the OAuth app/client + setup. The flow is as follows: + + 1. Your frontend redirects to the headless provider redirect + endpoint in a synchronous (non-XHR) manner, informing allauth + (by means of `callback_url`) where to redirect to after the + provider handshake is completed. + + 2. Headless will redirect to the (OAuth) identity provider to + initiate the handshake, passing along a different callback URL + to the provider: one that points to an allauth backend URL. + This is the URL that you need to have setup at your OAuth + app/client configuration. Note that this must be a backend URL + as providers can use POST requests to perform their callbacks, + which is something a frontend would not be able to handle. + + 3. After the authorization at the provider is completed, the + provider redirects to the *backend* allauth callback URL, which + will then redirect back to the *frontend* callback URL. + + 4. Your frontend is now expected to fetch the current session to + determine what the next course of action is. The user could be + authenticated at this point, or another flow is pending + (e.g. email verification, or, provider signup). In case of + errors a `?error=` is passed to the frontend callback URL. + example: https://app.project.org/account/provider/callback + process: + $ref: '#/components/schemas/allauth.Process' + required: + - provider + - process + - callback_url + allauth.ProviderSignup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + allauth.ProviderToken: + type: object + properties: + provider: + $ref: '#/components/schemas/allauth.ProviderID' + process: + $ref: '#/components/schemas/allauth.Process' + token: + description: | + The token. + type: object + properties: + client_id: + $ref: '#/components/schemas/allauth.ClientID' + id_token: + type: string + description: | + The ID token. + example: eyJhbGciOiJI + access_token: + type: string + description: | + The access token. + example: 36POk6yJV_adQs + required: + - client_id + required: + - provider + - process + - token + allauth.Reauthenticate: + type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + allauth.ReauthenticationRequired: + properties: + flows: + type: array + items: + $ref: '#/components/schemas/allauth.Flow' + user: + $ref: '#/components/schemas/allauth.User' + methods: + type: array + description: | + A list of methods used to authenticate. + items: + $ref: '#/components/schemas/allauth.AuthenticationMethod' + required: + - flows + - user + - methods + type: object + allauth.ReauthenticationResponse: + type: object + description: | + A response indicating reauthentication is required. + properties: + status: + $ref: '#/components/schemas/UnauthorizedStatus' + data: + $ref: '#/components/schemas/allauth.ReauthenticationRequired' + meta: + $ref: '#/components/schemas/allauth.AuthenticatedMeta' + required: + - status + - data + - meta + allauth.RecoveryCodesAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + allOf: + - $ref: '#/components/schemas/Allauth.RecoveryCodesAuthenticatorTypeEnum' + description: | + The authenticator type. + total_code_count: + type: integer + description: | + The total number of recovery codes that initially were available. + example: 10 + unused_code_count: + type: integer + description: | + The number of recovery codes that are unused. + example: 7 + required: + - type + - total_code_count + - unused_code_count + allauth.RefreshToken: + type: string + description: | + The refresh token. + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30 + allauth.RequestLoginCode: + type: object + anyOf: + - title: Request login code (phone) + properties: + phone: + $ref: '#/components/schemas/allauth.Phone' + required: + - phone + - title: Request login code (email) + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.RequestPassword: + type: object + properties: + email: + $ref: '#/components/schemas/allauth.Email' + required: + - email + allauth.ResetPassword: + type: object + properties: + key: + type: string + description: The password reset key + example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 + password: + $ref: '#/components/schemas/allauth.Password' + required: + - key + - password + allauth.SensitiveRecoveryCodesAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' + - type: object + properties: + unused_codes: + type: array + description: | + The list of unused codes. + items: + $ref: '#/components/schemas/allauth.AuthenticatorCode' + required: + - unused_codes + allauth.Session: + type: object + properties: + user_agent: + type: string + example: Mozilla Firefox + ip: + type: string + example: 127.2.3.192 + created_at: + $ref: '#/components/schemas/allauth.Timestamp' + is_current: + type: boolean + id: + type: integer + example: 123 + last_seen_at: + $ref: '#/components/schemas/allauth.Timestamp' + required: + - user_agent + - ip + - created_at + - is_current + - id + allauth.SessionGoneResponse: + type: object + description: | + The session is expired or invalid. + properties: + status: + $ref: '#/components/schemas/Allauth.SessionGoneResponseStatusEnum' + data: + type: object + meta: + $ref: '#/components/schemas/allauth.AuthenticationMeta' + required: + - status + - data + - meta + allauth.Signup: + allOf: + - $ref: '#/components/schemas/allauth.BaseSignup' + - type: object + properties: + password: + $ref: '#/components/schemas/allauth.Password' + required: + - password + allauth.SocialAccountConfiguration: + type: object + description: | + Configuration of the Django `allauth.socialaccount` app. + properties: + providers: + $ref: '#/components/schemas/allauth.ProviderList' + required: + - providers + allauth.StatusAccepted: + type: integer + enum: + - 202 + allauth.StatusOK: + type: integer + enum: + - 200 + allauth.TOTPAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + $ref: '#/components/schemas/Allauth.TOTPAuthenticatorTypeEnum' + required: + - type + allauth.Timestamp: + type: number + description: | + An epoch based timestamp (trivial to parse using: `new Date(value)*1000`) + example: 1711555057.065702 + allauth.User: + type: object + properties: + id: + description: | + The user ID. + oneOf: + - type: integer + example: 123 + - type: string + example: 89d3f9a0-51a5-49dd-8b97-7536641958e9 + display: + type: string + description: | + The display name for the user. + example: Magic Wizard + has_usable_password: + type: boolean + description: | + Whether or not the account has a password set. + example: true + email: + $ref: '#/components/schemas/allauth.Email' + username: + $ref: '#/components/schemas/allauth.Username' + allauth.UserSessionsConfiguration: + type: object + description: | + Configuration of the Django `allauth.usersessions` app. + properties: + track_activity: + type: boolean + description: | + Matches `settings.USERSESSIONS_TRACK_ACTIVITY`. + required: + - track_activity + allauth.Username: + type: string + description: | + The username. + example: wizard + allauth.VerifyEmail: + type: object + properties: + key: + type: string + description: The email verification key + example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 + required: + - key + allauth.VerifyPhone: + type: object + properties: + code: + type: string + description: The phone verification code + example: 4S3H82 + required: + - code + allauth.WebAuthnAuthenticator: + allOf: + - $ref: '#/components/schemas/allauth.BaseAuthenticator' + - type: object + properties: + type: + $ref: '#/components/schemas/Allauth.WebAuthnAuthenticatorTypeEnum' + id: + $ref: '#/components/schemas/allauth.AuthenticatorID' + name: + type: string + example: Master key + is_passwordless: + type: boolean + description: | + Whether or not this authenticator represents a passkey. Absent if it is not specified. + required: + - type + - id + - name + allauth.WebAuthnCredential: + type: object + example: + credential: + type: public-key + id: -J4JNfPfnLyRSMK4R... + rawId: -J4JNfPfnLyRSMK4R... + authenticatorAttachment: cross-platform + response: + clientDataJSON: eyJjaGFsbGVuZ2UiOi... + authenticatorData: SZYN5YgO... + signature: MEUCIE-7sqILygPqGbrRZ4j2nqeqUU... + userHandle: Mg... + clientExtensionResults: {} + allauth.WebAuthnCredentialCreationOptions: + type: object + properties: + creation_options: + type: object + example: + status: 200 + data: + request_options: + publicKey: + challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o + rpId: localhost + allowCredentials: [] + userVerification: preferred + required: + - creation_options + allauth.WebAuthnCredentialRequestOptions: + type: object + properties: + request_options: + type: object + example: + status: 200 + data: + request_options: + publicKey: + challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o + rpId: localhost + allowCredentials: [] + userVerification: preferred + required: + - request_options + securitySchemes: + basicAuth: + type: http + scheme: basic + cookieAuth: + type: apiKey + in: cookie + name: sessionid + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: /o/authorize/ + tokenUrl: /o/token/ + refreshUrl: /o/revoke_token/ + scopes: + g:read: General Read scope + openid: OpenID Connect scope + a:staff: User Role Staff + a:superuser: User Role Superuser + r:view:admin: GET for Role Admin + r:view:part_category: GET for Role Part Categories + r:view:part: GET for Role Parts + r:view:stock_location: GET for Role Stock Locations + r:view:stock: GET for Role Stock Items + r:view:bom: GET for Role Bills of Material + r:view:build: GET for Role Build Orders + r:view:purchase_order: GET for Role Purchase Orders + r:view:sales_order: GET for Role Sales Orders + r:view:return_order: GET for Role Return Orders + r:view:transfer_order: GET for Role Transfer Orders + r:view:repair_order: GET for Role Repair Orders + r:add:admin: POST for Role Admin + r:add:part_category: POST for Role Part Categories + r:add:part: POST for Role Parts + r:add:stock_location: POST for Role Stock Locations + r:add:stock: POST for Role Stock Items + r:add:bom: POST for Role Bills of Material + r:add:build: POST for Role Build Orders + r:add:purchase_order: POST for Role Purchase Orders + r:add:sales_order: POST for Role Sales Orders + r:add:return_order: POST for Role Return Orders + r:add:transfer_order: POST for Role Transfer Orders + r:add:repair_order: POST for Role Repair Orders + r:change:admin: PUT / PATCH for Role Admin + r:change:part_category: PUT / PATCH for Role Part Categories + r:change:part: PUT / PATCH for Role Parts + r:change:stock_location: PUT / PATCH for Role Stock Locations + r:change:stock: PUT / PATCH for Role Stock Items + r:change:bom: PUT / PATCH for Role Bills of Material + r:change:build: PUT / PATCH for Role Build Orders + r:change:purchase_order: PUT / PATCH for Role Purchase Orders + r:change:sales_order: PUT / PATCH for Role Sales Orders + r:change:return_order: PUT / PATCH for Role Return Orders + r:change:transfer_order: PUT / PATCH for Role Transfer Orders + r:change:repair_order: PUT / PATCH for Role Repair Orders + r:delete:admin: DELETE for Role Admin + r:delete:part_category: DELETE for Role Part Categories + r:delete:part: DELETE for Role Parts + r:delete:stock_location: DELETE for Role Stock Locations + r:delete:stock: DELETE for Role Stock Items + r:delete:bom: DELETE for Role Bills of Material + r:delete:build: DELETE for Role Build Orders + r:delete:purchase_order: DELETE for Role Purchase Orders + r:delete:sales_order: DELETE for Role Sales Orders + r:delete:return_order: DELETE for Role Return Orders + r:delete:transfer_order: DELETE for Role Transfer Orders + r:delete:repair_order: DELETE for Role Repair Orders + clientCredentials: + tokenUrl: /o/token/ + refreshUrl: /o/revoke_token/ + scopes: + g:read: General Read scope + openid: OpenID Connect scope + a:staff: User Role Staff + a:superuser: User Role Superuser + r:view:admin: GET for Role Admin + r:view:part_category: GET for Role Part Categories + r:view:part: GET for Role Parts + r:view:stock_location: GET for Role Stock Locations + r:view:stock: GET for Role Stock Items + r:view:bom: GET for Role Bills of Material + r:view:build: GET for Role Build Orders + r:view:purchase_order: GET for Role Purchase Orders + r:view:sales_order: GET for Role Sales Orders + r:view:return_order: GET for Role Return Orders + r:view:transfer_order: GET for Role Transfer Orders + r:view:repair_order: GET for Role Repair Orders + r:add:admin: POST for Role Admin + r:add:part_category: POST for Role Part Categories + r:add:part: POST for Role Parts + r:add:stock_location: POST for Role Stock Locations + r:add:stock: POST for Role Stock Items + r:add:bom: POST for Role Bills of Material + r:add:build: POST for Role Build Orders + r:add:purchase_order: POST for Role Purchase Orders + r:add:sales_order: POST for Role Sales Orders + r:add:return_order: POST for Role Return Orders + r:add:transfer_order: POST for Role Transfer Orders + r:add:repair_order: POST for Role Repair Orders + r:change:admin: PUT / PATCH for Role Admin + r:change:part_category: PUT / PATCH for Role Part Categories + r:change:part: PUT / PATCH for Role Parts + r:change:stock_location: PUT / PATCH for Role Stock Locations + r:change:stock: PUT / PATCH for Role Stock Items + r:change:bom: PUT / PATCH for Role Bills of Material + r:change:build: PUT / PATCH for Role Build Orders + r:change:purchase_order: PUT / PATCH for Role Purchase Orders + r:change:sales_order: PUT / PATCH for Role Sales Orders + r:change:return_order: PUT / PATCH for Role Return Orders + r:change:transfer_order: PUT / PATCH for Role Transfer Orders + r:change:repair_order: PUT / PATCH for Role Repair Orders + r:delete:admin: DELETE for Role Admin + r:delete:part_category: DELETE for Role Part Categories + r:delete:part: DELETE for Role Parts + r:delete:stock_location: DELETE for Role Stock Locations + r:delete:stock: DELETE for Role Stock Items + r:delete:bom: DELETE for Role Bills of Material + r:delete:build: DELETE for Role Build Orders + r:delete:purchase_order: DELETE for Role Purchase Orders + r:delete:sales_order: DELETE for Role Sales Orders + r:delete:return_order: DELETE for Role Return Orders + r:delete:transfer_order: DELETE for Role Transfer Orders + r:delete:repair_order: DELETE for Role Repair Orders + tokenAuth: + type: apiKey + in: header + name: Authorization + description: Token-based authentication with required prefix "Token" +servers: +- url: http://localhost:8000 +externalDocs: + description: More information about InvenTree in the official docs + url: https://docs.inventree.org From aa7dd545a128e540b79554605b2c87c8258fef75 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 15:56:13 +0530 Subject: [PATCH 16/27] Fix: Remove old 0120 migration --- ...pairorderlineitem_repairorderallocation.py | 216 ------------------ 1 file changed, 216 deletions(-) delete mode 100644 src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py diff --git a/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py b/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py deleted file mode 100644 index d8493d8ad6a9..000000000000 --- a/src/backend/InvenTree/order/migrations/0120_repairorder_repairorderlineitem_repairorderallocation.py +++ /dev/null @@ -1,216 +0,0 @@ -# Generated by Django 5.2.13 on 2026-06-04 02:30 - -import django.db.models.deletion -from django.db import migrations, models - -import InvenTree.fields -import InvenTree.models - - -class Migration(migrations.Migration): - dependencies = [ - ('company', '0077_delete_manufacturerpartparameter'), - ('order', '0119_transferorderlineitem_line_int'), - ('part', '0146_auto_20251203_1241'), - ('stock', '0116_alter_stockitem_link'), - ] - - operations = [ - migrations.CreateModel( - name='RepairOrder', - fields=[ - ( - 'id', - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name='ID', - ), - ), - ( - 'metadata', - models.JSONField( - blank=True, - help_text='JSON metadata field, for use by external plugins', - null=True, - verbose_name='Plugin Metadata', - ), - ), - ( - 'notes', - InvenTree.fields.InvenTreeNotesField( - blank=True, - help_text='Markdown notes (optional)', - max_length=50000, - null=True, - verbose_name='Notes', - ), - ), - ( - 'reference', - models.CharField( - help_text='Repair Order Reference', - max_length=100, - unique=True, - verbose_name='Reference', - ), - ), - ( - 'description', - models.CharField( - help_text='Repair order description', - max_length=250, - verbose_name='Description', - ), - ), - ( - 'symptoms', - models.TextField( - blank=True, - help_text='Reported symptoms or issues', - verbose_name='Symptoms', - ), - ), - ( - 'status', - models.IntegerField( - choices=[ - (10, 'Pending'), - (20, 'In Progress'), - (25, 'On Hold'), - (30, 'Complete'), - (40, 'Cancelled'), - ], - default=10, - help_text='Repair order status', - verbose_name='Status', - ), - ), - ( - 'customer', - models.ForeignKey( - blank=True, - help_text='Customer reference', - limit_choices_to={'is_customer': True}, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name='repair_orders', - to='company.company', - verbose_name='Customer', - ), - ), - ], - options={'verbose_name': 'Repair Order'}, - bases=( - InvenTree.models.InvenTreeAttachmentMixin, - InvenTree.models.InvenTreePermissionCheckMixin, - InvenTree.models.ContentTypeMixin, - InvenTree.models.PluginValidationMixin, - models.Model, - ), - ), - migrations.CreateModel( - name='RepairOrderLineItem', - fields=[ - ( - 'id', - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name='ID', - ), - ), - ( - 'metadata', - models.JSONField( - blank=True, - help_text='JSON metadata field, for use by external plugins', - null=True, - verbose_name='Plugin Metadata', - ), - ), - ( - 'order', - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name='lines', - to='order.repairorder', - verbose_name='Repair Order', - ), - ), - ( - 'part', - models.ForeignKey( - blank=True, - help_text='Part to be consumed for repair', - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name='repair_order_line_items', - to='part.part', - verbose_name='Part', - ), - ), - ( - 'quantity', - models.DecimalField( - decimal_places=5, - default=1, - help_text='Item quantity required for repair', - max_digits=15, - verbose_name='Quantity', - ), - ), - ], - options={'verbose_name': 'Repair Order Line Item'}, - bases=( - InvenTree.models.ContentTypeMixin, - InvenTree.models.PluginValidationMixin, - models.Model, - ), - ), - migrations.CreateModel( - name='RepairOrderAllocation', - fields=[ - ( - 'id', - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name='ID', - ), - ), - ( - 'line', - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name='allocations', - to='order.repairorderlineitem', - verbose_name='Line Item', - ), - ), - ( - 'item', - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name='repair_order_allocations', - to='stock.stockitem', - verbose_name='Stock Item', - ), - ), - ( - 'quantity', - models.DecimalField( - decimal_places=5, - default=1, - help_text='Allocated stock quantity', - max_digits=15, - verbose_name='Quantity', - ), - ), - ], - options={'verbose_name': 'Repair Order Allocation'}, - ), - ] From bda7a649bd8ca1847a41fe9844355906189431c9 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 15:59:33 +0530 Subject: [PATCH 17/27] Fix: Untrack schema.yml to resolve SonarCloud false positives --- src/backend/InvenTree/schema.yml | 44179 ----------------------------- 1 file changed, 44179 deletions(-) delete mode 100644 src/backend/InvenTree/schema.yml diff --git a/src/backend/InvenTree/schema.yml b/src/backend/InvenTree/schema.yml deleted file mode 100644 index 7fcb13ef8f82..000000000000 --- a/src/backend/InvenTree/schema.yml +++ /dev/null @@ -1,44179 +0,0 @@ -openapi: 3.0.3 -info: - title: InvenTree API - version: '500' - description: API for InvenTree - the intuitive open source inventory management - system - license: - name: MIT - url: https://github.com/inventree/InvenTree/blob/master/LICENSE -paths: - /api/: - get: - operationId: root_retrieve - description: Serve current server information. - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/InfoApi' - description: InvenTree server information - /api/action/: - post: - operationId: action_create - description: This function checks if all required info was submitted and then - performs a plugin_action or returns an error. - tags: - - action - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPlugin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ActionPlugin' - multipart/form-data: - schema: - $ref: '#/components/schemas/ActionPlugin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPlugin' - description: '' - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPluginError' - description: No action specified - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/ActionPluginError' - description: No matching action found - /api/admin/config/: - get: - operationId: admin_config_list - description: All accessed/in-use configurations. - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Config' - description: '' - /api/admin/config/{key}/: - get: - operationId: admin_config_retrieve - description: All accessed/in-use configurations. - parameters: - - in: path - name: key - schema: - type: string - description: Unique identifier for this configuration - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Config' - description: '' - /api/admin/email/: - get: - operationId: admin_email_list - description: Backend E-Mail management for administrative purposes. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - created - - -created - - subject - - -subject - - to - - -to - - sender - - -sender - - status - - -status - - timestamp - - -timestamp - - direction - - -direction - - name: search - required: false - in: query - description: 'A search term. Searched fields: global_id, message_id_key, sender, - subject, thread_id_key, to.' - schema: - type: string - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedEmailMessageList' - description: '' - delete: - operationId: admin_email_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/admin/email/{global_id}/: - get: - operationId: admin_email_retrieve - description: Backend E-Mail management for administrative purposes. - parameters: - - in: path - name: global_id - schema: - type: string - format: uuid - description: Unique identifier for this message - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/EmailMessage' - description: '' - delete: - operationId: admin_email_destroy - description: Backend E-Mail management for administrative purposes. - parameters: - - in: path - name: global_id - schema: - type: string - format: uuid - description: Unique identifier for this message - required: true - tags: - - admin - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - /api/admin/email/test/: - post: - operationId: admin_email_test_create - description: Send a test email. - tags: - - admin - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TestEmail' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TestEmail' - multipart/form-data: - schema: - $ref: '#/components/schemas/TestEmail' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TestEmail' - description: '' - /api/attachment/: - get: - operationId: attachment_list - description: List API endpoint for Attachment objects. - parameters: - - in: query - name: has_thumbnail - schema: - type: boolean - description: Has Thumbnail - - in: query - name: is_file - schema: - type: boolean - description: Is File - - in: query - name: is_image - schema: - type: boolean - - in: query - name: is_link - schema: - type: boolean - description: Is Link - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_id - schema: - type: integer - - in: query - name: model_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - model_id - - -model_id - - model_type - - -model_type - - upload_date - - -upload_date - - file_size - - -file_size - - name: search - required: false - in: query - description: 'A search term. Searched fields: comment, model_id, model_type.' - schema: - type: string - - in: query - name: upload_user - schema: - type: integer - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedAttachmentList' - description: '' - post: - operationId: attachment_create - description: List API endpoint for Attachment objects. - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Attachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Attachment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - delete: - operationId: attachment_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/attachment/{id}/: - get: - operationId: attachment_retrieve - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - put: - operationId: attachment_update - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Attachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Attachment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - patch: - operationId: attachment_partial_update - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedAttachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAttachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAttachment' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - delete: - operationId: attachment_destroy - description: Detail API endpoint for Attachment objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - attachment - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/background-task/: - get: - operationId: background_task_overview - description: Return information about the current status of the background task - queue. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskOverview' - description: '' - /api/background-task/{task_id}/: - get: - operationId: background_task_retrieve - description: Fetch information regarding a particular background task ID. - parameters: - - in: path - name: task_id - schema: - type: string - required: true - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/background-task/failed/: - get: - operationId: background_task_failed_list - description: Provides a read-only list of currently failed tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - func - - -func - - started - - -started - - stopped - - -stopped - - name: search - required: false - in: query - description: 'A search term. Searched fields: func.' - schema: - type: string - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedFailedTaskList' - description: '' - delete: - operationId: background_task_failed_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/background-task/pending/: - get: - operationId: background_task_pending_list - description: Provides a read-only list of currently pending tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPendingTaskList' - description: '' - delete: - operationId: background_task_pending_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/background-task/scheduled/: - get: - operationId: background_task_scheduled_list - description: Provides a read-only list of currently scheduled tasks. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - func - - -func - - last_run - - -last_run - - next_run - - -next_run - - name: search - required: false - in: query - description: 'A search term. Searched fields: func, name.' - schema: - type: string - tags: - - background-task - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedScheduledTaskList' - description: '' - /api/barcode/: - post: - operationId: barcode_create - description: |- - Endpoint for handling generic barcode scan requests. - - Barcode data are decoded by the client application, - and sent to this endpoint (as a JSON object) for validation. - - A barcode could follow the internal InvenTree barcode format, - or it could match to a third-party barcode format (e.g. Digikey). - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Barcode' - multipart/form-data: - schema: - $ref: '#/components/schemas/Barcode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - description: '' - /api/barcode/generate/: - post: - operationId: barcode_generate_create - description: |- - Endpoint for generating a barcode for a database object. - - The barcode is generated by the selected barcode plugin. - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeGenerate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Barcode' - description: '' - /api/barcode/history/: - get: - operationId: barcode_history_list - description: List API endpoint for BarcodeScan objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - user - - -user - - timestamp - - -timestamp - - endpoint - - -endpoint - - result - - -result - - in: query - name: result - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: data.' - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBarcodeScanResultList' - description: '' - delete: - operationId: barcode_history_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/barcode/history/{id}/: - get: - operationId: barcode_history_retrieve - description: Detail endpoint for a BarcodeScan object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeScanResult' - description: '' - delete: - operationId: barcode_history_destroy - description: Detail endpoint for a BarcodeScan object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - barcode - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/barcode/link/: - post: - operationId: barcode_link_create - description: |- - Endpoint for assigning a barcode to a stock item. - - - This only works if the barcode is not already associated with an object in the database - - If the barcode does not match an object, then the barcode hash is assigned to the StockItem - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeAssign' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeAssign' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeAssign' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeAssign' - description: '' - /api/barcode/po-allocate/: - post: - operationId: barcode_po_allocate_create - description: |- - Endpoint for allocating parts to a purchase order by scanning their barcode. - - Note that the scanned barcode may point to: - - - A Part object - - A ManufacturerPart object - - A SupplierPart object - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOAllocate' - description: '' - /api/barcode/po-receive/: - post: - operationId: barcode_po_receive_create - description: |- - Endpoint for handling receiving parts by scanning their barcode. - - Barcode data are decoded by the client application, - and sent to this endpoint (as a JSON object) for validation. - - The barcode should follow a third-party barcode format (e.g. Digikey) - and ideally contain order_number and quantity information. - - The following parameters are available: - - - barcode: The raw barcode data (required) - - purchase_order: The purchase order containing the item to receive (optional) - - location: The destination location for the received item (optional) - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodePOReceive' - description: '' - /api/barcode/so-allocate/: - post: - operationId: barcode_so_allocate_create - description: |- - Endpoint for allocating stock to a sales order, by scanning barcode. - - The scanned barcode should map to a StockItem object. - - Additional fields can be passed to the endpoint: - - - SalesOrder (Required) - - Line Item - - Shipment - - Quantity - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeSOAllocate' - description: '' - /api/barcode/unlink/: - post: - operationId: barcode_unlink_create - description: Endpoint for unlinking / unassigning a custom barcode from a database - object. - tags: - - barcode - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - multipart/form-data: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BarcodeUnassign' - description: '' - /api/bom/: - get: - operationId: bom_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allow_variants - schema: - type: boolean - - in: query - name: available_stock - schema: - type: boolean - description: Has available stock - - in: query - name: can_build - schema: - type: boolean - default: true - - in: query - name: category - schema: - type: integer - - in: query - name: consumable - schema: - type: boolean - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: inherited - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: on_order - schema: - type: boolean - description: On order - - in: query - name: optional - schema: - type: boolean - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - can_build - - -can_build - - category - - -category - - quantity - - -quantity - - setup_quantity - - -setup_quantity - - attrition - - -attrition - - rounding_multiple - - -rounding_multiple - - sub_part - - -sub_part - - IPN - - -IPN - - available_stock - - -available_stock - - allow_variants - - -allow_variants - - inherited - - -inherited - - optional - - -optional - - consumable - - -consumable - - reference - - -reference - - validated - - -validated - - pricing_min - - -pricing_min - - pricing_max - - -pricing_max - - pricing_min_total - - -pricing_min_total - - pricing_max_total - - -pricing_max_total - - pricing_updated - - -pricing_updated - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Assembly part is active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: part_locked - schema: - type: boolean - description: Assembly part is locked - - in: query - name: part_testable - schema: - type: boolean - description: Assembly part is testable - - in: query - name: part_trackable - schema: - type: boolean - description: Assembly part is trackable - - in: query - name: pricing - schema: - type: boolean - default: false - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__IPN, part__description, - part__keywords, part__name, part__revision, reference, sub_part__IPN, sub_part__category__name, - sub_part__description, sub_part__keywords, sub_part__name, sub_part__revision.' - schema: - type: string - - in: query - name: sub_part_active - schema: - type: boolean - description: Component part is active - - in: query - name: sub_part_assembly - schema: - type: boolean - description: Component part is an assembly - - in: query - name: sub_part_detail - schema: - type: boolean - default: false - - in: query - name: sub_part_testable - schema: - type: boolean - description: Component part is testable - - in: query - name: sub_part_trackable - schema: - type: boolean - description: Component part is trackable - - in: query - name: sub_part_virtual - schema: - type: boolean - description: Component part is virtual - - in: query - name: substitutes - schema: - type: boolean - default: false - - in: query - name: uses - schema: - type: integer - - in: query - name: validated - schema: - type: boolean - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBomItemList' - description: '' - post: - operationId: bom_create - description: |- - API endpoint for accessing a list of BomItem objects. - - - GET: Return list of BomItem objects - - POST: Create a new BomItem object - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:bom - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - put: - operationId: bom_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - patch: - operationId: bom_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - delete: - operationId: bom_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/bom/{id}/: - get: - operationId: bom_retrieve - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: query - name: can_build - schema: - type: boolean - default: true - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: pricing - schema: - type: boolean - default: false - - in: query - name: sub_part_detail - schema: - type: boolean - default: false - - in: query - name: substitutes - schema: - type: boolean - default: false - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - put: - operationId: bom_update - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - patch: - operationId: bom_partial_update - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItem' - description: '' - delete: - operationId: bom_destroy - description: API endpoint for detail view of a single BomItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - /api/bom/{id}/validate/: - put: - operationId: bom_validate_update - description: API endpoint for validating a BomItem. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemValidation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemValidation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - description: '' - patch: - operationId: bom_validate_partial_update - description: API endpoint for validating a BomItem. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItemValidation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemValidation' - description: '' - /api/bom/substitute/: - get: - operationId: bom_substitute_list - description: API endpoint for accessing a list of BomItemSubstitute objects. - parameters: - - in: query - name: bom_item - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBomItemSubstituteList' - description: '' - post: - operationId: bom_substitute_create - description: API endpoint for accessing a list of BomItemSubstitute objects. - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:bom - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - /api/bom/substitute/{id}/: - get: - operationId: bom_substitute_retrieve - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:bom - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - put: - operationId: bom_substitute_update - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - patch: - operationId: bom_substitute_partial_update - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBomItemSubstitute' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:bom - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BomItemSubstitute' - description: '' - delete: - operationId: bom_substitute_destroy - description: API endpoint for detail view of a single BomItemSubstitute object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - bom - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:bom - - r:delete:build - responses: - '204': - description: No response body - /api/build/: - get: - operationId: build_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: active - schema: - type: boolean - description: Build is active - - in: query - name: ancestor - schema: - type: integer - description: Ancestor Build - - in: query - name: assigned_to - schema: - type: integer - description: Assigned To - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: category - schema: - type: integer - description: Category - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed after - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed before - - in: query - name: created_after - schema: - type: string - format: date - description: Created after - - in: query - name: created_before - schema: - type: string - format: date - description: Created before - - in: query - name: exclude_tree - schema: - type: integer - description: Exclude Tree - - in: query - name: external - schema: - type: boolean - - in: query - name: has_project_code - schema: - type: boolean - description: has_project_code - - in: query - name: has_start_date - schema: - type: boolean - description: Has start date - - in: query - name: has_target_date - schema: - type: boolean - description: Has target date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: issued_by - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - reference - - -reference - - part - - -part - - IPN - - -IPN - - part__name - - -part__name - - status - - -status - - creation_date - - -creation_date - - start_date - - -start_date - - target_date - - -target_date - - completion_date - - -completion_date - - quantity - - -quantity - - completed - - -completed - - issued_by - - -issued_by - - responsible - - -responsible - - project_code - - -project_code - - priority - - -priority - - level - - -level - - external - - -external - - in: query - name: outstanding - schema: - type: boolean - description: Build is outstanding - - in: query - name: overdue - schema: - type: boolean - description: Build is overdue - - in: query - name: parent - schema: - type: integer - description: Parent Build - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: project_code - schema: - type: integer - - in: query - name: reference - schema: - type: string - description: Filter by exact reference - - in: query - name: sales_order - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__IPN, part__description, - part__name, priority, project_code__code, reference, title.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start date after - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start date before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target date after - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target date before - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildList' - description: '' - post: - operationId: build_create - description: |- - API endpoint for accessing a list of Build objects. - - - GET: Return list of objects (with filters) - - POST: Create a new Build object - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Build' - multipart/form-data: - schema: - $ref: '#/components/schemas/Build' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - /api/build/{id}/: - get: - operationId: build_retrieve - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - put: - operationId: build_update - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Build' - multipart/form-data: - schema: - $ref: '#/components/schemas/Build' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - patch: - operationId: build_partial_update - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuild' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuild' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuild' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Build' - description: '' - delete: - operationId: build_destroy - description: API endpoint for detail view of a Build object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/{id}/allocate/: - post: - operationId: build_allocate_create - description: |- - API endpoint to allocate stock items to a build order. - - - The BuildOrder object is specified by the URL - - Items to allocate are specified as a list called "items" with the following options: - - bom_item: pk value of a given BomItem object (must match the part associated with this build) - - stock_item: pk value of a given StockItem object - - quantity: quantity to allocate - - output: StockItem (build order output) to allocate stock against (optional) - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAllocation' - description: '' - /api/build/{id}/auto-allocate/: - post: - operationId: build_auto_allocate_create - description: |- - Override the POST method to handle auto allocation task. - - As this is offloaded to the background task, - we return information about the background task which is performing the auto allocation operation. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildAutoAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/cancel/: - post: - operationId: build_cancel_create - description: API endpoint for cancelling a BuildOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildCancel' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildCancel' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildCancel' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildCancel' - description: '' - /api/build/{id}/complete/: - post: - operationId: build_complete_create - description: Override POST to offload build output completion to the background - worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputComplete' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/consume/: - post: - operationId: build_consume_create - description: |- - Override the POST method to handle consume task. - - As this is offloaded to the background task, - we return information about the background task which is performing the consume operation. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildConsume' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildConsume' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildConsume' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/create-output/: - post: - operationId: build_create_output_create - description: API endpoint for creating new build output(s). - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/build/{id}/delete-outputs/: - post: - operationId: build_delete_outputs_create - description: Override POST to offload build output deletion to the background - worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputDelete' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/finish/: - post: - operationId: build_finish_create - description: API endpoint for marking a build as finished (completed). - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildComplete' - description: '' - /api/build/{id}/hold/: - post: - operationId: build_hold_create - description: API endpoint for placing a BuildOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/build/{id}/issue/: - post: - operationId: build_issue_create - description: API endpoint for issuing a BuildOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/build/{id}/scrap-outputs/: - post: - operationId: build_scrap_outputs_create - description: Override POST to offload scrapping to the background worker. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildOutputScrap' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/build/{id}/unallocate/: - post: - operationId: build_unallocate_create - description: |- - API endpoint for unallocating stock items from a build order. - - - The BuildOrder object is specified by the URL - - "output" (StockItem) can optionally be specified - - "bom_item" can optionally be specified - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildUnallocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildUnallocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildUnallocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildUnallocation' - description: '' - /api/build/item/: - get: - operationId: build_item_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: build - schema: - type: integer - description: Build Order - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: query - name: build_line - schema: - type: integer - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: install_into - schema: - type: integer - - in: query - name: install_into_detail - schema: - type: boolean - default: false - description: Include detailed information about the build output for this - build item. - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the location of the allocated - stock item. - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - sku - - -sku - - quantity - - -quantity - - location - - -location - - reference - - -reference - - IPN - - -IPN - - in: query - name: output - schema: - type: integer - description: Filter by output stock item ID. Use 'null' to find uninstalled - build items. - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the part associated with this - build item. - - name: search - required: false - in: query - description: 'A search term. Searched fields: build_line__bom_item__reference, - stock_item__part__IPN, stock_item__part__name, stock_item__supplier_part__SKU.' - schema: - type: string - - in: query - name: stock_detail - schema: - type: boolean - default: false - description: Include detailed information about the allocated stock item. - - in: query - name: stock_item - schema: - type: integer - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier part associated - with this build item. - - in: query - name: tracked - schema: - type: boolean - description: Tracked - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildItemList' - description: '' - post: - operationId: build_item_create - description: |- - API endpoint for accessing a list of BuildItem objects. - - - GET: Return list of objects - - POST: Create a new BuildItem object - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - delete: - operationId: build_item_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/build/item/{id}/: - get: - operationId: build_item_retrieve - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - put: - operationId: build_item_update - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - patch: - operationId: build_item_partial_update - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuildItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildItem' - description: '' - delete: - operationId: build_item_destroy - description: API endpoint for detail view of a BuildItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/line/: - get: - operationId: build_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: allocations - schema: - type: boolean - default: false - description: Include allocation details showing which stock items are allocated - to this build line. - - in: query - name: assembly - schema: - type: boolean - description: Assembly - - in: query - name: assembly_detail - schema: - type: boolean - default: false - description: Include brief details of the assembly (parent part) related to - the BOM item in this build line. - - in: query - name: available - schema: - type: boolean - description: Available - - in: query - name: bom_item - schema: - type: integer - - in: query - name: bom_item_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - in: query - name: build - schema: - type: integer - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: query - name: consumable - schema: - type: boolean - description: Consumable - - in: query - name: consumed - schema: - type: boolean - description: Consumed - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: on_order - schema: - type: boolean - description: On Order - - in: query - name: optional - schema: - type: boolean - description: Optional - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - allocated - - -allocated - - category - - -category - - consumed - - -consumed - - reference - - -reference - - quantity - - -quantity - - consumable - - -consumable - - optional - - -optional - - unit_quantity - - -unit_quantity - - available_stock - - -available_stock - - trackable - - -trackable - - allow_variants - - -allow_variants - - inherited - - -inherited - - on_order - - -on_order - - scheduled_to_build - - -scheduled_to_build - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the specific part being built - or consumed in this build line. - - name: search - required: false - in: query - description: 'A search term. Searched fields: bom_item__reference, bom_item__sub_part__IPN, - bom_item__sub_part__description, bom_item__sub_part__name.' - schema: - type: string - - in: query - name: testable - schema: - type: boolean - description: Testable - - in: query - name: tracked - schema: - type: boolean - description: Tracked - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBuildLineList' - description: '' - post: - operationId: build_line_create - description: API endpoint for accessing a list of BuildLine objects. - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - /api/build/line/{id}/: - get: - operationId: build_line_retrieve - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: query - name: allocations - schema: - type: boolean - default: false - description: Include allocation details showing which stock items are allocated - to this build line. - - in: query - name: assembly_detail - schema: - type: boolean - default: false - description: Include brief details of the assembly (parent part) related to - the BOM item in this build line. - - in: query - name: bom_item_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - in: query - name: build_detail - schema: - type: boolean - default: false - description: Include detailed information about the associated build order. - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the specific part being built - or consumed in this build line. - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - put: - operationId: build_line_update - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/BuildLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - patch: - operationId: build_line_partial_update - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedBuildLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BuildLine' - description: '' - delete: - operationId: build_line_destroy - description: API endpoint for detail view of a BuildLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - responses: - '204': - description: No response body - /api/build/status/: - get: - operationId: build_status_retrieve - description: Retrieve information about a specific status code - tags: - - build - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/company/: - get: - operationId: company_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: is_customer - schema: - type: boolean - - in: query - name: is_manufacturer - schema: - type: boolean - - in: query - name: is_supplier - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - active - - -active - - name - - -name - - parts_supplied - - -parts_supplied - - parts_manufactured - - -parts_manufactured - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, tax_id, website.' - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCompanyList' - description: '' - post: - operationId: company_create - description: |- - API endpoint for accessing a list of Company objects. - - Provides two methods: - - - GET: Return list of objects - - POST: Create a new Company object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Company' - multipart/form-data: - schema: - $ref: '#/components/schemas/Company' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - /api/company/{id}/: - get: - operationId: company_retrieve - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - put: - operationId: company_update - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Company' - multipart/form-data: - schema: - $ref: '#/components/schemas/Company' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - patch: - operationId: company_partial_update - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCompany' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCompany' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCompany' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Company' - description: '' - delete: - operationId: company_destroy - description: API endpoint for detail of a single Company object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/address/: - get: - operationId: company_address_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: company - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - title - - -title - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedAddressList' - description: '' - post: - operationId: company_address_create - description: API endpoint for list view of Address model. - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Address' - multipart/form-data: - schema: - $ref: '#/components/schemas/Address' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - delete: - operationId: company_address_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/address/{id}/: - get: - operationId: company_address_retrieve - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - put: - operationId: company_address_update - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Address' - multipart/form-data: - schema: - $ref: '#/components/schemas/Address' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - patch: - operationId: company_address_partial_update - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedAddress' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAddress' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAddress' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Address' - description: '' - delete: - operationId: company_address_destroy - description: API endpoint for a single Address object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/contact/: - get: - operationId: company_contact_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: company - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: company__name, name.' - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedContactList' - description: '' - post: - operationId: company_contact_create - description: API endpoint for list view of Company model. - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Contact' - multipart/form-data: - schema: - $ref: '#/components/schemas/Contact' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - - r:add:sales_order - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - delete: - operationId: company_contact_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/contact/{id}/: - get: - operationId: company_contact_retrieve - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - put: - operationId: company_contact_update - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Contact' - multipart/form-data: - schema: - $ref: '#/components/schemas/Contact' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - patch: - operationId: company_contact_partial_update - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedContact' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedContact' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedContact' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Contact' - description: '' - delete: - operationId: company_contact_destroy - description: Detail endpoint for Company model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - - r:delete:sales_order - - r:delete:return_order - responses: - '204': - description: No response body - /api/company/part/: - get: - operationId: company_part_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: MPN - schema: - type: string - description: Manufacturer Part Number - - in: query - name: SKU - schema: - type: string - - in: query - name: active - schema: - type: boolean - description: Supplier Part is Active - - in: query - name: company - schema: - type: integer - description: Company - - in: query - name: has_stock - schema: - type: boolean - description: Has Stock - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: manufacturer - schema: - type: integer - description: Manufacturer - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - in: query - name: manufacturer_part - schema: - type: integer - - in: query - name: manufacturer_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked ManufacturerPart - in the response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - supplier - - -supplier - - manufacturer - - -manufacturer - - active - - -active - - primary - - -primary - - IPN - - -IPN - - MPN - - -MPN - - SKU - - -SKU - - packaging - - -packaging - - pack_quantity - - -pack_quantity - - in_stock - - -in_stock - - updated - - -updated - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Internal Part is Active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - in: query - name: primary - schema: - type: boolean - description: Primary Supplier Part - - name: search - required: false - in: query - description: 'A search term. Searched fields: SKU, description, manufacturer_part__MPN, - manufacturer_part__manufacturer__name, part__IPN, part__description, part__keywords, - part__name, supplier__name, tags__name, tags__slug.' - schema: - type: string - - in: query - name: supplier - schema: - type: integer - - in: query - name: supplier_active - schema: - type: boolean - description: Supplier is Active - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSupplierPartList' - description: '' - post: - operationId: company_part_create - description: |- - API endpoint for list view of SupplierPart object. - - - GET: Return list of SupplierPart objects - - POST: Create a new SupplierPart object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - delete: - operationId: company_part_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/part/{id}/: - get: - operationId: company_part_retrieve - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - in: query - name: manufacturer_part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked ManufacturerPart - in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - put: - operationId: company_part_update - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - patch: - operationId: company_part_partial_update - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSupplierPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPart' - description: '' - delete: - operationId: company_part_destroy - description: |- - API endpoint for detail view of SupplierPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/company/part/manufacturer/: - get: - operationId: company_part_manufacturer_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: MPN - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: manufacturer - schema: - type: integer - - in: query - name: manufacturer_active - schema: - type: boolean - description: Manufacturer is Active - - in: query - name: manufacturer_detail - schema: - type: boolean - default: false - description: Include detailed information about the Manufacturer in the response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - MPN - - -MPN - - manufacturer - - -manufacturer - - in: query - name: part - schema: - type: integer - - in: query - name: part_active - schema: - type: boolean - description: Part is Active - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: pretty - schema: - type: boolean - default: false - description: Format the output with a more readable (pretty) name - - name: search - required: false - in: query - description: 'A search term. Searched fields: MPN, description, manufacturer__name, - part__IPN, part__description, part__name, tags__name, tags__slug.' - schema: - type: string - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedManufacturerPartList' - description: '' - post: - operationId: company_part_manufacturer_create - description: |- - API endpoint for list view of ManufacturerPart object. - - - GET: Return list of ManufacturerPart objects - - POST: Create a new ManufacturerPart object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/ManufacturerPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - delete: - operationId: company_part_manufacturer_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/company/part/manufacturer/{id}/: - get: - operationId: company_part_manufacturer_retrieve - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - put: - operationId: company_part_manufacturer_update - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/ManufacturerPart' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - patch: - operationId: company_part_manufacturer_partial_update - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedManufacturerPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ManufacturerPart' - description: '' - delete: - operationId: company_part_manufacturer_destroy - description: |- - API endpoint for detail view of ManufacturerPart object. - - - GET: Retrieve detail view - - PATCH: Update object - - DELETE: Delete object - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/company/price-break/: - get: - operationId: company_price_break_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: base_part - schema: - type: integer - description: Base Part - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - supplier - - -supplier - - SKU - - -SKU - - price - - -price - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the linked Part in the response - - in: query - name: quantity - schema: - type: number - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__SKU, part__supplier__name.' - schema: - type: string - - in: query - name: supplier - schema: - type: integer - description: Supplier - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the Supplier in the response - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSupplierPriceBreakList' - description: '' - post: - operationId: company_price_break_create - description: |- - API endpoint for list view of SupplierPriceBreak object. - - - GET: Retrieve list of SupplierPriceBreak objects - - POST: Create a new SupplierPriceBreak object - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - /api/company/price-break/{id}/: - get: - operationId: company_price_break_retrieve - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - put: - operationId: company_price_break_update - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - patch: - operationId: company_price_break_partial_update - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSupplierPriceBreak' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SupplierPriceBreak' - description: '' - delete: - operationId: company_price_break_destroy - description: Detail endpoint for SupplierPriceBreak object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - company - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/contenttype/: - get: - operationId: contenttype_list - description: List view for ContentTypes. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: app_label, model.' - schema: - type: string - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedContentTypeList' - description: '' - /api/contenttype/{id}/: - get: - operationId: contenttype_retrieve - description: Detail view for a ContentType model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ContentType' - description: '' - /api/contenttype/model/{model}/: - get: - operationId: contenttype_retrieve_model - description: Detail view for a ContentType model. - parameters: - - in: path - name: model - schema: - type: string - required: true - tags: - - contenttype - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ContentType' - description: '' - /api/currency/exchange/: - get: - operationId: currency_exchange_retrieve - description: Return information on available currency conversions. - tags: - - currency - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CurrencyExchange' - description: '' - /api/currency/refresh/: - post: - operationId: currency_refresh_create - description: Performing a POST request will update currency exchange rates. - tags: - - currency - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - description: No response body - /api/data-output/: - get: - operationId: data_output_list - description: Mixin class for DataOutput endpoints. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - user - - -user - - plugin - - -plugin - - output_type - - -output_type - - created - - -created - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataOutputList' - description: '' - delete: - operationId: data_output_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/data-output/{id}/: - get: - operationId: data_output_retrieve - description: Mixin class for DataOutput endpoints. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this data output. - required: true - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataOutput' - description: '' - delete: - operationId: data_output_destroy - description: Mixin class for DataOutput endpoints. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this data output. - required: true - tags: - - data-output - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/email/generate/: - post: - operationId: email_generate_create - description: Get the token for the current user or fail. - tags: - - email - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - multipart/form-data: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetSimpleLogin' - description: '' - /api/error-report/: - get: - operationId: error_report_list - description: List view for server error messages. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - when - - -when - - info - - -info - - name: search - required: false - in: query - description: 'A search term. Searched fields: data, info.' - schema: - type: string - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedErrorMessageList' - description: '' - delete: - operationId: error_report_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/error-report/{id}/: - get: - operationId: error_report_retrieve - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - put: - operationId: error_report_update - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ErrorMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/ErrorMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - patch: - operationId: error_report_partial_update - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedErrorMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - description: '' - delete: - operationId: error_report_destroy - description: List view for server error messages. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Error. - required: true - tags: - - error-report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/flags/: - get: - operationId: flags_list - description: List view for feature flags. - tags: - - flags - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Flag' - description: '' - /api/flags/{key}/: - get: - operationId: flags_retrieve - description: Detail view for an individual feature flag. - parameters: - - in: path - name: key - schema: - type: string - required: true - tags: - - flags - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Flag' - description: '' - /api/generate/batch-code/: - post: - operationId: generate_batch_code_create - description: Generate a new batch code. - tags: - - generate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateBatchCode' - description: '' - /api/generate/serial-number/: - post: - operationId: generate_serial_number_create - description: Generate a new serial number. - tags: - - generate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - multipart/form-data: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateSerialNumber' - description: '' - /api/generic/status/: - get: - operationId: generic_status_retrieve_all - description: Perform a GET request to learn information about status codes. - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: object - additionalProperties: {} - description: Mapping from class name to GenericStateClass data - /api/generic/status/{statusmodel}/: - get: - operationId: generic_status_retrieve - description: Retrieve information about a specific status code - parameters: - - in: path - name: statusmodel - schema: - type: string - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/generic/status/custom/: - get: - operationId: generic_status_custom_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - key - - -key - - in: query - name: reference_status - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, label, name, reference_status.' - schema: - type: string - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCustomStateList' - description: '' - post: - operationId: generic_status_custom_create - description: List view for all custom states. - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomState' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - /api/generic/status/custom/{id}/: - get: - operationId: generic_status_custom_retrieve - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - put: - operationId: generic_status_custom_update - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomState' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - patch: - operationId: generic_status_custom_partial_update - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCustomState' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCustomState' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCustomState' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomState' - description: '' - delete: - operationId: generic_status_custom_destroy - description: Detail view for a particular custom states. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - generic - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/icons/: - get: - operationId: icons_list - description: List view for available icon packages. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - icons - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedIconPackageList' - description: '' - /api/importer/column-mapping/: - get: - operationId: importer_column_mapping_list - description: API endpoint for accessing a list of DataImportColumnMap objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: session - schema: - type: integer - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportColumnMapList' - description: '' - /api/importer/column-mapping/{id}/: - get: - operationId: importer_column_mapping_retrieve - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - put: - operationId: importer_column_mapping_update - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - patch: - operationId: importer_column_mapping_partial_update - description: Detail endpoint for a single DataImportColumnMap object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportColumnMap' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportColumnMap' - description: '' - /api/importer/models/: - get: - operationId: importer_models_list - description: Return a list of models available for import. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/DataImporterModel' - description: '' - /api/importer/row/: - get: - operationId: importer_row_list - description: API endpoint for accessing a list of DataImportRow objects. - parameters: - - in: query - name: complete - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - row_index - - -row_index - - valid - - -valid - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: session - schema: - type: integer - - in: query - name: valid - schema: - type: boolean - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportRowList' - description: '' - delete: - operationId: importer_row_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/importer/row/{id}/: - get: - operationId: importer_row_retrieve - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - put: - operationId: importer_row_update - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportRow' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - patch: - operationId: importer_row_partial_update - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportRow' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportRow' - description: '' - delete: - operationId: importer_row_destroy - description: Detail endpoint for a single DataImportRow object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/importer/session/: - get: - operationId: importer_session_list - description: API endpoint for accessing a list of DataImportSession objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - timestamp - - -timestamp - - status - - -status - - model_type - - -model_type - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: status - schema: - type: integer - enum: - - 0 - - 10 - - 20 - - 30 - - 40 - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - - in: query - name: user - schema: - type: integer - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDataImportSessionList' - description: '' - post: - operationId: importer_session_create - description: API endpoint for accessing a list of DataImportSession objects. - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportSession' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - delete: - operationId: importer_session_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/importer/session/{id}/: - get: - operationId: importer_session_retrieve - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - put: - operationId: importer_session_update - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportSession' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - patch: - operationId: importer_session_partial_update - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedDataImportSession' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - delete: - operationId: importer_session_destroy - description: Detail endpoint for a single DataImportSession object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '204': - description: No response body - /api/importer/session/{id}/accept_fields/: - post: - operationId: importer_session_accept_fields_create - description: Accept the field mapping for a DataImportSession. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportSession' - description: '' - /api/importer/session/{id}/accept_rows/: - post: - operationId: importer_session_accept_rows_create - description: API endpoint to accept the rows for a DataImportSession. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - importer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - multipart/form-data: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/DataImportAcceptRow' - description: '' - /api/label/print/: - post: - operationId: label_print_create - description: POST action for printing labels. - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelPrint' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelPrint' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelPrint' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelPrint' - description: '' - /api/label/template/: - get: - operationId: label_template_list - description: API endpoint for viewing list of LabelTemplate objects. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: items - schema: - type: string - description: Items - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - enum: - - build - - buildline - - company - - part - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - stockitem - - stocklocation - - transferorder - description: |- - Model Type - - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLabelTemplateList' - description: '' - post: - operationId: label_template_create - description: API endpoint for viewing list of LabelTemplate objects. - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - /api/label/template/{id}/: - get: - operationId: label_template_retrieve - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - put: - operationId: label_template_update - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/LabelTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - patch: - operationId: label_template_partial_update - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLabelTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LabelTemplate' - description: '' - delete: - operationId: label_template_destroy - description: Detail API endpoint for label template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - label - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/license/: - get: - operationId: license_retrieve - description: Return information about the InvenTree server. - tags: - - license - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseView' - description: '' - /api/locate/: - post: - operationId: locate_create - description: Identify or 'locate' a stock item or location with a plugin. - tags: - - locate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LocatePlugin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/LocatePlugin' - multipart/form-data: - schema: - $ref: '#/components/schemas/LocatePlugin' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/LocatePlugin' - description: '' - /api/machine/: - get: - operationId: machine_list - description: |- - API endpoint for list of Machine objects. - - - GET: Return a list of all Machine objects - - POST: create a MachineConfig - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: driver - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: machine_type - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - machine_type - - -machine_type - - driver - - -driver - - active - - -active - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedMachineConfigList' - description: '' - post: - operationId: machine_create - description: |- - API endpoint for list of Machine objects. - - - GET: Return a list of all Machine objects - - POST: create a MachineConfig - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:admin - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfigCreate' - description: '' - /api/machine/{id}/: - get: - operationId: machine_retrieve - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - put: - operationId: machine_update - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineConfig' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineConfig' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - patch: - operationId: machine_partial_update - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMachineConfig' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineConfig' - description: '' - delete: - operationId: machine_destroy - description: |- - API detail endpoint for MachineConfig object. - - - GET: return a single MachineConfig - - PUT: update a MachineConfig - - PATCH: partial update a MachineConfig - - DELETE: delete a MachineConfig - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:admin - responses: - '204': - description: No response body - /api/machine/{id}/restart/: - post: - operationId: machine_restart_create - description: Restart machine by pk. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineRestart' - description: '' - /api/machine/{id}/settings/: - get: - operationId: machine_settings_list - description: Return all settings for a machine config. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineSetting' - description: '' - /api/machine/{id}/settings/{config_type}/{key}/: - get: - operationId: machine_settings_retrieve - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - put: - operationId: machine_settings_update - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MachineSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/MachineSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - patch: - operationId: machine_settings_partial_update - description: |- - Detail endpoint for a machine-specific setting. - - - GET: Get machine setting detail - - PUT: Update machine setting - - PATCH: Update machine setting - - (Note that these cannot be created or deleted via API) - parameters: - - in: path - name: config_type - schema: - type: string - pattern: ^M|D$ - required: true - - in: path - name: id - schema: - type: string - format: uuid - required: true - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - machine - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMachineSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineSetting' - description: '' - /api/machine/drivers/: - get: - operationId: machine_drivers_list - description: List all machine drivers. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineDriver' - description: '' - /api/machine/status/: - get: - operationId: machine_status_retrieve - description: Provide status data for the machine registry. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MachineRegistryStatus' - description: '' - /api/machine/types/: - get: - operationId: machine_types_list - description: List of all machine types. - tags: - - machine - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MachineType' - description: '' - /api/metadata/{model}/{lookup_field}/{lookup_value}/: - get: - operationId: metadata_retrieve - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - - r:view:part_category - - r:view:part - - r:view:stock_location - - r:view:stock - - r:view:bom - - r:view:build - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - - r:view:transfer_order - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - put: - operationId: metadata_update - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Metadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/Metadata' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - patch: - operationId: metadata_partial_update - description: Metadata for specific instance; see https://docs.inventree.org/en/stable/plugins/metadata/ - for more detail on how metadata works. Most core models support metadata. - parameters: - - in: path - name: lookup_field - schema: - type: string - required: true - - in: path - name: lookup_value - schema: - type: string - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMetadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMetadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMetadata' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - /api/metadata/{model}/{id}/: - get: - operationId: metadata_pk_retrieve - description: Perform a GET request to retrieve metadata for the given object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - - r:view:part_category - - r:view:part - - r:view:stock_location - - r:view:stock - - r:view:bom - - r:view:build - - r:view:purchase_order - - r:view:sales_order - - r:view:return_order - - r:view:transfer_order - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - put: - operationId: metadata_pk_update - description: Perform a PUT request to update metadata for the given object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Metadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/Metadata' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - patch: - operationId: metadata_pk_partial_update - description: Perform a PATCH request to partially update metadata for the given - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: path - name: model - schema: - type: string - required: true - tags: - - metadata - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMetadata' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMetadata' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMetadata' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:admin - - r:change:part_category - - r:change:part - - r:change:stock_location - - r:change:stock - - r:change:bom - - r:change:build - - r:change:purchase_order - - r:change:sales_order - - r:change:return_order - - r:change:transfer_order - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - description: '' - /api/news/: - get: - operationId: news_list - description: Newsfeed from the official inventree.org website. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - published - - -published - - author - - -author - - read - - -read - - in: query - name: read - schema: - type: boolean - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNewsFeedEntryList' - description: '' - delete: - operationId: news_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/news/{id}/: - get: - operationId: news_retrieve - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - put: - operationId: news_update - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - patch: - operationId: news_partial_update - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedNewsFeedEntry' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NewsFeedEntry' - description: '' - delete: - operationId: news_destroy - description: Newsfeed from the official inventree.org website. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this news feed entry. - required: true - tags: - - news - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/notes-image-upload/: - get: - operationId: notes_image_upload_list - description: List view for all notes images. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: 'A search term. Searched fields: model_id, model_type, user.' - schema: - type: string - tags: - - notes-image-upload - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNotesImageList' - description: '' - post: - operationId: notes_image_upload_create - description: List view for all notes images. - tags: - - notes-image-upload - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotesImage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotesImage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotesImage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/NotesImage' - description: '' - /api/notifications/: - get: - operationId: notifications_list - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: query - name: category - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - category - - -category - - name - - -name - - read - - -read - - creation - - -creation - - in: query - name: read - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: message, name.' - schema: - type: string - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNotificationMessageList' - description: '' - delete: - operationId: notifications_bulk_destroy - description: |- - Perform a bulk delete operation. - - Provide either a list of ids (via `items`) or a filter (via `filters`) to select the items to be deleted. - - This action is performed attomically, so either all items will be deleted, or none will be deleted. - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/notifications/{id}/: - get: - operationId: notifications_retrieve - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - put: - operationId: notifications_update - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotificationMessage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - patch: - operationId: notifications_partial_update - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedNotificationMessage' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - delete: - operationId: notifications_destroy - description: |- - Notifications for the current user. - - - User can only view / delete their own notification objects - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this notification message. - required: true - tags: - - notifications - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/notifications/readall/: - post: - operationId: notifications_readall_create - description: Set all messages for the current user as read. - tags: - - notifications - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NotificationMessage' - multipart/form-data: - schema: - $ref: '#/components/schemas/NotificationMessage' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationMessage' - description: '' - /api/order/po/: - get: - operationId: order_po_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: external_build - schema: - type: integer - description: External Build Order - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - supplier__name - - -supplier__name - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - line_items - - -line_items - - status - - -status - - responsible - - -responsible - - total_price - - -total_price - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, project_code__code, - reference, supplier__name, supplier_reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: supplier - schema: - type: integer - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier in the response - - in: query - name: supplier_part - schema: - type: integer - description: Supplier Part - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderList' - description: '' - post: - operationId: order_po_create - description: |- - API endpoint for accessing a list of PurchaseOrder objects. - - - GET: Return list of PurchaseOrder objects (with filters) - - POST: Create a new PurchaseOrder object - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - /api/order/po-extra-line/: - get: - operationId: order_po_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderExtraLineList' - description: '' - post: - operationId: order_po_extra_line_create - description: API endpoint for accessing a list of PurchaseOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - /api/order/po-extra-line/{id}/: - get: - operationId: order_po_extra_line_retrieve - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - put: - operationId: order_po_extra_line_update - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - patch: - operationId: order_po_extra_line_partial_update - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - description: '' - delete: - operationId: order_po_extra_line_destroy - description: API endpoint for detail view of a PurchaseOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po-line/: - get: - operationId: order_po_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: base_part - schema: - type: integer - description: Internal Part - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - MPN - - -MPN - - part_name - - -part_name - - purchase_price - - -purchase_price - - quantity - - -quantity - - received - - -received - - reference - - -reference - - SKU - - -SKU - - IPN - - -IPN - - total_price - - -total_price - - target_date - - -target_date - - order - - -order - - status - - -status - - complete_date - - -complete_date - - line - - -line - - in: query - name: part - schema: - type: integer - description: Supplier Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: pending - schema: - type: boolean - description: Order Pending - - in: query - name: received - schema: - type: boolean - description: Items Received - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__SKU, part__manufacturer_part__MPN, - part__part__description, part__part__name, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPurchaseOrderLineItemList' - description: '' - post: - operationId: order_po_line_create - description: |- - API endpoint for accessing a list of PurchaseOrderLineItem objects. - - - GET: Return a list of PurchaseOrder Line Item objects - - POST: Create a new PurchaseOrderLineItem object - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:purchase_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - delete: - operationId: order_po_line_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/order/po-line/{id}/: - get: - operationId: order_po_line_retrieve - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - put: - operationId: order_po_line_update - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - patch: - operationId: order_po_line_partial_update - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderLineItem' - description: '' - delete: - operationId: order_po_line_destroy - description: Detail API endpoint for PurchaseOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po/{id}/: - get: - operationId: order_po_retrieve - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: supplier_detail - schema: - type: boolean - default: false - description: Include detailed information about the supplier in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - put: - operationId: order_po_update - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - patch: - operationId: order_po_partial_update - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPurchaseOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:purchase_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrder' - description: '' - delete: - operationId: order_po_destroy - description: API endpoint for detail view of a PurchaseOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:purchase_order - responses: - '204': - description: No response body - /api/order/po/{id}/cancel/: - post: - operationId: order_po_cancel_create - description: |- - API endpoint to 'cancel' a purchase order. - - The purchase order must be in a state which can be cancelled - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/complete/: - post: - operationId: order_po_complete_create - description: API endpoint to 'complete' a purchase order. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderComplete' - description: '' - /api/order/po/{id}/hold/: - post: - operationId: order_po_hold_create - description: API endpoint to place a PurchaseOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/issue/: - post: - operationId: order_po_issue_create - description: API endpoint to 'issue' (place) a PurchaseOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/po/{id}/receive/: - post: - operationId: order_po_receive_create - description: |- - API endpoint to receive stock items against a PurchaseOrder. - - - The purchase order is specified in the URL. - - Items to receive are specified as a list called "items" with the following options: - - line_item: pk of the PO Line item - - supplier_part: pk value of the supplier part - - quantity: quantity to receive - - status: stock item status - - expiry_date: stock item expiry date (optional) - - location: destination for stock item (optional) - - batch_code: the batch code for this stock item - - serial_numbers: serial numbers for this stock item - - A global location must also be specified. This is used when no locations are specified for items, and no location is given in the PO line item - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/PurchaseOrderReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/order/po/status/: - get: - operationId: order_po_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/repair/: - get: - operationId: order_repair_list - description: API endpoint for accessing a list of RepairOrder objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderList' - description: '' - post: - operationId: order_repair_create - description: API endpoint for accessing a list of RepairOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - /api/order/repair-allocation/: - get: - operationId: order_repair_allocation_list - description: API endpoint for accessing a list of RepairOrderAllocation objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderAllocationList' - description: '' - post: - operationId: order_repair_allocation_create - description: API endpoint for accessing a list of RepairOrderAllocation objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - /api/order/repair-allocation/{id}/: - get: - operationId: order_repair_allocation_retrieve - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - put: - operationId: order_repair_allocation_update - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - patch: - operationId: order_repair_allocation_partial_update - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderAllocation' - description: '' - delete: - operationId: order_repair_allocation_destroy - description: API endpoint for detail view of a single RepairOrderAllocation - object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/repair-line/: - get: - operationId: order_repair_line_list - description: API endpoint for accessing a list of RepairOrderLineItem objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRepairOrderLineItemList' - description: '' - post: - operationId: order_repair_line_create - description: API endpoint for accessing a list of RepairOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:repair_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - /api/order/repair-line/{id}/: - get: - operationId: order_repair_line_retrieve - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - put: - operationId: order_repair_line_update - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - patch: - operationId: order_repair_line_partial_update - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrderLineItem' - description: '' - delete: - operationId: order_repair_line_destroy - description: API endpoint for detail view of a single RepairOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/repair/{id}/: - get: - operationId: order_repair_retrieve - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - put: - operationId: order_repair_update - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/RepairOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - patch: - operationId: order_repair_partial_update - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRepairOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:repair_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RepairOrder' - description: '' - delete: - operationId: order_repair_destroy - description: API endpoint for detail view of a single RepairOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:repair_order - responses: - '204': - description: No response body - /api/order/ro/: - get: - operationId: order_ro_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: customer - schema: - type: integer - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - customer__name - - -customer__name - - customer_reference - - -customer_reference - - line_items - - -line_items - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: customer__name, customer_reference, - description, project_code__code, reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderList' - description: '' - post: - operationId: order_ro_create - description: API endpoint for accessing a list of ReturnOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - /api/order/ro-extra-line/: - get: - operationId: order_ro_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderExtraLineList' - description: '' - post: - operationId: order_ro_extra_line_create - description: API endpoint for accessing a list of ReturnOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - /api/order/ro-extra-line/{id}/: - get: - operationId: order_ro_extra_line_retrieve - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - put: - operationId: order_ro_extra_line_update - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - patch: - operationId: order_ro_extra_line_partial_update - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderExtraLine' - description: '' - delete: - operationId: order_ro_extra_line_destroy - description: API endpoint for detail view of a ReturnOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro-line/: - get: - operationId: order_ro_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: true - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - IPN - - -IPN - - stock - - -stock - - reference - - -reference - - target_date - - -target_date - - received_date - - -received_date - - line - - -line - - in: query - name: outcome - schema: - type: integer - description: outcome - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - in: query - name: received - schema: - type: boolean - description: received - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__part__description, item__part__name, - item__serial, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReturnOrderLineItemList' - description: '' - post: - operationId: order_ro_line_create - description: API endpoint for accessing a list of ReturnOrderLineItemList objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:return_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - /api/order/ro-line/{id}/: - get: - operationId: order_ro_line_retrieve - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: item_detail - schema: - type: boolean - default: true - description: Include detailed information about the item in the response - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - put: - operationId: order_ro_line_update - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - patch: - operationId: order_ro_line_partial_update - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderLineItem' - description: '' - delete: - operationId: order_ro_line_destroy - description: API endpoint for detail view of a ReturnOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro-line/status/: - get: - operationId: order_ro_line_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/ro/{id}/: - get: - operationId: order_ro_retrieve - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - put: - operationId: order_ro_update - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - patch: - operationId: order_ro_partial_update - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReturnOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:return_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrder' - description: '' - delete: - operationId: order_ro_destroy - description: API endpoint for detail view of a single ReturnOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:return_order - responses: - '204': - description: No response body - /api/order/ro/{id}/cancel/: - post: - operationId: order_ro_cancel_create - description: API endpoint to cancel a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/complete/: - post: - operationId: order_ro_complete_create - description: API endpoint to complete a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/hold/: - post: - operationId: order_ro_hold_create - description: API endpoint to hold a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/issue/: - post: - operationId: order_ro_issue_create - description: API endpoint to issue (place) a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/ro/{id}/receive/: - post: - operationId: order_ro_receive_create - description: API endpoint to receive items against a ReturnOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReturnOrderReceive' - description: '' - /api/order/ro/status/: - get: - operationId: order_ro_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/so/: - get: - operationId: order_so_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: customer - schema: - type: integer - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - customer__name - - -customer__name - - customer_reference - - -customer_reference - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - line_items - - -line_items - - shipment_date - - -shipment_date - - total_price - - -total_price - - project_code - - -project_code - - updated_at - - -updated_at - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: customer__name, customer_reference, - description, project_code__code, reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderList' - description: '' - post: - operationId: order_so_create - description: |- - API endpoint for accessing a list of SalesOrder objects. - - - GET: Return list of SalesOrder objects (with filters) - - POST: Create a new SalesOrder - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - /api/order/so-allocation/: - get: - operationId: order_so_allocation_list - description: API endpoint for listing SalesOrderAllocation objects. - parameters: - - in: query - name: assigned_to_shipment - schema: - type: boolean - description: Has Shipment - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: line - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - part - - -part - - serial - - -serial - - IPN - - -IPN - - batch - - -batch - - location - - -location - - order - - -order - - shipment_date - - -shipment_date - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__batch, item__part__IPN, - item__part__name, item__serial.' - schema: - type: string - - in: query - name: shipment - schema: - type: integer - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderAllocationList' - description: '' - put: - operationId: order_so_allocation_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - patch: - operationId: order_so_allocation_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - delete: - operationId: order_so_allocation_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/order/so-allocation/{id}/: - get: - operationId: order_so_allocation_retrieve - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - put: - operationId: order_so_allocation_update - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - patch: - operationId: order_so_allocation_partial_update - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAllocation' - description: '' - delete: - operationId: order_so_allocation_destroy - description: API endpoint for detail view of a SalesOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so-extra-line/: - get: - operationId: order_so_extra_line_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - notes - - -notes - - reference - - -reference - - line - - -line - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, notes, quantity, - reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderExtraLineList' - description: '' - post: - operationId: order_so_extra_line_create - description: API endpoint for accessing a list of SalesOrderExtraLine objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - /api/order/so-extra-line/{id}/: - get: - operationId: order_so_extra_line_retrieve - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - put: - operationId: order_so_extra_line_update - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - patch: - operationId: order_so_extra_line_partial_update - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderExtraLine' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderExtraLine' - description: '' - delete: - operationId: order_so_extra_line_destroy - description: API endpoint for detail view of a SalesOrderExtraLine object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so-line/: - get: - operationId: order_so_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: completed - schema: - type: boolean - description: Completed - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - customer - - -customer - - order - - -order - - part - - -part - - IPN - - -IPN - - part__name - - -part__name - - quantity - - -quantity - - allocated - - -allocated - - shipped - - -shipped - - reference - - -reference - - sale_price - - -sale_price - - target_date - - -target_date - - line - - -line - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__name, quantity, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderLineItemList' - description: '' - post: - operationId: order_so_line_create - description: API endpoint for accessing a list of SalesOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - /api/order/so-line/{id}/: - get: - operationId: order_so_line_retrieve - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - put: - operationId: order_so_line_update - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - patch: - operationId: order_so_line_partial_update - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderLineItem' - description: '' - delete: - operationId: order_so_line_destroy - description: API endpoint for detail view of a SalesOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/{id}/: - get: - operationId: order_so_retrieve - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: query - name: customer_detail - schema: - type: boolean - default: false - description: Include detailed information about the customer in the response - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - put: - operationId: order_so_update - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - patch: - operationId: order_so_partial_update - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrder' - description: '' - delete: - operationId: order_so_destroy - description: API endpoint for detail view of a SalesOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/{id}/allocate/: - post: - operationId: order_so_allocate_create - description: |- - API endpoint to allocate stock items against a SalesOrder. - - - The SalesOrder is specified in the URL - - See the SalesOrderShipmentAllocationSerializer class - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentAllocation' - description: '' - /api/order/so/{id}/allocate-serials/: - post: - operationId: order_so_allocate_serials_create - description: API endpoint to allocation stock items against a SalesOrder, by - specifying serial numbers. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderSerialAllocation' - description: '' - /api/order/so/{id}/auto-allocate/: - post: - operationId: order_so_auto_allocate_create - description: Validate parameters and offload auto-allocation to a background - task. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderAutoAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/order/so/{id}/cancel/: - post: - operationId: order_so_cancel_create - description: API endpoint to cancel a SalesOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/{id}/complete/: - post: - operationId: order_so_complete_create - description: API endpoint for manually marking a SalesOrder as "complete". - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderComplete' - description: '' - /api/order/so/{id}/hold/: - post: - operationId: order_so_hold_create - description: API endpoint to place a SalesOrder on hold. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/{id}/issue/: - post: - operationId: order_so_issue_create - description: API endpoint to issue a SalesOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/so/shipment/: - get: - operationId: order_so_shipment_list - description: API list endpoint for SalesOrderShipment model. - parameters: - - in: query - name: checked - schema: - type: boolean - description: checked - - in: query - name: delivered - schema: - type: boolean - description: delivered - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: number - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - reference - - -reference - - delivery_date - - -delivery_date - - shipment_date - - -shipment_date - - allocated_items - - -allocated_items - - name: search - required: false - in: query - description: 'A search term. Searched fields: invoice_number, order__reference, - reference, tracking_number.' - schema: - type: string - - in: query - name: shipped - schema: - type: boolean - description: shipped - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSalesOrderShipmentList' - description: '' - post: - operationId: order_so_shipment_create - description: API list endpoint for SalesOrderShipment model. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - /api/order/so/shipment/{id}/: - get: - operationId: order_so_shipment_retrieve - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - put: - operationId: order_so_shipment_update - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - patch: - operationId: order_so_shipment_partial_update - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSalesOrderShipment' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipment' - description: '' - delete: - operationId: order_so_shipment_destroy - description: API detail endpoint for SalesOrderShipment model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:sales_order - responses: - '204': - description: No response body - /api/order/so/shipment/{id}/ship/: - post: - operationId: order_so_shipment_ship_create - description: Override the post method to handle shipment completion. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/SalesOrderShipmentComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:sales_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TaskDetail' - description: '' - /api/order/so/status/: - get: - operationId: order_so_status_retrieve - description: Retrieve information about a specific status code - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/order/transfer-order/: - get: - operationId: order_transfer_order_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: assigned_to - schema: - type: integer - description: Responsible - - in: query - name: assigned_to_me - schema: - type: boolean - description: Assigned to me - - in: query - name: completed_after - schema: - type: string - format: date - description: Completed After - - in: query - name: completed_before - schema: - type: string - format: date - description: Completed Before - - in: query - name: created_after - schema: - type: string - format: date - description: Created After - - in: query - name: created_before - schema: - type: string - format: date - description: Created Before - - in: query - name: created_by - schema: - type: integer - description: Created By - - in: query - name: has_project_code - schema: - type: boolean - description: Has Project Code - - in: query - name: has_start_date - schema: - type: boolean - description: Has Start Date - - in: query - name: has_target_date - schema: - type: boolean - description: Has Target Date - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Max Date - - in: query - name: min_date - schema: - type: string - format: date - description: Min Date - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - creation_date - - -creation_date - - created_by - - -created_by - - reference - - -reference - - line_items - - -line_items - - status - - -status - - start_date - - -start_date - - target_date - - -target_date - - complete_date - - -complete_date - - project_code - - -project_code - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: overdue - schema: - type: boolean - description: overdue - - in: query - name: part - schema: - type: integer - - in: query - name: project_code - schema: - type: integer - description: Project Code - - in: query - name: reference - schema: - type: string - description: Order Reference - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, project_code__code, - reference.' - schema: - type: string - - in: query - name: start_date_after - schema: - type: string - format: date - description: Start Date After - - in: query - name: start_date_before - schema: - type: string - format: date - description: Start Date Before - - in: query - name: status - schema: - type: integer - description: Order Status - - in: query - name: target_date_after - schema: - type: string - format: date - description: Target Date After - - in: query - name: target_date_before - schema: - type: string - format: date - description: Target Date Before - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated After - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated Before - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderList' - description: '' - post: - operationId: order_transfer_order_create - description: API endpoint for accessing a list of TransferOrder objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:transfer_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - /api/order/transfer-order-allocation/: - get: - operationId: order_transfer_order_allocation_list - description: API endpoint for listing TransferOrderAllocation objects. - parameters: - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: line - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Location - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - part - - -part - - serial - - -serial - - IPN - - -IPN - - batch - - -batch - - location - - -location - - order - - -order - - in: query - name: outstanding - schema: - type: boolean - description: Outstanding - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: item__batch, item__part__IPN, - item__part__name, item__serial.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderAllocationList' - description: '' - put: - operationId: order_transfer_order_allocation_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - patch: - operationId: order_transfer_order_allocation_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - /api/order/transfer-order-allocation/{id}/: - get: - operationId: order_transfer_order_allocation_retrieve - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - put: - operationId: order_transfer_order_allocation_update - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - patch: - operationId: order_transfer_order_allocation_partial_update - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderAllocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderAllocation' - description: '' - delete: - operationId: order_transfer_order_allocation_destroy - description: API endpoint for detail view of a TransferOrderAllocation object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order-line/: - get: - operationId: order_transfer_order_line_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: allocated - schema: - type: boolean - description: Allocated - - in: query - name: completed - schema: - type: boolean - description: Completed - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: order - schema: - type: integer - description: Order - - in: query - name: order_complete - schema: - type: boolean - description: Order Complete - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: order_outstanding - schema: - type: boolean - description: Order Outstanding - - in: query - name: order_status - schema: - type: integer - description: Order Status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - order - - -order - - part - - -part - - part__name - - -part__name - - quantity - - -quantity - - allocated - - -allocated - - transferred - - -transferred - - reference - - -reference - - target_date - - -target_date - - in: query - name: part - schema: - type: integer - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - - name: search - required: false - in: query - description: 'A search term. Searched fields: part__name, quantity, reference.' - schema: - type: string - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTransferOrderLineItemList' - description: '' - post: - operationId: order_transfer_order_line_create - description: API endpoint for accessing a list of TransferOrderLineItem objects. - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:transfer_order - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - /api/order/transfer-order-line/{id}/: - get: - operationId: order_transfer_order_line_retrieve - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: order_detail - schema: - type: boolean - default: false - description: Include detailed information about the sales order in the response - - in: query - name: part_detail - schema: - type: boolean - default: false - description: Include detailed information about the related part in the response - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - put: - operationId: order_transfer_order_line_update - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - patch: - operationId: order_transfer_order_line_partial_update - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrderLineItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItem' - description: '' - delete: - operationId: order_transfer_order_line_destroy - description: API endpoint for detail view of a TransferOrderLineItem object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order/{id}/: - get: - operationId: order_transfer_order_retrieve - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - put: - operationId: order_transfer_order_update - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrder' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - patch: - operationId: order_transfer_order_partial_update - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedTransferOrder' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:transfer_order - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrder' - description: '' - delete: - operationId: order_transfer_order_destroy - description: API endpoint for detail view of a single TransferOrder object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:transfer_order - responses: - '204': - description: No response body - /api/order/transfer-order/{id}/allocate/: - post: - operationId: order_transfer_order_allocate_create - description: |- - API endpoint to allocate stock items against a TransferOrder. - - - The TransferOrder is specified in the URL - - See the TransferOrderAllocationSerializer class - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderLineItemAllocation' - description: '' - /api/order/transfer-order/{id}/allocate-serials/: - post: - operationId: order_transfer_order_allocate_serials_create - description: API endpoint to allocation stock items against a TransferOrder, - by specifying serial numbers. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderSerialAllocation' - description: '' - /api/order/transfer-order/{id}/cancel/: - post: - operationId: order_transfer_order_cancel_create - description: API endpoint to cancel a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/transfer-order/{id}/complete/: - post: - operationId: order_transfer_order_complete_create - description: API endpoint to complete a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - multipart/form-data: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/TransferOrderComplete' - description: '' - /api/order/transfer-order/{id}/hold/: - post: - operationId: order_transfer_order_hold_create - description: API endpoint to hold a TransferOrder. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/order/transfer-order/{id}/issue/: - post: - operationId: order_transfer_order_issue_create - description: API endpoint to issue a Transfer Order. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - order - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - description: No response body - /api/parameter/: - get: - operationId: parameter_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: enabled - schema: - type: boolean - description: Template Enabled - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_id - schema: - type: integer - - in: query - name: model_type - schema: - type: string - description: Model Type - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - data - - -data - - units - - -units - - template - - -template - - updated - - -updated - - updated_by - - -updated_by - - name: search - required: false - in: query - description: 'A search term. Searched fields: data, template__description, - template__name, template__units.' - schema: - type: string - - in: query - name: template - schema: - type: integer - - in: query - name: updated_by - schema: - type: integer - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedParameterList' - description: '' - post: - operationId: parameter_create - description: List API endpoint for Parameter objects. - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Parameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/Parameter' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - delete: - operationId: parameter_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/parameter/{id}/: - get: - operationId: parameter_retrieve - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - put: - operationId: parameter_update - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Parameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/Parameter' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - patch: - operationId: parameter_partial_update - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedParameter' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedParameter' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedParameter' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Parameter' - description: '' - delete: - operationId: parameter_destroy - description: Detail API endpoint for Parameter objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/parameter/template/: - get: - operationId: parameter_template_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: checkbox - schema: - type: boolean - - in: query - name: enabled - schema: - type: boolean - - in: query - name: exists_for_model - schema: - type: string - description: Exists For Model - - in: query - name: exists_for_model_id - schema: - type: number - description: Exists For Model ID - - in: query - name: exists_for_related_model - schema: - type: string - description: Exists For Related Model - - in: query - name: exists_for_related_model_id - schema: - type: number - description: Exists For Model ID - - in: query - name: for_model - schema: - type: string - description: For Model - - in: query - name: has_choices - schema: - type: boolean - description: Has Choice - - in: query - name: has_units - schema: - type: boolean - description: Has Units - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - description: Model Type - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - units - - -units - - checkbox - - -checkbox - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - - in: query - name: units - schema: - type: string - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedParameterTemplateList' - description: '' - post: - operationId: parameter_template_create - description: List view for ParameterTemplate objects. - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - /api/parameter/template/{id}/: - get: - operationId: parameter_template_retrieve - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - put: - operationId: parameter_template_update - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - patch: - operationId: parameter_template_partial_update - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedParameterTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ParameterTemplate' - description: '' - delete: - operationId: parameter_template_destroy - description: Detail view for a ParameterTemplate object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - parameter - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/part/: - get: - operationId: part_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: IPN - schema: - type: string - description: Filter by exact IPN (internal part number) - - in: query - name: IPN_regex - schema: - type: string - description: Filter by regex on IPN (internal part number) - - in: query - name: active - schema: - type: boolean - - in: query - name: ancestor - schema: - type: integer - - in: query - name: assembly - schema: - type: boolean - - in: query - name: bom_valid - schema: - type: boolean - description: BOM Valid - - in: query - name: cascade - schema: - type: boolean - description: If true, include items in child categories of the given category - - in: query - name: category - schema: - type: integer - description: Filter by numeric category ID or the literal 'null' - - in: query - name: category_detail - schema: - type: boolean - default: false - - in: query - name: component - schema: - type: boolean - - in: query - name: convert_from - schema: - type: integer - - in: query - name: created_after - schema: - type: string - format: date - description: Updated after - - in: query - name: created_before - schema: - type: string - format: date - description: Updated before - - in: query - name: default_location - schema: - type: integer - description: Default Location - - in: query - name: depleted_stock - schema: - type: boolean - description: Depleted Stock - - in: query - name: exclude_id - schema: - type: array - items: - type: integer - description: Exclude parts with these IDs (comma-separated) - explode: false - style: form - - in: query - name: exclude_related - schema: - type: number - description: Exclude parts related to this part ID - - in: query - name: exclude_tree - schema: - type: integer - - in: query - name: has_ipn - schema: - type: boolean - description: Has IPN - - in: query - name: has_pricing - schema: - type: boolean - description: Has Pricing - - in: query - name: has_revisions - schema: - type: boolean - description: Has Revisions - - in: query - name: has_stock - schema: - type: boolean - description: Has stock - - in: query - name: has_units - schema: - type: boolean - description: Has units - - in: query - name: high_stock - schema: - type: boolean - description: High stock - - in: query - name: in_bom_for - schema: - type: integer - - in: query - name: is_revision - schema: - type: boolean - description: Is Revision - - in: query - name: is_template - schema: - type: boolean - - in: query - name: is_variant - schema: - type: boolean - description: Is Variant - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: locked - schema: - type: boolean - - in: query - name: low_stock - schema: - type: boolean - description: Low stock - - in: query - name: name_regex - schema: - type: string - description: Filter by name (regex) - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - id - - -id - - name - - -name - - creation_date - - -creation_date - - IPN - - -IPN - - in_stock - - -in_stock - - total_in_stock - - -total_in_stock - - unallocated_stock - - -unallocated_stock - - category - - -category - - default_location - - -default_location - - units - - -units - - pricing_min - - -pricing_min - - pricing_max - - -pricing_max - - pricing_updated - - -pricing_updated - - revision - - -revision - - revision_count - - -revision_count - - in: query - name: parameters - schema: - type: boolean - default: false - description: Include part parameters in response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: price_breaks - schema: - type: boolean - default: false - - in: query - name: purchaseable - schema: - type: boolean - - in: query - name: related - schema: - type: number - description: Show parts related to this part ID - - in: query - name: revision_of - schema: - type: integer - - in: query - name: salable - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: IPN, category__name, description, - keywords, manufacturer_parts__MPN, name, revision, supplier_parts__SKU, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: starred - schema: - type: boolean - description: Starred - - in: query - name: stock_to_build - schema: - type: boolean - description: Required for Build Order - - in: query - name: tags - schema: - type: boolean - default: false - - in: query - name: tags_name - schema: - type: string - - in: query - name: tags_slug - schema: - type: string - - in: query - name: testable - schema: - type: boolean - - in: query - name: trackable - schema: - type: boolean - - in: query - name: unallocated_stock - schema: - type: boolean - description: Unallocated stock - - in: query - name: variant_of - schema: - type: integer - description: Variant Of - - in: query - name: virtual - schema: - type: boolean - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartList' - description: '' - post: - operationId: part_create - description: API endpoint for accessing a list of Part objects, or creating - a new Part instance. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - put: - operationId: part_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - patch: - operationId: part_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - /api/part/{id}/: - get: - operationId: part_retrieve - description: API endpoint for detail view of a single Part object. - parameters: - - in: query - name: category_detail - schema: - type: boolean - default: false - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: parameters - schema: - type: boolean - default: false - description: Include part parameters in response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: price_breaks - schema: - type: boolean - default: false - - in: query - name: tags - schema: - type: boolean - default: false - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - put: - operationId: part_update - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Part' - multipart/form-data: - schema: - $ref: '#/components/schemas/Part' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - patch: - operationId: part_partial_update - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPart' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPart' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPart' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Part' - description: '' - delete: - operationId: part_destroy - description: API endpoint for detail view of a single Part object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:part - responses: - '204': - description: No response body - /api/part/{id}/bom-copy/: - post: - operationId: part_bom_copy_create - description: API endpoint for duplicating a BOM. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartCopyBOM' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartCopyBOM' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartCopyBOM' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartCopyBOM' - description: '' - /api/part/{id}/bom-validate/: - get: - operationId: part_bom_validate_retrieve - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - put: - operationId: part_bom_validate_update - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartBomValidate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartBomValidate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - patch: - operationId: part_bom_validate_partial_update - description: API endpoint for 'validating' the BOM for a given Part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartBomValidate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartBomValidate' - description: '' - /api/part/{id}/pricing/: - get: - operationId: part_pricing_retrieve - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - put: - operationId: part_pricing_update - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartPricing' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartPricing' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - patch: - operationId: part_pricing_partial_update - description: API endpoint for viewing part pricing data. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartPricing' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartPricing' - description: '' - /api/part/{id}/requirements/: - get: - operationId: part_requirements_retrieve - description: |- - API endpoint detailing 'requirements' information for a particular part. - - This endpoint returns information on upcoming requirements for: - - - Sales Orders - - Build Orders - - Total requirements - - How many of this part can be assembled with available stock - - As this data is somewhat complex to calculate, is it not included in the default API - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRequirements' - description: '' - /api/part/{id}/serial-numbers/: - get: - operationId: part_serial_numbers_retrieve - description: API endpoint for returning extra serial number information about - a particular part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSerialNumber' - description: '' - /api/part/category/: - get: - operationId: part_category_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: cascade - schema: - type: boolean - description: Include sub-categories in filtered results - - in: query - name: depth - schema: - type: number - description: Filter by category depth - - in: query - name: exclude_tree - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - pathstring - - -pathstring - - level - - -level - - tree_id - - -tree_id - - lft - - -lft - - part_count - - -part_count - - in: query - name: parent - schema: - type: integer - description: Filter by parent category - - in: query - name: path_detail - schema: - type: boolean - default: false - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, pathstring.' - schema: - type: string - - in: query - name: starred - schema: - type: boolean - description: Filter by starred categories - - in: query - name: structural - schema: - type: boolean - - in: query - name: top_level - schema: - type: boolean - description: Filter by top-level categories - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryList' - description: '' - post: - operationId: part_category_create - description: |- - API endpoint for accessing a list of PartCategory objects. - - - GET: Return a list of PartCategory objects - - POST: Create a new PartCategory object - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:part_category - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - put: - operationId: part_category_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - patch: - operationId: part_category_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategory' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategory' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategory' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - /api/part/category/{id}/: - get: - operationId: part_category_retrieve - description: Custom get method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: path_detail - schema: - type: boolean - default: false - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - put: - operationId: part_category_update - description: Custom put method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Category' - multipart/form-data: - schema: - $ref: '#/components/schemas/Category' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - patch: - operationId: part_category_partial_update - description: Custom patch method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategory' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategory' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategory' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Category' - description: '' - delete: - operationId: part_category_destroy - description: Custom delete method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:part_category - responses: - '204': - description: No response body - /api/part/category/parameters/: - get: - operationId: part_category_parameters_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryParameterTemplateList' - description: '' - post: - operationId: part_category_parameters_create - description: |- - API endpoint for accessing a list of PartCategoryParameterTemplate objects. - - - GET: Return a list of PartCategoryParameterTemplate objects - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part_category - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - /api/part/category/parameters/{id}/: - get: - operationId: part_category_parameters_retrieve - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - put: - operationId: part_category_parameters_update - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - patch: - operationId: part_category_parameters_partial_update - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCategoryParameterTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryParameterTemplate' - description: '' - delete: - operationId: part_category_parameters_destroy - description: Detail endpoint for the PartCategoryParameterTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part_category - responses: - '204': - description: No response body - /api/part/category/tree/: - get: - operationId: part_category_tree_list - description: API endpoint for accessing a list of PartCategory objects ready - for rendering a tree. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - level - - -level - - name - - -name - - subcategories - - -subcategories - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part_category - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCategoryTreeList' - description: '' - /api/part/internal-price/: - get: - operationId: part_internal_price_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - price - - -price - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartInternalPriceList' - description: '' - post: - operationId: part_internal_price_create - description: API endpoint for list view of PartInternalPriceBreak model. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartInternalPrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - /api/part/internal-price/{id}/: - get: - operationId: part_internal_price_retrieve - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - put: - operationId: part_internal_price_update - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartInternalPrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - patch: - operationId: part_internal_price_partial_update - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartInternalPrice' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartInternalPrice' - description: '' - delete: - operationId: part_internal_price_destroy - description: Detail endpoint for PartInternalPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/related/: - get: - operationId: part_related_list - description: API endpoint for accessing a list of PartRelated objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_1 - schema: - type: integer - - in: query - name: part_2 - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: part_1__name, part_2__name.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartRelationList' - description: '' - post: - operationId: part_related_create - description: API endpoint for accessing a list of PartRelated objects. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartRelation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - /api/part/related/{id}/: - get: - operationId: part_related_retrieve - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - put: - operationId: part_related_update - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartRelation' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - patch: - operationId: part_related_partial_update - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartRelation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartRelation' - description: '' - delete: - operationId: part_related_destroy - description: API endpoint for accessing detail view of a PartRelated object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/sale-price/: - get: - operationId: part_sale_price_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - quantity - - -quantity - - price - - -price - - in: query - name: part - schema: - type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartSalePriceList' - description: '' - post: - operationId: part_sale_price_create - description: API endpoint for list view of PartSalePriceBreak model. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartSalePrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - /api/part/sale-price/{id}/: - get: - operationId: part_sale_price_retrieve - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - put: - operationId: part_sale_price_update - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartSalePrice' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - patch: - operationId: part_sale_price_partial_update - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartSalePrice' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartSalePrice' - description: '' - delete: - operationId: part_sale_price_destroy - description: Detail endpoint for PartSellPriceBreak model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/stocktake/: - get: - operationId: part_stocktake_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - part - - -part - - item_count - - -item_count - - quantity - - -quantity - - date - - -date - - user - - -user - - pk - - -pk - - in: query - name: part - schema: - type: integer - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartStocktakeList' - description: '' - post: - operationId: part_stocktake_create - description: API endpoint for listing part stocktake information. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktake' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - delete: - operationId: part_stocktake_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/part/stocktake/{id}/: - get: - operationId: part_stocktake_retrieve - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - put: - operationId: part_stocktake_update - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktake' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - patch: - operationId: part_stocktake_partial_update - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartStocktake' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktake' - description: '' - delete: - operationId: part_stocktake_destroy - description: |- - Detail API endpoint for a single PartStocktake instance. - - Note: Only staff (admin) users can access this endpoint. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/stocktake/generate/: - post: - operationId: part_stocktake_generate_create - description: Perform stocktake generation on POST request. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartStocktakeGenerate' - description: '' - /api/part/test-template/: - get: - operationId: part_test_template_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: has_results - schema: - type: boolean - description: Has Results - - in: query - name: key - schema: - type: string - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - enabled - - -enabled - - required - - -required - - requires_value - - -requires_value - - requires_attachment - - -requires_attachment - - results - - -results - - test_name - - -test_name - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: required - schema: - type: boolean - - in: query - name: requires_attachment - schema: - type: boolean - - in: query - name: requires_value - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, test_name.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartTestTemplateList' - description: '' - post: - operationId: part_test_template_create - description: API endpoint for listing (and creating) a PartTestTemplate. - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartTestTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:part - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - /api/part/test-template/{id}/: - get: - operationId: part_test_template_retrieve - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - put: - operationId: part_test_template_update - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartTestTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - patch: - operationId: part_test_template_partial_update - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartTestTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartTestTemplate' - description: '' - delete: - operationId: part_test_template_destroy - description: Detail endpoint for PartTestTemplate model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:part - responses: - '204': - description: No response body - /api/part/thumbs/: - get: - operationId: part_thumbs_list - description: API endpoint for retrieving information on available Part thumbnails. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: IPN, category__name, description, - keywords, name, revision.' - schema: - type: string - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPartThumbList' - description: '' - /api/part/thumbs/{id}/: - get: - operationId: part_thumbs_retrieve - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - put: - operationId: part_thumbs_update - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - patch: - operationId: part_thumbs_partial_update - description: API endpoint for updating Part thumbnails. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - part - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:part - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PartThumbSerializerUpdate' - description: '' - /api/plugins/: - get: - operationId: plugins_list - description: |- - API endpoint for list of PluginConfig objects. - - - GET: Return a list of all PluginConfig objects - parameters: - - in: query - name: active - schema: - type: boolean - - in: query - name: builtin - schema: - type: boolean - description: Builtin - - in: query - name: installed - schema: - type: boolean - description: Installed - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: mandatory - schema: - type: boolean - description: Mandatory - - in: query - name: mixin - schema: - type: string - description: Mixin - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - key - - -key - - name - - -name - - active - - -active - - in: query - name: sample - schema: - type: boolean - description: Sample - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, name.' - schema: - type: string - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPluginConfigList' - description: '' - /api/plugins/{plugin}/: - get: - operationId: plugins_retrieve - description: |- - API detail endpoint for PluginConfig object. - - get: - Return a single PluginConfig object - - post: - Update a PluginConfig - - delete: - Remove a PluginConfig - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfig' - description: '' - delete: - operationId: plugins_destroy - description: |- - Handle DELETE request for a PluginConfig instance. - - We only allow plugin deletion if the plugin is not active. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '204': - description: No response body - /api/plugins/{plugin}/activate/: - put: - operationId: plugins_activate_update - description: |- - Endpoint for activating a plugin. - - - PATCH: Activate a plugin - - Pass a boolean value for the 'active' field. - If not provided, it is assumed to be True, - and the plugin will be activated. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginActivate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginActivate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - description: '' - patch: - operationId: plugins_activate_partial_update - description: |- - Endpoint for activating a plugin. - - - PATCH: Activate a plugin - - Pass a boolean value for the 'active' field. - If not provided, it is assumed to be True, - and the plugin will be activated. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginActivate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginActivate' - description: '' - /api/plugins/{plugin}/admin/: - get: - operationId: plugins_admin_retrieve - description: |- - Endpoint for viewing admin integration plugin details. - - This endpoint is used to view the available admin integration options for a plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:admin - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginAdminDetail' - description: '' - /api/plugins/{plugin}/settings/: - get: - operationId: plugins_settings_list - description: Get all settings for a plugin config. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginSetting' - description: '' - /api/plugins/{plugin}/settings/{key}/: - get: - operationId: plugins_settings_retrieve - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - put: - operationId: plugins_settings_update - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - patch: - operationId: plugins_settings_partial_update - description: Detail endpoint for a plugin-specific setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginSetting' - description: '' - /api/plugins/{plugin}/uninstall/: - put: - operationId: plugins_uninstall_update - description: Endpoint for uninstalling a single plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginUninstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginUninstall' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - description: '' - patch: - operationId: plugins_uninstall_partial_update - description: Endpoint for uninstalling a single plugin. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginUninstall' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUninstall' - description: '' - /api/plugins/{plugin}/user-settings/: - get: - operationId: plugins_user_settings_list - description: Get all user settings for a plugin config. - parameters: - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - /api/plugins/{plugin}/user-settings/{key}/: - get: - operationId: plugins_user_settings_retrieve - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - put: - operationId: plugins_user_settings_update - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginUserSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginUserSetting' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - patch: - operationId: plugins_user_settings_partial_update - description: Detail endpoint for a plugin-specific user setting. - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - - in: path - name: plugin - schema: - type: string - required: true - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedPluginUserSetting' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginUserSetting' - description: '' - /api/plugins/install/: - post: - operationId: plugins_install_create - description: Endpoint for installing a new plugin. - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginConfigInstall' - description: '' - /api/plugins/reload/: - post: - operationId: plugins_reload_create - description: Endpoint for reloading all plugins. - tags: - - plugins - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PluginReload' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PluginReload' - multipart/form-data: - schema: - $ref: '#/components/schemas/PluginReload' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginReload' - description: '' - /api/plugins/settings/: - get: - operationId: plugins_settings_list_all - description: |- - List endpoint for all plugin related settings. - - - read only - - only accessible by staff users - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - in: query - name: plugin__active - schema: - type: boolean - - in: query - name: plugin__key - schema: - type: string - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPluginSettingList' - description: '' - /api/plugins/status/: - get: - operationId: plugins_status_retrieve - description: Show plugin registry status information. - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PluginRegistryStatus' - description: '' - /api/plugins/ui/features/{feature}/: - get: - operationId: plugins_ui_features_list - description: Show available plugin ui features. - parameters: - - in: path - name: feature - schema: - type: string - required: true - tags: - - plugins - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PluginUIFeature' - description: '' - /api/project-code/: - get: - operationId: project_code_list - description: Override the GET method to determine export options. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - code - - -code - - name: search - required: false - in: query - description: 'A search term. Searched fields: code, description.' - schema: - type: string - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedProjectCodeList' - description: '' - post: - operationId: project_code_create - description: List view for all project codes. - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/ProjectCode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - /api/project-code/{id}/: - get: - operationId: project_code_retrieve - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - put: - operationId: project_code_update - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/ProjectCode' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - patch: - operationId: project_code_partial_update - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedProjectCode' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCode' - description: '' - delete: - operationId: project_code_destroy - description: Detail view for a particular project code. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - project-code - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/asset/: - get: - operationId: report_asset_list - description: API endpoint for listing ReportAsset objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportAssetList' - description: '' - post: - operationId: report_asset_create - description: API endpoint for listing ReportAsset objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportAsset' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - /api/report/asset/{id}/: - get: - operationId: report_asset_retrieve - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - put: - operationId: report_asset_update - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportAsset' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - patch: - operationId: report_asset_partial_update - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportAsset' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportAsset' - description: '' - delete: - operationId: report_asset_destroy - description: API endpoint for a single ReportAsset object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/print/: - post: - operationId: report_print_create - description: POST action for printing a report. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportPrint' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportPrint' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportPrint' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportPrint' - description: '' - /api/report/snippet/: - get: - operationId: report_snippet_list - description: API endpoint for listing ReportSnippet objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportSnippetList' - description: '' - post: - operationId: report_snippet_create - description: API endpoint for listing ReportSnippet objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportSnippet' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - /api/report/snippet/{id}/: - get: - operationId: report_snippet_retrieve - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - put: - operationId: report_snippet_update - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportSnippet' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - patch: - operationId: report_snippet_partial_update - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportSnippet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportSnippet' - description: '' - delete: - operationId: report_snippet_destroy - description: API endpoint for a single ReportSnippet object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/report/template/: - get: - operationId: report_template_list - description: API endpoint for viewing list of ReportTemplate objects. - parameters: - - in: query - name: enabled - schema: - type: boolean - - in: query - name: items - schema: - type: string - description: Items - - in: query - name: landscape - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: model_type - schema: - type: string - enum: - - build - - buildline - - company - - part - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - stockitem - - stocklocation - - transferorder - description: |- - Model Type - - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name.' - schema: - type: string - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportTemplateList' - description: '' - post: - operationId: report_template_create - description: API endpoint for viewing list of ReportTemplate objects. - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - /api/report/template/{id}/: - get: - operationId: report_template_retrieve - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - put: - operationId: report_template_update - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportTemplate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - patch: - operationId: report_template_partial_update - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedReportTemplate' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportTemplate' - description: '' - delete: - operationId: report_template_destroy - description: Detail API endpoint for report template model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - report - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/search/: - post: - operationId: search_create - description: Perform search query against available models. - tags: - - search - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/APISearchView' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/APISearchView' - multipart/form-data: - schema: - $ref: '#/components/schemas/APISearchView' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/APISearchView' - description: '' - /api/selection/: - get: - operationId: selection_list - description: List view for SelectionList objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSelectionListList' - description: '' - post: - operationId: selection_create - description: List view for SelectionList objects. - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionList' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - /api/selection/{id}/: - get: - operationId: selection_retrieve - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - put: - operationId: selection_update - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionList' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - patch: - operationId: selection_partial_update - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSelectionList' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionList' - description: '' - delete: - operationId: selection_destroy - description: Detail view for a SelectionList object. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/selection/{id}/entry/: - get: - operationId: selection_entry_list - description: List view for SelectionEntry objects. - parameters: - - in: query - name: active - schema: - type: boolean - - in: path - name: id - schema: - type: integer - required: true - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: list - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - list - - -list - - label - - -label - - active - - -active - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, label.' - schema: - type: string - - in: query - name: value - schema: - type: string - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSelectionEntryList' - description: '' - post: - operationId: selection_entry_create - description: List view for SelectionEntry objects. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - /api/selection/{id}/entry/{entrypk}/: - get: - operationId: selection_entry_retrieve - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - put: - operationId: selection_entry_update - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/SelectionEntry' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - patch: - operationId: selection_entry_partial_update - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedSelectionEntry' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SelectionEntry' - description: '' - delete: - operationId: selection_entry_destroy - description: Detail view for a SelectionEntry object. - parameters: - - in: path - name: entrypk - schema: - type: integer - required: true - - in: path - name: id - schema: - type: integer - required: true - tags: - - selection - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/settings/global/: - get: - operationId: settings_global_list - description: API endpoint for accessing a list of global settings objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - key - - -key - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: key.' - schema: - type: string - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedGlobalSettingsList' - description: '' - /api/settings/global/{key}/: - get: - operationId: settings_global_retrieve - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - put: - operationId: settings_global_update - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/GlobalSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/GlobalSettings' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - patch: - operationId: settings_global_partial_update - description: |- - Detail view for an individual "global setting" object. - - - User must have 'staff' status to view / edit - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedGlobalSettings' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GlobalSettings' - description: '' - /api/settings/user/: - get: - operationId: settings_user_list - description: API endpoint for accessing a list of user settings objects. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - pk - - -pk - - key - - -key - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: key.' - schema: - type: string - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedUserSettingsList' - description: '' - /api/settings/user/{key}/: - get: - operationId: settings_user_retrieve - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - put: - operationId: settings_user_update - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserSettings' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - patch: - operationId: settings_user_partial_update - description: |- - Detail view for an individual "user setting" object. - - - User can only view / edit settings their own settings objects - parameters: - - in: path - name: key - schema: - type: string - pattern: ^\w+$ - required: true - tags: - - settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserSettings' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSettings' - description: '' - /api/stock/: - get: - operationId: stock_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: IPN - schema: - type: string - description: Part IPN (case insensitive) - - in: query - name: IPN_contains - schema: - type: string - description: Part IPN contains (case insensitive) - - in: query - name: IPN_regex - schema: - type: string - description: Part IPN (regex) - - in: query - name: active - schema: - type: boolean - description: Active - - in: query - name: allocated - schema: - type: boolean - description: Is Allocated - - in: query - name: ancestor - schema: - type: integer - - in: query - name: assembly - schema: - type: boolean - description: Assembly - - in: query - name: available - schema: - type: boolean - description: Available - - in: query - name: batch - schema: - type: string - description: Batch code filter (case insensitive) - - in: query - name: batch_regex - schema: - type: string - description: Batch code filter (regex) - - in: query - name: belongs_to - schema: - type: integer - - in: query - name: bom_item - schema: - type: integer - - in: query - name: build - schema: - type: integer - - in: query - name: cascade - schema: - type: boolean - description: If true, include items in child locations of the given location - - in: query - name: category - schema: - type: integer - - in: query - name: company - schema: - type: integer - - in: query - name: consumed - schema: - type: boolean - description: Consumed by Build Order - - in: query - name: consumed_by - schema: - type: integer - - in: query - name: created_after - schema: - type: string - format: date - description: Created after - - in: query - name: created_before - schema: - type: string - format: date - description: Created before - - in: query - name: customer - schema: - type: integer - - in: query - name: depleted - schema: - type: boolean - description: Depleted - - in: query - name: exclude_tree - schema: - type: number - description: Provide a StockItem PK to exclude that item and all its descendants - - in: query - name: expired - schema: - type: boolean - description: Expired - - in: query - name: expiry_after - schema: - type: string - format: date - description: Expiry date after - - in: query - name: expiry_before - schema: - type: string - format: date - description: Expiry date before - - in: query - name: external - schema: - type: boolean - description: External Location - - in: query - name: has_batch - schema: - type: boolean - description: Has batch code - - in: query - name: has_child_items - schema: - type: boolean - description: Has child items - - in: query - name: has_installed_items - schema: - type: boolean - description: Has installed items - - in: query - name: has_purchase_price - schema: - type: boolean - description: Has purchase price - - in: query - name: has_stocktake - schema: - type: boolean - description: Has Stocktake Date - - in: query - name: in_stock - schema: - type: boolean - description: In Stock - - in: query - name: include_variants - schema: - type: boolean - description: Include Variants - - in: query - name: installed - schema: - type: boolean - description: Installed in other stock item - - in: query - name: is_building - schema: - type: boolean - description: In production - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location - schema: - type: integer - description: Filter by numeric Location ID or the literal 'null' - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: manufacturer - schema: - type: integer - - in: query - name: manufacturer_part - schema: - type: integer - description: Manufacturer Part - - in: query - name: max_stock - schema: - type: number - description: Maximum stock - - in: query - name: min_stock - schema: - type: number - description: Minimum stock - - in: query - name: name - schema: - type: string - description: Part name (case insensitive) - - in: query - name: name_contains - schema: - type: string - description: Part name contains (case insensitive) - - in: query - name: name_regex - schema: - type: string - description: Part name (regex) - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - batch - - -batch - - location - - -location - - part - - -part - - part__name - - -part__name - - part__IPN - - -part__IPN - - updated - - -updated - - purchase_price - - -purchase_price - - creation_date - - -creation_date - - stocktake_date - - -stocktake_date - - expiry_date - - -expiry_date - - packaging - - -packaging - - quantity - - -quantity - - stock - - -stock - - status - - -status - - IPN - - -IPN - - SKU - - -SKU - - MPN - - -MPN - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: part_tree - schema: - type: integer - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: purchase_order - schema: - type: integer - - in: query - name: salable - schema: - type: boolean - description: Salable - - in: query - name: sales_order - schema: - type: integer - - name: search - required: false - in: query - description: 'A search term. Searched fields: batch, location__name, part__IPN, - part__description, part__name, serial, supplier_part__SKU, supplier_part__manufacturer_part__MPN, - supplier_part__manufacturer_part__manufacturer__name, supplier_part__supplier__name, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: sent_to_customer - schema: - type: boolean - description: Sent to customer - - in: query - name: serial - schema: - type: string - description: Serial number - - in: query - name: serial_gte - schema: - type: integer - description: Serial number GTE - - in: query - name: serial_lte - schema: - type: integer - description: Serial number LTE - - in: query - name: serialized - schema: - type: boolean - description: Has serial number - - in: query - name: stale - schema: - type: boolean - description: Stale - - in: query - name: status - schema: - type: integer - description: Status Code - - in: query - name: stocktake_after - schema: - type: string - format: date - description: Stocktake After - - in: query - name: stocktake_before - schema: - type: string - format: date - description: Stocktake Before - - in: query - name: supplier - schema: - type: integer - description: Supplier - - in: query - name: supplier_part - schema: - type: integer - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - - in: query - name: tags__name - schema: - type: string - - in: query - name: tags__slug - schema: - type: string - - in: query - name: tests - schema: - type: boolean - default: false - - in: query - name: tracked - schema: - type: boolean - description: Tracked - - in: query - name: updated_after - schema: - type: string - format: date - description: Updated after - - in: query - name: updated_before - schema: - type: string - format: date - description: Updated before - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockItemList' - description: '' - post: - operationId: stock_create - description: |- - API endpoint for list view of Stock objects. - - - GET: Return a list of all StockItem objects (with optional query filters) - - POST: Create a new StockItem - - DELETE: Delete multiple StockItem objects - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:stock - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - put: - operationId: stock_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - patch: - operationId: stock_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - delete: - operationId: stock_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/stock/{id}/: - get: - operationId: stock_retrieve - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: location_detail - schema: - type: boolean - default: false - description: Include detailed information about the stock location in the - response - - in: query - name: part_detail - schema: - type: boolean - default: true - description: Include detailed information about the related part in the response - - in: query - name: path_detail - schema: - type: boolean - default: false - - in: query - name: supplier_part_detail - schema: - type: boolean - default: false - - in: query - name: tests - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - put: - operationId: stock_update - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - patch: - operationId: stock_partial_update - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItem' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItem' - description: '' - delete: - operationId: stock_destroy - description: API detail endpoint for a single StockItem instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock - responses: - '204': - description: No response body - /api/stock/{id}/convert/: - post: - operationId: stock_convert_create - description: API endpoint for converting a stock item to a variant part. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ConvertStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConvertStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConvertStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ConvertStockItem' - description: '' - /api/stock/{id}/install/: - post: - operationId: stock_install_create - description: |- - API endpoint for installing a particular stock item into this stock item. - - - stock_item.part must be in the BOM for this part - - stock_item must currently be "in stock" - - stock_item must be serialized (and not belong to another item) - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InstallStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/InstallStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/InstallStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/InstallStockItem' - description: '' - /api/stock/{id}/serial-numbers/: - get: - operationId: stock_serial_numbers_retrieve - description: |- - View extra serial number information for a given stock item. - - Provides information on the "previous" and "next" stock items, - based on the serial number of the given stock item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemSerialNumbers' - description: '' - /api/stock/{id}/serialize/: - post: - operationId: stock_serialize_create - description: API endpoint for serializing a stock item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SerializeStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SerializeStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/SerializeStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/StockItem' - description: '' - /api/stock/{id}/uninstall/: - post: - operationId: stock_uninstall_create - description: API endpoint for removing (uninstalling) items from this item. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UninstallStockItem' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UninstallStockItem' - multipart/form-data: - schema: - $ref: '#/components/schemas/UninstallStockItem' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/UninstallStockItem' - description: '' - /api/stock/add/: - post: - operationId: stock_add_create - description: Endpoint for adding a quantity of stock to an existing StockItem. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockAdd' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockAdd' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockAdd' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockAdd' - description: '' - /api/stock/assign/: - post: - operationId: stock_assign_create - description: API endpoint for assigning stock to a particular customer. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockAssignment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockAssignment' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockAssignment' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockAssignment' - description: '' - /api/stock/change_status/: - post: - operationId: stock_change_status_create - description: API endpoint to change the status code of multiple StockItem objects. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockChangeStatus' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockChangeStatus' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockChangeStatus' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockChangeStatus' - description: '' - /api/stock/count/: - post: - operationId: stock_count_create - description: Endpoint for counting stock (performing a stocktake). - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockCount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockCount' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockCount' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockCount' - description: '' - /api/stock/location/: - get: - operationId: stock_location_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: cascade - schema: - type: boolean - description: Include sub-locations in filtered results - - in: query - name: depth - schema: - type: number - description: Filter by location depth - - in: query - name: external - schema: - type: boolean - - in: query - name: has_location_type - schema: - type: boolean - description: has_location_type - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: location_type - schema: - type: integer - - in: query - name: name - schema: - type: string - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - pathstring - - -pathstring - - items - - -items - - level - - -level - - tree_id - - -tree_id - - lft - - -lft - - in: query - name: parent - schema: - type: integer - description: Filter by parent location - - in: query - name: path_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - - name: search - required: false - in: query - description: 'A search term. Searched fields: description, name, pathstring, - tags__name, tags__slug.' - schema: - type: string - - in: query - name: structural - schema: - type: boolean - - in: query - name: top_level - schema: - type: boolean - description: Filter by top-level locations - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLocationList' - description: '' - post: - operationId: stock_location_create - description: |- - API endpoint for list view of StockLocation objects. - - - GET: Return list of StockLocation objects - - POST: Create a new StockLocation - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:build - - r:add:stock_location - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - put: - operationId: stock_location_bulk_update - description: |- - Perform a PUT operation against this list endpoint. - - Simply redirects to the PATCH method. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - patch: - operationId: stock_location_bulk_partial_update - description: |- - Perform a PATCH operation against this list endpoint. - - Note that the typical DRF list endpoint does not support PATCH, - so this method is provided as a custom implementation. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - /api/stock/location-type/: - get: - operationId: stock_location_type_list - description: |- - API endpoint for a list of StockLocationType objects. - - - GET: Return a list of all StockLocationType objects - - POST: Create a StockLocationType - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - location_count - - -location_count - - icon - - -icon - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockLocationTypeList' - description: '' - post: - operationId: stock_location_type_create - description: |- - API endpoint for a list of StockLocationType objects. - - - GET: Return a list of all StockLocationType objects - - POST: Create a StockLocationType - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockLocationType' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:stock_location - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - /api/stock/location-type/{id}/: - get: - operationId: stock_location_type_retrieve - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - put: - operationId: stock_location_type_update - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockLocationType' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - patch: - operationId: stock_location_type_partial_update - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockLocationType' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockLocationType' - description: '' - delete: - operationId: stock_location_type_destroy - description: |- - API detail endpoint for a StockLocationType object. - - - GET: return a single StockLocationType - - PUT: update a StockLocationType - - PATCH: partial update a StockLocationType - - DELETE: delete a StockLocationType - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock_location - responses: - '204': - description: No response body - /api/stock/location/{id}/: - get: - operationId: stock_location_retrieve - description: Custom get method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: path_detail - schema: - type: boolean - default: false - description: Include detailed information about the BOM item linked to this - build line. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - put: - operationId: stock_location_update - description: Custom put method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Location' - multipart/form-data: - schema: - $ref: '#/components/schemas/Location' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - patch: - operationId: stock_location_partial_update - description: Custom patch method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedLocation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedLocation' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedLocation' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:build - - r:change:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Location' - description: '' - delete: - operationId: stock_location_destroy - description: Custom delete method to pass kwargs. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:build - - r:delete:stock_location - responses: - '204': - description: No response body - /api/stock/location/tree/: - get: - operationId: stock_location_tree_list - description: API endpoint for accessing a list of StockLocation objects, ready - for rendering as a tree. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - level - - -level - - name - - -name - - sublocations - - -sublocations - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:build - - r:view:stock_location - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedLocationTreeList' - description: '' - /api/stock/merge/: - post: - operationId: stock_merge_create - description: API endpoint for merging multiple stock items. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockMerge' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockMerge' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockMerge' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockMerge' - description: '' - /api/stock/remove/: - post: - operationId: stock_remove_create - description: Endpoint for removing a quantity of stock from an existing StockItem. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockRemove' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockRemove' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockRemove' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockRemove' - description: '' - /api/stock/return/: - post: - operationId: stock_return_create - description: |- - API endpoint for returning items into stock. - - This API endpoint is for items that are initially considered "not in stock", - and the user wants to return them to stock, marking them as - "available" for further consumption or sale. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockReturn' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockReturn' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockReturn' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockReturn' - description: '' - /api/stock/status/: - get: - operationId: stock_status_retrieve - description: Retrieve information about a specific status code - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/stock/test/: - get: - operationId: stock_test_list - description: API endpoint for listing (and creating) a StockItemTestResult object. - parameters: - - in: query - name: build - schema: - type: integer - description: Build - - in: query - name: enabled - schema: - type: boolean - description: Enabled - - in: query - name: include_installed - schema: - type: boolean - description: If true, include test results for items installed underneath - the given stock item - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - date - - -date - - result - - -result - - started_datetime - - -started_datetime - - finished_datetime - - -finished_datetime - - test_station - - -test_station - - in: query - name: part - schema: - type: integer - description: Part - - in: query - name: required - schema: - type: boolean - description: Required - - in: query - name: result - schema: - type: boolean - - name: search - required: false - in: query - description: A search term. - schema: - type: string - - in: query - name: stock_item - schema: - type: integer - description: Filter by numeric Stock Item ID - - in: query - name: template - schema: - type: integer - - in: query - name: template_detail - schema: - type: boolean - default: false - - in: query - name: test - schema: - type: string - description: Test name (case insensitive) - - in: query - name: user - schema: - type: integer - - in: query - name: user_detail - schema: - type: boolean - default: false - - in: query - name: value - schema: - type: string - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockItemTestResultList' - description: '' - post: - operationId: stock_test_create - description: API endpoint for listing (and creating) a StockItemTestResult object. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItemTestResult' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:add:stock - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - delete: - operationId: stock_test_bulk_destroy - description: |- - Perform a DELETE operation against this list endpoint. - - Note that the typical DRF list endpoint does not support DELETE, - so this method is provided as a custom implementation. - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock - responses: - '204': - description: No response body - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BulkRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BulkRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/BulkRequest' - required: true - /api/stock/test/{id}/: - get: - operationId: stock_test_retrieve - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: template_detail - schema: - type: boolean - default: false - - in: query - name: user_detail - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - put: - operationId: stock_test_update - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockItemTestResult' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - patch: - operationId: stock_test_partial_update - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedStockItemTestResult' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:change:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockItemTestResult' - description: '' - delete: - operationId: stock_test_destroy - description: Detail endpoint for StockItemTestResult. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:delete:stock - responses: - '204': - description: No response body - /api/stock/track/: - get: - operationId: stock_track_list - description: Override the GET method to determine export options. - parameters: - - in: query - name: include_variants - schema: - type: boolean - description: Include Part Variants - - in: query - name: item - schema: - type: integer - - in: query - name: item_detail - schema: - type: boolean - default: false - description: Include detailed information about the item in the response - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: max_date - schema: - type: string - format: date - description: Date before - - in: query - name: min_date - schema: - type: string - format: date - description: Date after - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - date - - -date - - in: query - name: part - schema: - type: integer - description: Part - - name: search - required: false - in: query - description: 'A search term. Searched fields: notes.' - schema: - type: string - - in: query - name: user - schema: - type: integer - - in: query - name: user_detail - schema: - type: boolean - default: false - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedStockTrackingList' - description: '' - /api/stock/track/{id}/: - get: - operationId: stock_track_retrieve - description: Detail API endpoint for StockItemTracking model. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - r:view:stock - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/StockTracking' - description: '' - /api/stock/track/status/: - get: - operationId: stock_track_status_retrieve - description: Retrieve information about a specific status code - tags: - - stock - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GenericStateClass' - description: '' - '400': - description: Invalid request - /api/stock/transfer/: - post: - operationId: stock_transfer_create - description: API endpoint for performing stock movements. - tags: - - stock - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StockTransfer' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/StockTransfer' - multipart/form-data: - schema: - $ref: '#/components/schemas/StockTransfer' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/StockTransfer' - description: '' - /api/supplier/import/: - post: - operationId: supplier_import_create - description: Import a part by supplier. - tags: - - supplier - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImportRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ImportRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ImportRequest' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ImportResult' - description: '' - /api/supplier/list/: - get: - operationId: supplier_list_list - description: List all available supplier plugins. - tags: - - supplier - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SupplierList' - description: '' - /api/supplier/search/: - get: - operationId: supplier_search_list - description: Search parts by supplier. - parameters: - - in: query - name: plugin - schema: - type: string - description: Plugin slug - required: true - - in: query - name: supplier - schema: - type: string - description: Supplier slug - required: true - - in: query - name: term - schema: - type: string - description: Search term - required: true - tags: - - supplier - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: '' - /api/system-internal/observability/end: - post: - operationId: system_internal_observability_end_create - description: Endpoint for observability tools. - tags: - - system-internal - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - multipart/form-data: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityEnd' - description: '' - /api/system/health/: - get: - operationId: system_health_retrieve - description: |- - Simple health check endpoint for monitoring purposes. - - Use the root API endpoint for more detailed information (using an authenticated request). - tags: - - system - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/HealthCheckStatus' - description: InvenTree server health status - /api/units/: - get: - operationId: units_list - description: List view for custom units. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedCustomUnitList' - description: '' - post: - operationId: units_create - description: List view for custom units. - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomUnit' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - /api/units/{id}/: - get: - operationId: units_retrieve - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - put: - operationId: units_update - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/CustomUnit' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - patch: - operationId: units_partial_update - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCustomUnit' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUnit' - description: '' - delete: - operationId: units_destroy - description: List view for custom units. - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this Custom Unit. - required: true - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/units/all/: - get: - operationId: units_all_retrieve - description: Return a list of all available units. - tags: - - units - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/AllUnitListResponse' - description: '' - /api/user/: - get: - operationId: user_list - description: |- - List endpoint for detail on all users. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: query - name: is_active - schema: - type: boolean - - in: query - name: is_staff - schema: - type: boolean - - in: query - name: is_superuser - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - email - - -email - - username - - -username - - first_name - - -first_name - - last_name - - -last_name - - is_staff - - -is_staff - - is_superuser - - -is_superuser - - is_active - - -is_active - - name: search - required: false - in: query - description: 'A search term. Searched fields: first_name, last_name, username.' - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedUserCreateList' - description: '' - post: - operationId: user_create - description: |- - List endpoint for detail on all users. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserCreate' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserCreate' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/UserCreate' - description: '' - /api/user/{id}/: - get: - operationId: user_retrieve - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - put: - operationId: user_update - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ExtendedUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/ExtendedUser' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - patch: - operationId: user_partial_update - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedExtendedUser' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedUser' - description: '' - delete: - operationId: user_destroy - description: |- - Detail endpoint for a single user. - - Permissions: - - Staff users (who also have the 'admin' role) can perform write operations - - Otherwise authenticated users have read-only access - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/{id}/set-password/: - put: - operationId: user_set_password_update - description: Allows superusers to set the password for a user. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserSetPassword' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserSetPassword' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - description: '' - patch: - operationId: user_set_password_partial_update - description: Allows superusers to set the password for a user. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserSetPassword' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:superuser - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserSetPassword' - description: '' - /api/user/group/: - get: - operationId: user_group_list - description: List endpoint for all auth groups. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - in: query - name: permission_detail - schema: - type: boolean - default: false - description: Include permission details - - in: query - name: role_detail - schema: - type: boolean - default: true - description: Include role details - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - - in: query - name: user_detail - schema: - type: boolean - default: false - description: Include user details - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedGroupList' - description: '' - post: - operationId: user_group_create - description: List endpoint for all auth groups. - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Group' - multipart/form-data: - schema: - $ref: '#/components/schemas/Group' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - /api/user/group/{id}/: - get: - operationId: user_group_retrieve - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - - in: query - name: permission_detail - schema: - type: boolean - default: false - description: Include permission details - - in: query - name: role_detail - schema: - type: boolean - default: true - description: Include role details - - in: query - name: user_detail - schema: - type: boolean - default: false - description: Include user details - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - put: - operationId: user_group_update - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Group' - multipart/form-data: - schema: - $ref: '#/components/schemas/Group' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - patch: - operationId: user_group_partial_update - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedGroup' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedGroup' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedGroup' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - description: '' - delete: - operationId: user_group_destroy - description: Detail endpoint for a particular auth group. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/me/: - get: - operationId: user_me_retrieve - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - put: - operationId: user_me_update - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/MeUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/MeUser' - required: true - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - patch: - operationId: user_me_partial_update - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedMeUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedMeUser' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedMeUser' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MeUser' - description: '' - delete: - operationId: user_me_destroy - description: |- - Detail endpoint for current user. - - Permissions: - - User can edit their own details via this endpoint - - Only a subset of fields are available here - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/user/me/profile/: - get: - operationId: user_me_profile_retrieve - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - put: - operationId: user_me_profile_update - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserProfile' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserProfile' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - patch: - operationId: user_me_profile_partial_update - description: |- - Detail endpoint for the user profile. - - Permissions: - - Any authenticated user has write access against this endpoint - - The endpoint always returns the profile associated with the current user - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - /api/user/me/roles/: - get: - operationId: user_me_roles_retrieve - description: API endpoint which lists the available role permissions for the - current user. - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Role' - description: '' - /api/user/me/token/: - get: - operationId: user_me_token_retrieve - description: |- - Return an API token if the user is authenticated. - - - If the user already has a matching token, delete it and create a new one - - Existing tokens are *never* exposed again via the API - - Once the token is provided, it can be used for auth until it expires - parameters: - - in: query - name: name - schema: - type: string - description: Name of the token - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetAuthToken' - description: '' - /api/user/owner/: - get: - operationId: user_owner_list - description: |- - List API endpoint for Owner model. - - Cannot create a new Owner object via the API, but can view existing instances. - parameters: - - in: query - name: is_active - schema: - type: boolean - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedOwnerList' - description: '' - /api/user/owner/{id}/: - get: - operationId: user_owner_retrieve - description: |- - Detail API endpoint for Owner model. - - Cannot edit or delete - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Owner' - description: '' - /api/user/ruleset/: - get: - operationId: user_ruleset_list - description: List endpoint for all RuleSet instances. - parameters: - - in: query - name: group - schema: - type: integer - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: name - schema: - type: string - enum: - - admin - - bom - - build - - part - - part_category - - purchase_order - - repair_order - - return_order - - sales_order - - stock - - stock_location - - transfer_order - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - name - - -name - - name: search - required: false - in: query - description: 'A search term. Searched fields: name.' - schema: - type: string - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRuleSetList' - description: '' - /api/user/ruleset/{id}/: - get: - operationId: user_ruleset_retrieve - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - put: - operationId: user_ruleset_update - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/RuleSet' - multipart/form-data: - schema: - $ref: '#/components/schemas/RuleSet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - patch: - operationId: user_ruleset_partial_update - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedRuleSet' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - delete: - operationId: user_ruleset_destroy - description: Detail endpoint for a particular RuleSet instance. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '204': - description: No response body - /api/user/tokens/: - get: - operationId: user_tokens_list - description: List of user tokens for current user. - parameters: - - name: limit - required: true - in: query - description: Number of results to return per page. - schema: - type: integer - - name: offset - required: false - in: query - description: The initial index from which to return the results. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - enum: - - created - - -created - - expiry - - -expiry - - last_seen - - -last_seen - - user - - -user - - name - - -name - - revoked - - -revoked - - revoked - - -revoked - - in: query - name: revoked - schema: - type: boolean - - name: search - required: false - in: query - description: 'A search term. Searched fields: key, name.' - schema: - type: string - - in: query - name: user - schema: - type: integer - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedApiTokenList' - description: '' - post: - operationId: user_tokens_create - description: List of user tokens for current user. - tags: - - user - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ApiToken' - multipart/form-data: - schema: - $ref: '#/components/schemas/ApiToken' - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - description: '' - /api/user/tokens/{id}/: - get: - operationId: user_tokens_retrieve - description: Details for a user token. - parameters: - - in: query - name: all_users - schema: - type: boolean - description: Display tokens for all users (superuser only) - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ApiToken' - description: '' - delete: - operationId: user_tokens_destroy - description: Details for a user token. - parameters: - - in: path - name: id - schema: - type: integer - required: true - tags: - - user - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - g:read - responses: - '204': - description: No response body - /api/version/: - get: - operationId: version_retrieve - description: Return information about the InvenTree server. - tags: - - version - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/VersionView' - description: '' - /api/version-text: - get: - operationId: version_text_list - description: Simple JSON endpoint for InvenTree version text. - parameters: - - in: query - name: start_version - schema: - type: integer - description: First version to report. Defaults to return the latest {versions} - versions. - - in: query - name: versions - schema: - type: integer - default: 10 - description: Number of versions to return. - tags: - - version-text - security: - - tokenAuth: [] - - basicAuth: [] - - cookieAuth: [] - - oauth2: - - a:staff - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VersionInformation' - description: '' - /api/webhook/{endpoint}/: - post: - operationId: webhook_create - description: Process incoming webhook. - parameters: - - in: path - name: endpoint - schema: - type: string - required: true - tags: - - webhook - responses: - '200': - description: Any data can be posted to the endpoint - everything will be - passed to the WebhookEndpoint model. - /api/auth/v1/config: - get: - summary: Get configuration - tags: - - Configuration - description: | - There are many configuration options that alter the functionality - and behavior of django-allauth, some of which can also impact the - frontend. Therefore, relevant configuration options are exposed via - this endpoint. The data returned is not user/authentication - dependent. Hence, it suffices to only fetch this data once at boot - time of your application. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Configuration' - operationId: allauth_config_get - /api/auth/v1/auth/login: - post: - tags: - - 'Authentication: Account' - summary: Login - description: | - Login using a username-password or email-password combination. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Login' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - password_mismatch: - $ref: '#/components/examples/allauth.PasswordMismatch' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - '409': - description: | - Conflict. For example, when logging in when a user is already logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_login_post - /api/auth/v1/auth/signup: - post: - tags: - - 'Authentication: Account' - summary: Signup - description: | - Whether or not `username`, `email`, `phone` or combination of those are - required depends on the configuration of django-allauth. Additionally, - if a custom signup form is used there may be other custom properties - required. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Signup' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. For example, when signing up while user is logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_signup_post - /api/auth/v1/auth/email/verify: - get: - tags: - - 'Authentication: Account' - summary: Get email verification information - description: | - Obtain email verification information, given the token that was sent to - the user by email. - parameters: - - $ref: '#/components/parameters/allauth.EmailVerificationKey' - responses: - '200': - $ref: '#/components/responses/allauth.EmailVerificationInfo' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_email_verify_get - post: - tags: - - 'Authentication: Account' - summary: Verify an email - description: | - Complete the email verification process. Depending on the configuration, - email addresses are either verified by opening a link that is sent to - their email address, or, by inputting a code that is sent. On the API, - both cases are handled identically. Meaning, the required key is either - the one from the link, or, the code itself. - - Note that a status code of 401 does not imply failure. It indicates that - the email verification was successful, yet, the user is still not signed - in. For example, in case `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` is set to - `False`, a 401 is returned when verifying as part of login/signup. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.VerifyEmail' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmailVerificationKey' - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_email_verify_post - /api/auth/v1/auth/email/verify/resend: - post: - tags: - - 'Authentication: Account' - summary: Resend email verification code - description: | - Requests a new email verification code. - Requires `ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True`. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '409': - description: | - Conflict. The email verification (by code) flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - '429': - $ref: '#/components/responses/allauth.TooManyRequests' - operationId: allauth_auth_email_verify_resend_post - /api/auth/v1/auth/phone/verify: - post: - tags: - - 'Authentication: Account' - summary: Verify a phone number - description: | - Complete the phone number verification process. Note that a status code - of 401 does not imply failure. It merely indicates that the phone number - verification was successful, yet, the user is still not signed in. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.VerifyPhone' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - '409': - description: | - Conflict. The phone verification flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_phone_verify_post - /api/auth/v1/auth/phone/verify/resend: - post: - tags: - - 'Authentication: Account' - summary: Resend phone number verification code - description: | - Requests a new phone number verification code. - Requires `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True`. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '409': - description: | - Conflict. The phone verification flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - '429': - $ref: '#/components/responses/allauth.TooManyRequests' - operationId: allauth_auth_phone_verify_resend_post - /api/auth/v1/auth/reauthenticate: - post: - tags: - - 'Authentication: Account' - summary: Reauthenticate - description: | - In order to safeguard the account, some actions require the user to be - recently authenticated. If you try to perform such an action without - having been recently authenticated, a `401` status is returned, listing - flows that can be performed to reauthenticate. One such flow is the flow - with ID `reauthenticate`, which allows for the user to input the - password. This is the endpoint related towards that flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Reauthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.IncorrectPassword' - operationId: allauth_auth_reauthenticate_post - /api/auth/v1/auth/password/request: - post: - summary: Request password - description: | - Initiates the password reset procedure. Depending on whether or not - `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED` is `True`, the procedure is - either stateless or stateful. - - In case codes are used, it is stateful, and a new - `password_reset_by_code` flow is started. In this case, on a successful - password reset request, you will receive a 401 indicating the pending - status of this flow. - - In case password reset is configured to use (stateless) links, you will - receive a 200 on a successful password reset request. - tags: - - 'Authentication: Password Reset' - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.RequestPassword' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_password_request_post - /api/auth/v1/auth/password/reset: - get: - summary: Get password reset information - description: | - Used to obtain information on and validate a password reset key. The - key passed is either the key encoded in the password reset URL that the - user has received per email, or, the password reset code in case of - `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED`. Note that in case of a code, - the number of requests you can make is limited (by - `ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS`). - tags: - - 'Authentication: Password Reset' - parameters: - - $ref: '#/components/parameters/allauth.PasswordResetKey' - responses: - '200': - $ref: '#/components/responses/allauth.PasswordResetInfo' - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - password_reset_key_invalid: - $ref: '#/components/examples/allauth.InvalidPasswordResetKey' - '409': - description: | - Conflict. There is no password reset (by code) flow pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_password_reset_get - post: - summary: Reset password - description: | - Perform the password reset, by handing over the password reset key and - the new password. After successfully completing the password reset, the - user is either logged in (in case `ACCOUNT_LOGIN_ON_PASSWORD_RESET` is - `True`), or, the user will need to proceed to the login page. In case - of the former, a `200` status code is returned, in case of the latter a - 401. - tags: - - 'Authentication: Password Reset' - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ResetPassword' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPassword' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.Authentication' - '409': - description: | - Conflict. There is no password reset (by code) flow pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_password_reset_post - /api/auth/v1/auth/provider/redirect: - post: - tags: - - 'Authentication: Providers' - summary: Provider redirect - description: | - Initiates the third-party provider authentication redirect flow. As calling - this endpoint results in a user facing redirect (302), this call is only - available in a browser, and must be called in a synchronous (non-XHR) - manner. - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderRedirect' - responses: - '302': - description: The provider authorization URL to which the client should be - redirected. - headers: - location: - schema: - type: string - description: The redirect URL. - operationId: allauth_auth_provider_redirect_post - /api/auth/v1/auth/provider/token: - post: - tags: - - 'Authentication: Providers' - summary: Provider token - description: | - Authenticates with a third-party provider using provider tokens received - by other means. For example, in case of a mobile app, the authentication - flow runs completely on the device itself, without any interaction with - the API. Then, when the (device) authentication completes and the mobile - app receives an access and/or ID token, it can hand over these tokens - via this endpoint to authenticate on the server. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderToken' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_token: - $ref: '#/components/examples/allauth.InvalidProviderToken' - '401': - description: Not authenticated, more steps are required to be completed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - operationId: allauth_auth_provider_token_post - /api/auth/v1/auth/provider/signup: - get: - tags: - - 'Authentication: Providers' - summary: Provider signup information - description: | - If, while signing up using a third-party provider account, there is - insufficient information received from the provider to automatically - complete the signup process, an additional step is needed to complete - the missing data before the user is fully signed up and authenticated. - The information available so far, such as the pending provider account, - can be retrieved via this endpoint. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.ProviderSignup' - '409': - description: | - Conflict. The provider signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_provider_signup_get - post: - tags: - - 'Authentication: Providers' - summary: Provider signup - description: | - If, while signing up using a third-party provider account, there is - insufficient information received from the provider to automatically - complete the signup process, an additional step is needed to complete - the missing data before the user is fully signed up and authenticated. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderSignup' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: Not authenticated, more steps are required to be completed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. The provider signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_provider_signup_post - /api/auth/v1/auth/2fa/authenticate: - post: - tags: - - 'Authentication: 2FA' - summary: Two-factor authentication - description: | - If, during authentication, a response with status 401 is encountered where one of the pending - flows has ID `mfa_authenticate`, that indicates that the Two-Factor Authentication stage needs to - be completed. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFAAuthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_2fa_authenticate_post - /api/auth/v1/auth/2fa/reauthenticate: - post: - tags: - - 'Authentication: 2FA' - summary: Reauthenticate using 2FA - description: | - In order to safeguard the account, some actions require the user to be - recently authenticated. If you try to perform such an action without - having been recently authenticated, a `401` status is returned, listing - flows that can be performed to reauthenticate. One such flow is the flow - with ID `mfa_reauthenticate`, which allows for the user to input an - authenticator code (e.g. TOTP or recovery code). This is the endpoint - related towards that flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFAAuthenticate' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - operationId: allauth_auth_2fa_reauthenticate_post - /api/auth/v1/auth/2fa/trust: - post: - tags: - - 'Authentication: 2FA' - summary: Trust this browser - description: | - If "Trust this browser?" is enabled (`MFA_TRUST_ENABLED`), the - `mfa_trust` flow activates after the user completes the MFA - authentication flow, offering to skip MFA for this particular - browser. This endpoint is used to complete the `mfa_trust` flow. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MFATrust' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_2fa_trust_post - /api/auth/v1/auth/webauthn/authenticate: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for 2FA - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_authenticate_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Perform 2FA using WebAuthn - parameters: [] - description: | - Perform Two-Factor Authentication using a WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.AuthenticateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_webauthn_authenticate_post - /api/auth/v1/auth/webauthn/reauthenticate: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for reauthentication - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_reauthenticate_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Reauthenticate using WebAuthn - parameters: [] - description: | - Reauthenticate the user using a WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.ReauthenticateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_auth_webauthn_reauthenticate_post - /api/auth/v1/auth/webauthn/login: - get: - tags: - - 'Authentication: WebAuthn: Login' - summary: Get WebAuthn credential request options for login - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - operationId: allauth_auth_webauthn_login_get - post: - tags: - - 'Authentication: WebAuthn: Login' - summary: Login using WebAuthn - parameters: [] - description: | - Login using a WebAuthn credential (Passkey). Both 200 and 401 can be - expected after a successful request. The 401 can, for example, occur - when the credential passed was valid, but the email attached to the - account still requires verification. - requestBody: - $ref: '#/components/requestBodies/allauth.LoginWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - operationId: allauth_auth_webauthn_login_post - /api/auth/v1/auth/webauthn/signup: - post: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Initiate the passkey signup flow - parameters: [] - description: | - You initiate the passkey signup flow by inputting (`POST`) the required properties (e.g. email) - similar to the regular account signup, except that the `password` is to be left out. - The user will then be required to verify the email address, after which WebAuthn credential - creation options can be retrieved (`GET`) and used to actually complete (`PUT`) the flow. - requestBody: - $ref: '#/components/requestBodies/allauth.PasskeySignup' - responses: - '400': - description: | - An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated, email verification pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '403': - description: | - Forbidden. For example, when signup is closed. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - '409': - description: | - Conflict. For example, when signing up while user is logged in. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_post - get: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Get passkey credential request options - parameters: [] - description: | - Returns the WebAuthn credential request options, that can be - processed using `parseRequestOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse' - '409': - description: | - Conflict. For example, when the passkey signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_get - put: - tags: - - 'Authentication: WebAuthn: Signup' - summary: Complete the passkey signup flow - parameters: [] - description: | - Complete the passkey signup flow by handing over the WebAuthn credential. - requestBody: - $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_email: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - '409': - description: | - Conflict. For example, when the passkey signup flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_webauthn_signup_put - /api/auth/v1/auth/code/request: - post: - tags: - - 'Authentication: Login By Code' - summary: Request login code - description: | - Request a "special" login code that is sent to the user by email. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.RequestLoginCode' - responses: - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_email: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - pending_login_by_code: - $ref: '#/components/examples/allauth.UnauthenticatedPendingLoginByCode' - operationId: allauth_auth_code_request_post - /api/auth/v1/auth/code/confirm: - post: - tags: - - 'Authentication: Login By Code' - summary: Confirm login code - description: | - Use this endpoint to pass along the received "special" login code. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ConfirmLoginCode' - responses: - '200': - $ref: '#/components/responses/allauth.AuthenticatedByCode' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - description: | - Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - '409': - description: | - Conflict. The "login by code" flow is not pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_auth_code_confirm_post - /api/auth/v1/account/providers: - get: - tags: - - 'Account: Providers' - summary: List the connected third-party provider accounts - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.ProviderAccounts' - operationId: allauth_account_providers_get - delete: - tags: - - 'Account: Providers' - summary: | - Disconnect a third-party provider account - description: | - Disconnect a third-party provider account, returning the remaining - accounts that are still connected. The disconnect is not allowed if it - would leave the account unusable. For example, if no password was - set up yet. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ProviderAccount' - responses: - '200': - $ref: '#/components/responses/allauth.ProviderAccounts' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - no_password: - $ref: '#/components/examples/allauth.DisconnectNotAllowedNoPassword' - no_email: - $ref: '#/components/examples/allauth.DisconnectNotAllowedNoVerifiedEmail' - operationId: allauth_account_providers_delete - /api/auth/v1/account/email: - get: - tags: - - 'Account: Email' - summary: List email addresses - description: | - Retrieves the list of email addresses of the account. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_email_get - post: - tags: - - 'Account: Email' - summary: | - Add/Change email address - description: | - The following functionality is available: - - - Adding a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = False`). - - Change to a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = True`). - - Change to a new email address during the email verification process at signup (`ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True`). - - In all cases, an email verification mail will be sent containing a link or code that needs to be verified. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - '401': - $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' - '409': - description: | - Conflict. For example, when no user is authenticated and no email verification flow is pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_account_email_post - put: - tags: - - 'Account: Email' - summary: Request email verification - description: | - Requests for (another) email verification email to be sent. Note that - sending emails is rate limited, so when you send too many requests the - email will not be sent. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - '403': - description: | - Too many email verification mails were already sent. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - operationId: allauth_account_email_put - patch: - tags: - - 'Account: Email' - summary: Change primary email address - description: | - Used to change primary email address to a different one. Note that only verified email addresses - can be marked as primary. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.MarkPrimaryEmail' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - operationId: allauth_account_email_patch - delete: - tags: - - 'Account: Email' - summary: Remove an email address - description: | - Used to remove an email address. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Email' - responses: - '200': - $ref: '#/components/responses/allauth.EmailAddresses' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidEmail' - operationId: allauth_account_email_delete - /api/auth/v1/account/phone: - get: - tags: - - 'Account: Phone' - summary: Get the phone number - description: | - Retrieves the phone number of the account, if any. Note that while the - endpoint returns a list of phone numbers, at most one entry is returned. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.PhoneNumbers' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_phone_get - post: - tags: - - 'Account: Phone' - summary: | - Change the phone number - description: | - The following functionality is available: - - - Initiate the phone number change process for signed in users. - - Change to a new phone number during the phone number verification - process at signup for unauthenticated users. Note that this requires: - `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True`. - - In both cases, after posting a new phone number, proceed with the phone - verification endpoint to confirm the change of the phone number by - posting the verification code. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.Phone' - responses: - '202': - description: Phone number change process initiated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PhoneNumberChangeResponse' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - '401': - $ref: '#/components/responses/allauth.AuthenticationOrReauthentication' - '409': - description: | - Conflict. For example, when no user is authenticated and no phone verification flow is pending. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - operationId: allauth_account_phone_post - /api/auth/v1/account/authenticators: - get: - tags: - - 'Account: 2FA' - summary: List authenticators - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Authenticators' - '401': - $ref: '#/components/responses/allauth.Authentication' - '410': - $ref: '#/components/responses/allauth.SessionGone' - operationId: allauth_account_authenticators_get - /api/auth/v1/account/authenticators/totp: - get: - tags: - - 'Account: 2FA' - summary: TOTP authenticator status - description: | - Retrieve the information about the current TOTP authenticator, if any. - parameters: [] - responses: - '404': - $ref: '#/components/responses/allauth.TOTPAuthenticatorNotFound' - '200': - $ref: '#/components/responses/allauth.TOTPAuthenticator' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_totp_get - post: - tags: - - 'Account: 2FA' - summary: Activate TOTP - description: | - The code should be provided from the consuming TOTP authenticator - application which was generated using the TOTP authenticator secret - retrieved from the TOTP authenticator status endpoint. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.SetupTOTP' - responses: - '200': - $ref: '#/components/responses/allauth.TOTPAuthenticator' - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.InvalidAuthenticatorCode' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_totp_post - delete: - tags: - - 'Account: 2FA' - summary: Deactivate TOTP - description: | - Deactivates TOTP authentication. If the user authentication is not - sufficiently recent, a reauthentication flow (`401`) will is presented. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_totp_delete - /api/auth/v1/account/authenticators/recovery-codes: - get: - tags: - - 'Account: 2FA' - summary: List recovery codes - description: | - List recovery codes. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.RecoveryCodes' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '404': - $ref: '#/components/responses/allauth.NotFound' - operationId: allauth_account_authenticators_recovery-codes_get - post: - tags: - - 'Account: 2FA' - summary: Regenerate recovery codes - parameters: [] - responses: - '400': - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - examples: - invalid_code: - $ref: '#/components/examples/allauth.CannotGenerateRecoveryCodes' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_recovery-codes_post - /api/auth/v1/account/authenticators/webauthn: - get: - tags: - - 'Account: WebAuthn' - summary: | - Get WebAuthn credential creation options - parameters: - - $ref: '#/components/parameters/allauth.PasswordLess' - description: | - Returns the WebAuthn credential creation options, that can be - processed using `parseCreationOptionsFromJSON()` on the frontend. - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnCreationOptionsResponse' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_webauthn_get - put: - tags: - - 'Account: WebAuthn' - summary: | - Rename a WebAuthn credential - description: | - You can alter the name of a WebAuthn credential by PUT'ting the ID and - name of the authenticator representing that credential. You can obtain - the credentials via the "List authenticators" endpoint. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.UpdateWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.WebAuthnAuthenticator' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_webauthn_put - delete: - tags: - - 'Account: WebAuthn' - summary: | - Delete a WebAuthn credential - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.DeleteWebAuthn' - responses: - '200': - $ref: '#/components/responses/allauth.StatusOK' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - operationId: allauth_account_authenticators_webauthn_delete - post: - tags: - - 'Account: WebAuthn' - summary: | - Add a WebAuthn credential - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator' - responses: - '200': - $ref: '#/components/responses/allauth.AddWebAuthnAuthenticator' - '401': - $ref: '#/components/responses/allauth.ReauthenticationRequired' - '409': - $ref: '#/components/responses/allauth.AddAuthenticatorConflict' - operationId: allauth_account_authenticators_webauthn_post - /api/auth/v1/auth/session: - get: - tags: - - 'Authentication: Current Session' - summary: | - Get authentication status - description: | - Retrieve information about the authentication status for the current - session. - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Authenticated' - '401': - $ref: '#/components/responses/allauth.Authentication' - '410': - $ref: '#/components/responses/allauth.SessionGone' - operationId: allauth_auth_session_get - delete: - tags: - - 'Authentication: Current Session' - summary: Logout - description: | - Logs out the user from the current session. - parameters: [] - responses: - '401': - $ref: '#/components/responses/allauth.Unauthenticated' - operationId: allauth_auth_session_delete - /api/auth/v1/tokens/refresh: - post: - tags: - - Tokens - summary: | - Refresh the access token - description: | - Used to retrieve a new access token. Depending on `settings.HEADLESS_JWT_ROTATE_REFRESH_TOKEN`, - a new refresh token is returned as well. - requestBody: - $ref: '#/components/requestBodies/allauth.RefreshToken' - responses: - '200': - $ref: '#/components/responses/allauth.RefreshToken' - '400': - description: The refresh token is invalid or expired. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - operationId: allauth_tokens_refresh_post - /api/auth/v1/account/password/change: - post: - tags: - - 'Account: Password' - summary: Change password - description: | - In order to change the password of an account, the current and new - password must be provider. However, accounts that were created by - signing up using a third-party provider do not have a password set. In - that case, the current password is not required. - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.ChangePassword' - responses: - '400': - $ref: '#/components/responses/allauth.Error' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_account_password_change_post - /api/auth/v1/auth/sessions: - get: - tags: - - Sessions - summary: List sessions - parameters: [] - responses: - '200': - $ref: '#/components/responses/allauth.Sessions' - operationId: allauth_auth_sessions_get - delete: - tags: - - Sessions - summary: End one or more sessions - parameters: [] - requestBody: - $ref: '#/components/requestBodies/allauth.EndSessions' - responses: - '200': - $ref: '#/components/responses/allauth.Sessions' - '401': - $ref: '#/components/responses/allauth.Authentication' - operationId: allauth_auth_sessions_delete -components: - examples: - allauth.AuthenticatedByCode: - summary: | - Authenticated by code. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: code - at: 1711555057.065702 - email: email@domain.org - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AuthenticatedByPassword: - summary: | - Authenticated by password. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AuthenticatedByPasswordAnd2FA: - summary: | - Fully authenticated using by password and 2FA. - value: - status: 200 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - meta: - is_authenticated: true - session_token: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.CannotGenerateRecoveryCodes: - summary: | - Unable to generate recovery codes. - value: - status: 400 - errors: - - message: | - You cannot deactivate two-factor authentication. - code: cannot_generate_recovery_codes - allauth.DisconnectNotAllowedNoPassword: - summary: Account without a password. - value: - status: 400 - errors: - - message: Your account has no password set up. - code: no_password - param: account - allauth.DisconnectNotAllowedNoVerifiedEmail: - summary: Account without a verified email. - value: - status: 400 - errors: - - message: Your account has no verified email address. - code: no_verified_email - param: account - allauth.IncorrectPassword: - value: - status: 400 - errors: - - message: Incorrect password. - param: password - code: incorrect_password - allauth.InvalidAuthenticatorCode: - summary: | - An error response indicating that the provided code is incorrect. - value: - status: 400 - errors: - - message: Incorrect code. - code: incorrect_code - param: code - allauth.InvalidEmail: - value: - status: 400 - errors: - - message: Enter a valid email address. - code: invalid - param: email - allauth.InvalidEmailVerificationKey: - summary: | - Email verification key invalid. - value: - status: 400 - errors: - - message: Invalid or expired key. - code: invalid - param: key - allauth.InvalidPasswordResetKey: - summary: | - Password reset key invalid. - value: - status: 400 - errors: - - message: The password reset token was invalid. - code: token_invalid - param: key - allauth.InvalidProviderToken: - summary: | - Provider token invalid. - value: - status: 400 - errors: - - message: The token was invalid. - code: invalid - param: token - allauth.PasswordMismatch: - value: - status: 400 - errors: - - message: The email address and/or password you specified are not correct. - code: email_password_mismatch - param: password - allauth.ReauthenticationRequired: - summary: | - Reauthentication required - value: - status: 401 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - flows: - - id: reauthenticate - - id: mfa_reauthenticate - meta: - is_authenticated: true - allauth.UnauthenticatedInitial: - summary: | - Unauthenticated: Initial - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - meta: - is_authenticated: false - allauth.UnauthenticatedPending2FA: - summary: | - Unauthenticated: pending 2FA - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: mfa_authenticate - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingEmailVerification: - summary: | - Unauthenticated: pending email verification - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: verify_email - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingLoginByCode: - summary: | - Unauthenticated: pending login by code - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: mfa_authenticate - - id: login_by_code - is_pending: true - meta: - is_authenticated: false - allauth.UnauthenticatedPendingProviderSignup: - summary: | - Unauthenticated: pending provider signup - value: - status: 401 - data: - flows: - - id: login - - id: signup - - id: provider_redirect - providers: - - facebook - - google - - telegram - - id: provider_token - providers: - - google - - id: provider_signup - provider: - id: google - name: Google - client_id: 123.apps.googleusercontent.com - flows: - - provider_redirect - - provider_token - is_pending: true - meta: - is_authenticated: false - allauth.User: - value: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - parameters: - allauth.EmailVerificationKey: - in: header - name: X-Email-Verification-Key - schema: - type: string - required: true - description: The email verification key - allauth.PasswordLess: - in: query - name: passwordless - required: false - schema: - type: boolean - allowEmptyValue: true - description: | - When present (regardless of its value), enables passwordless sign-in via a WebAuthn credential (Passkey), - but may enforce additional multi-factor authentication (MFA) requirements. Omit the parameter to disable. - allauth.PasswordResetKey: - in: header - name: X-Password-Reset-Key - schema: - type: string - required: true - description: The password reset key - requestBodies: - allauth.AddWebAuthnAuthenticator: - content: - application/json: - schema: - type: object - properties: - name: - type: string - example: Master key - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.AuthenticateWebAuthn: - description: Authenticate using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.ChangePassword: - content: - application/json: - schema: - type: object - properties: - current_password: - $ref: '#/components/schemas/allauth.Password' - new_password: - type: string - description: | - The current password. - example: Aberto! - required: - - new_password - allauth.ConfirmLoginCode: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConfirmLoginCode' - allauth.DeleteWebAuthn: - content: - application/json: - schema: - type: object - properties: - authenticators: - description: | - The IDs of the authenticator that are to be deleted. - type: array - items: - $ref: '#/components/schemas/allauth.AuthenticatorID' - required: - - authenticators - allauth.Email: - content: - application/json: - schema: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.EndSessions: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.EndSessions' - allauth.Login: - description: Login. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Login' - allauth.LoginWebAuthn: - description: Login using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.MFAAuthenticate: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.MFAAuthenticate' - allauth.MFATrust: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.MFATrust' - allauth.MarkPrimaryEmail: - content: - application/json: - schema: - type: object - properties: - email: - type: string - description: | - An email address. - example: email@domain.org - primary: - type: boolean - enum: - - true - description: | - Primary flag. - required: - - email - - primary - allauth.PasskeySignup: - description: Signup using a passkey - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PasskeySignup' - allauth.Phone: - content: - application/json: - schema: - type: object - properties: - phone: - type: string - example: '+314159265359' - required: - - phone - allauth.ProviderAccount: - content: - application/json: - schema: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - account: - $ref: '#/components/schemas/allauth.ProviderAccountID' - required: - - account - - provider - allauth.ProviderRedirect: - required: true - description: | - Initiate the provider redirect flow. - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/allauth.ProviderRedirect' - allauth.ProviderSignup: - description: Provider signup. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ProviderSignup' - allauth.ProviderToken: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ProviderToken' - allauth.Reauthenticate: - description: Reauthenticate. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Reauthenticate' - allauth.ReauthenticateWebAuthn: - description: Reauthenticate using WebAuthn. - required: true - content: - application/json: - schema: - type: object - properties: - credential: - $ref: '#/components/schemas/allauth.WebAuthnCredential' - required: - - credential - allauth.RefreshToken: - content: - application/json: - schema: - type: object - properties: - refresh_token: - $ref: '#/components/schemas/allauth.RefreshToken' - required: - - refresh_token - allauth.RequestLoginCode: - description: Request a login code. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.RequestLoginCode' - allauth.RequestPassword: - description: Request password. - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.RequestPassword' - allauth.ResetPassword: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ResetPassword' - allauth.SetupTOTP: - content: - application/json: - schema: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - code - allauth.Signup: - description: Signup - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.Signup' - allauth.UpdateWebAuthn: - content: - application/json: - schema: - type: object - properties: - id: - $ref: '#/components/schemas/allauth.AuthenticatorID' - name: - type: string - example: Master key - allauth.VerifyEmail: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.VerifyEmail' - allauth.VerifyPhone: - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.VerifyPhone' - responses: - allauth.AddAuthenticatorConflict: - description: | - The account prohibits adding an authenticator, e.g. because of an unverified email address. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConflictResponse' - allauth.AddWebAuthnAuthenticator: - description: A WebAuthn authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - meta: - type: object - properties: - recovery_codes_generated: - type: boolean - description: | - Whether or not recovery codes where generated automatically. - required: - - status - - data - - meta - allauth.Authenticated: - description: The user is authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - allauth.AuthenticatedByCode: - description: | - Authenticated by code. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByCode' - allauth.AuthenticatedByPassword: - description: | - Authenticated by password. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByPassword' - allauth.AuthenticatedByPasswordAnd2FA: - description: | - Authenticated by password and 2FA. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticatedResponse' - examples: - authenticated: - $ref: '#/components/examples/allauth.AuthenticatedByPasswordAnd2FA' - allauth.Authentication: - description: Not authenticated. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauthenticated_initial: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - unauthenticated_pending_2fa: - $ref: '#/components/examples/allauth.UnauthenticatedPending2FA' - unauthenticated_pending_provider_signup: - $ref: '#/components/examples/allauth.UnauthenticatedPendingProviderSignup' - unauthenticated_pending_email_verification: - $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification' - reauthentication_required: - $ref: '#/components/examples/allauth.ReauthenticationRequired' - allauth.AuthenticationOrReauthentication: - description: | - The response indicates authentication or re-authentication is required. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/allauth.AuthenticationResponse' - - $ref: '#/components/schemas/allauth.ReauthenticationResponse' - allauth.Authenticators: - description: | - List of authenticators. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.AuthenticatorList' - required: - - status - - data - allauth.Configuration: - description: | - The django-allauth configuration. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ConfigurationResponse' - allauth.EmailAddresses: - description: | - List of email addresses. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.EmailAddress' - required: - - status - - data - allauth.EmailVerificationInfo: - description: Email verification information. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.EmailVerificationInfo' - allauth.Error: - description: An input error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ErrorResponse' - allauth.Forbidden: - description: | - A forbidden response. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ForbiddenResponse' - allauth.NotFound: - description: | - Not found. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 404 - required: - - status - allauth.PasswordResetInfo: - description: Information about the password reset key. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - user: - $ref: '#/components/schemas/allauth.User' - required: - - status - - data - allauth.PhoneNumbers: - description: | - List of phone numbers. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.PhoneNumbersResponse' - allauth.ProviderAccounts: - description: | - List of third-party provider accounts. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.ProviderAccount' - required: - - status - - data - allauth.ProviderSignup: - description: | - Information relating to the pending provider signup. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - email: - type: array - items: - $ref: '#/components/schemas/allauth.EmailAddress' - account: - $ref: '#/components/schemas/allauth.ProviderAccount' - user: - $ref: '#/components/schemas/allauth.User' - required: - - email - - account - - user - required: - - status - - data - allauth.ReauthenticationRequired: - description: | - The response indicates reauthentication is required. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.ReauthenticationResponse' - examples: - reauthentication_required: - summary: | - Reauthentication required - value: - status: 401 - data: - user: - id: 123 - display: Magic Wizard - has_usable_password: true - email: email@domain.org - username: wizard - methods: - - method: password - at: 1711555057.065702 - email: email@domain.org - - method: mfa - at: 1711555060.9375854 - id: 66 - type: totp - flows: - - id: reauthenticate - - id: mfa_reauthenticate - meta: - is_authenticated: true - allauth.RecoveryCodes: - description: | - Information on the recovery codes. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.SensitiveRecoveryCodesAuthenticator' - required: - - status - - data - allauth.RefreshToken: - description: A new access token (and optionally new refresh token). - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - access_token: - $ref: '#/components/schemas/allauth.AccessToken' - refresh_token: - $ref: '#/components/schemas/allauth.RefreshToken' - required: - - access_token - required: - - data - - status - allauth.SessionGone: - description: | - The response indicates session is invalid or no longer exists. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.SessionGoneResponse' - examples: - unauth: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - allauth.Sessions: - description: | - List of sessions. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.Session' - required: - - status - - data - allauth.StatusOK: - description: | - A success response. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - required: - - status - allauth.TOTPAuthenticator: - description: | - Information on the TOTP authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - meta: - properties: - recovery_codes_generated: - description: Whether or not recovery codes where generated automatically. - type: boolean - type: object - data: - $ref: '#/components/schemas/allauth.TOTPAuthenticator' - required: - - status - - data - allauth.TOTPAuthenticatorNotFound: - description: | - No TOTP authenticator has been set up. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 404 - meta: - type: object - properties: - secret: - type: string - description: | - A TOTP secret that can be used to setup a new authenticator. - example: J4ZKKXTK7NOVU7EPUVY23LCDV4T2QZYM - totp_url: - type: string - description: | - otpauth URI from which a QR code can be generated and scanned by OTP clients. - example: otpauth://totp/Example:alice@fsf.org?secret=JBSWY3DPEHPK3PXP&issuer=Example - required: - - secret - - totp_url - required: - - status - - meta - allauth.TooManyRequests: - description: | - Too many requests. - content: - application/json: - schema: - type: object - properties: - status: - type: integer - enum: - - 429 - required: - - status - allauth.Unauthenticated: - description: | - There is no authenticated session. - content: - application/json: - schema: - $ref: '#/components/schemas/allauth.AuthenticationResponse' - examples: - unauth: - $ref: '#/components/examples/allauth.UnauthenticatedInitial' - allauth.WebAuthnAuthenticator: - description: A WebAuthn authenticator. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - required: - - status - - data - allauth.WebAuthnCreationOptionsResponse: - description: WebAuthn credential creation options. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnCredentialCreationOptions' - required: - - status - - data - allauth.WebAuthnRequestOptionsResponse: - description: WebAuthn credential request options. - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.WebAuthnCredentialRequestOptions' - required: - - status - - data - schemas: - APISearchView: - type: object - description: Serializer for the APISearchView. - properties: - search: - type: string - search_regex: - type: boolean - default: false - search_whole: - type: boolean - default: false - search_notes: - type: boolean - default: false - limit: - type: integer - default: 1 - offset: - type: integer - default: 0 - required: - - search - AcceptOverallocatedEnum: - enum: - - reject - - accept - - trim - type: string - description: |- - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - ActionPlugin: - type: object - description: Serializer for the ActionPluginView responses. - properties: - action: - type: string - data: - type: object - additionalProperties: {} - required: - - action - - data - ActionPluginError: - type: object - description: Serializer for the ActionPluginView error responses. - properties: - error: - type: string - action: - type: string - required: - - error - Address: - type: object - description: Serializer for the Address Model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - link: - type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - required: - - company - - pk - - title - AddressBrief: - type: object - description: Serializer for Address Model (limited). - properties: - pk: - type: integer - readOnly: true - title: ID - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - required: - - pk - AllUnitListResponse: - type: object - description: Serializer for the AllUnitList. - properties: - default_system: - type: string - available_systems: - type: array - items: - type: string - available_units: - type: object - additionalProperties: - $ref: '#/components/schemas/Unit' - required: - - available_systems - - available_units - - default_system - Allauth.AuthenticationMethodMethodEnum: - type: string - enum: - - password - Allauth.ConflictResponseStatusEnum: - type: integer - enum: - - 409 - Allauth.ErrorResponseStatusEnum: - type: integer - enum: - - 400 - Allauth.ForbiddenResponseStatusEnum: - type: integer - enum: - - 403 - Allauth.RecoveryCodesAuthenticatorTypeEnum: - type: string - enum: - - recovery_codes - Allauth.SessionGoneResponseStatusEnum: - type: integer - enum: - - 410 - Allauth.TOTPAuthenticatorTypeEnum: - type: string - enum: - - totp - Allauth.WebAuthnAuthenticatorTypeEnum: - type: string - enum: - - webauthn - ApiToken: - type: object - description: Serializer for the ApiToken model. - properties: - created: - type: string - format: date-time - readOnly: true - expiry: - type: string - format: date - title: Expiry Date - description: Token expiry date - id: - type: integer - readOnly: true - last_seen: - type: string - format: date - nullable: true - description: Last time the token was used - name: - type: string - title: Token Name - description: Custom token name - maxLength: 100 - token: - type: string - description: |- - Provide a redacted version of the token. - - The *raw* key value should never be displayed anywhere! - readOnly: true - active: - type: boolean - description: Test if this token is active. - readOnly: true - revoked: - type: boolean - description: Token has been revoked - user: - type: integer - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - in_use: - type: boolean - description: Return True if the token is currently used to call the endpoint. - readOnly: true - required: - - active - - created - - id - - in_use - - token - - user_detail - Attachment: - type: object - description: Serializer class for the Attachment model. - properties: - pk: - type: integer - readOnly: true - title: ID - attachment: - type: string - format: uri - nullable: true - thumbnail: - type: string - format: uri - readOnly: true - nullable: true - filename: - type: string - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - comment: - type: string - description: Attachment comment - maxLength: 250 - is_image: - type: boolean - readOnly: true - description: True if this attachment is a valid image file - upload_date: - type: string - format: date - readOnly: true - upload_user: - type: integer - readOnly: true - nullable: true - title: User - description: User - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - file_size: - type: integer - readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - tags: - type: array - items: - type: string - required: - - file_size - - is_image - - model_id - - model_type - - pk - - upload_date - - user_detail - AttachmentModelTypeEnum: - enum: - - build - - company - - manufacturerpart - - supplierpart - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - transferorder - - part - - stockitem - type: string - description: |- - * `build` - Build Order - * `company` - Company - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - Barcode: - type: object - description: Generic serializer for receiving barcode data. - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - required: - - barcode - BarcodeAssign: - type: object - description: Serializer class for linking a barcode to an internal model. - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - build: - type: integer - nullable: true - title: Build Order - manufacturerpart: - type: integer - nullable: true - title: Manufacturer Part - supplierpart: - type: integer - nullable: true - title: Supplier Part - purchaseorder: - type: integer - nullable: true - title: Purchase Order - repairorder: - type: integer - nullable: true - title: Repair Order - returnorder: - type: integer - nullable: true - title: Return Order - salesorder: - type: integer - nullable: true - title: Sales Order - salesordershipment: - type: integer - nullable: true - title: Sales Order Shipment - transferorder: - type: integer - nullable: true - title: Transfer Order - part: - type: integer - nullable: true - stockitem: - type: integer - nullable: true - title: Stock Item - stocklocation: - type: integer - nullable: true - title: Stock Location - required: - - barcode - BarcodeGenerate: - type: object - description: Serializer for generating a barcode. - properties: - model: - type: string - description: Model name to generate barcode for - pk: - type: integer - description: Primary key of model object to generate barcode for - required: - - model - - pk - BarcodePOAllocate: - type: object - description: |- - Serializer for allocating items against a purchase order. - - The scanned barcode could be a Part, ManufacturerPart or SupplierPart object - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - purchase_order: - type: integer - description: Purchase Order to allocate items against - required: - - barcode - - purchase_order - BarcodePOReceive: - type: object - description: |- - Serializer for receiving items against a purchase order. - - The following additional fields may be specified: - - - purchase_order: PurchaseOrder object to receive items against - - location: Location to receive items into - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - supplier: - type: integer - nullable: true - description: Supplier to receive items from - purchase_order: - type: integer - nullable: true - description: PurchaseOrder to receive items against - location: - type: integer - nullable: true - description: Location to receive items into - line_item: - type: integer - nullable: true - description: Purchase order line item to receive items against - auto_allocate: - type: boolean - default: true - description: Automatically allocate stock items to the purchase order - required: - - barcode - BarcodeSOAllocate: - type: object - description: |- - Serializr for allocating stock items to a sales order. - - The scanned barcode must map to a StockItem object - properties: - barcode: - type: string - description: Scanned barcode data - maxLength: 4095 - sales_order: - type: integer - description: Sales Order to allocate items against - line: - type: integer - nullable: true - description: Sales order line item to allocate items against - shipment: - type: integer - nullable: true - description: Sales order shipment to allocate items against - quantity: - type: integer - description: Quantity to allocate - required: - - barcode - - sales_order - BarcodeScanResult: - type: object - description: Serializer for barcode scan results. - properties: - pk: - type: integer - readOnly: true - title: ID - data: - type: string - readOnly: true - description: Barcode data - timestamp: - type: string - format: date-time - readOnly: true - description: Date and time of the barcode scan - endpoint: - type: string - readOnly: true - nullable: true - title: Path - description: URL endpoint which processed the barcode - context: - readOnly: true - nullable: true - description: Context data for the barcode scan - response: - readOnly: true - nullable: true - description: Response data from the barcode scan - result: - type: boolean - readOnly: true - description: Was the barcode scan successful? - user: - type: integer - readOnly: true - nullable: true - description: User who scanned the barcode - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - required: - - data - - pk - - result - - timestamp - - user_detail - BarcodeUnassign: - type: object - description: Serializer class for unlinking a barcode from an internal model. - properties: - build: - type: integer - nullable: true - title: Build Order - manufacturerpart: - type: integer - nullable: true - title: Manufacturer Part - supplierpart: - type: integer - nullable: true - title: Supplier Part - purchaseorder: - type: integer - nullable: true - title: Purchase Order - repairorder: - type: integer - nullable: true - title: Repair Order - returnorder: - type: integer - nullable: true - title: Return Order - salesorder: - type: integer - nullable: true - title: Sales Order - salesordershipment: - type: integer - nullable: true - title: Sales Order Shipment - transferorder: - type: integer - nullable: true - title: Transfer Order - part: - type: integer - nullable: true - stockitem: - type: integer - nullable: true - title: Stock Item - stocklocation: - type: integer - nullable: true - title: Stock Location - BlankEnum: - enum: - - '' - BomItem: - type: object - description: Serializer for BomItem object. - properties: - part: - type: integer - title: Assembly - description: Select the parent assembly - sub_part: - type: integer - title: Component - description: Select the component part - reference: - type: string - description: BOM item reference - maxLength: 5000 - raw_amount: - type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: - type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: - type: boolean - description: This BOM item is optional - consumable: - type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double - nullable: true - note: - type: string - description: BOM item notes - maxLength: 500 - pk: - type: integer - readOnly: true - title: ID - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_min_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - substitutes: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - readOnly: true - nullable: true - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double - readOnly: true - nullable: true - available_substitute_stock: - type: number - format: double - readOnly: true - nullable: true - available_variant_stock: - type: number - format: double - readOnly: true - nullable: true - external_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - title: In Production - can_build: - type: number - format: double - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - sub_part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Component - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - required: - - part - - pk - - sub_part - BomItemSubstitute: - type: object - description: Serializer for the BomItemSubstitute class. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_item: - type: integer - description: Parent BOM item - part: - type: integer - description: Substitute part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - required: - - bom_item - - part - - part_detail - - pk - BomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - BriefUserProfile: - type: object - description: Brief serializer for the UserProfile model. - properties: - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - Build: - type: object - description: Serializes a Build object. - properties: - pk: - type: integer - readOnly: true - title: ID - title: - type: string - title: Description - description: Brief description of the build (optional) - maxLength: 100 - barcode_hash: - type: string - readOnly: true - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this build output - maxLength: 100 - creation_date: - type: string - format: date - readOnly: true - completed: - type: integer - readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: - type: string - format: date - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: - type: boolean - title: External Build - description: This build order is fulfilled externally - parent: - type: integer - nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: - type: integer - description: Select part to build - part_name: - type: string - readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: - type: integer - nullable: true - description: Project code for this build order - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - default: false - reference: - type: string - sales_order: - type: integer - nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: - type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' - readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - target_date: - type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: - type: integer - nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer - readOnly: true - nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - responsible: - type: integer - nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer - readOnly: true - title: Build Level - required: - - barcode_hash - - completed - - creation_date - - issued_by_detail - - level - - overdue - - part - - part_detail - - part_name - - pk - - quantity - - reference - - status - BuildAllocation: - type: object - description: Serializer for allocating stock items against a build order. - properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildAllocationItem' - required: - - items - BuildAllocationItem: - type: object - description: A serializer for allocating a single stock item against a build - order. - properties: - build_line: - type: integer - title: Build Line Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - output: - type: integer - nullable: true - title: Build Output - required: - - build_line - - quantity - - stock_item - BuildAutoAllocation: - type: object - description: DRF serializer for auto allocating stock items against a build - order. - properties: - location: - type: integer - nullable: true - title: Source Location - description: Stock location where parts are to be sourced (leave blank to - take from any location) - exclude_location: - type: integer - nullable: true - description: Exclude stock items from this selected location - interchangeable: - type: boolean - default: false - title: Interchangeable Stock - description: Stock items in multiple locations can be used interchangeably - substitutes: - type: boolean - default: true - title: Substitute Stock - description: Allow allocation of substitute parts - optional_items: - type: boolean - default: false - description: Allocate optional BOM items to build order - item_type: - allOf: - - $ref: '#/components/schemas/ItemTypeEnum' - default: untracked - description: |- - Select item type to auto-allocate - - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - build_lines: - type: array - items: - type: integer - title: Build Lines - description: Limit allocation to these build lines (leave blank to allocate - all lines) - BuildCancel: - type: object - description: Cancel an active BuildOrder. - properties: - remove_allocated_stock: - type: boolean - default: false - title: Consume Allocated Stock - description: Consume any stock which has already been allocated to this - build - remove_incomplete_outputs: - type: boolean - default: false - description: Delete any build outputs which have not been completed - BuildComplete: - type: object - description: DRF serializer for marking a BuildOrder as complete. - properties: - accept_overallocated: - allOf: - - $ref: '#/components/schemas/AcceptOverallocatedEnum' - default: reject - title: Overallocated Stock - description: |- - How do you want to handle extra stock items assigned to the build order - - * `reject` - Not permitted - * `accept` - Accept as consumed by this build order - * `trim` - Deallocate before completing this build order - accept_unallocated: - type: boolean - default: false - description: Accept that stock items have not been fully allocated to this - build order - accept_incomplete: - type: boolean - default: false - description: Accept that the required number of build outputs have not been - completed - BuildConsume: - type: object - description: |- - Serializer for consuming allocations against a BuildOrder. - - - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine. - - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects. - properties: - items: - type: array - items: - $ref: '#/components/schemas/BuildConsumeAllocation' - lines: - type: array - items: - $ref: '#/components/schemas/BuildConsumeLineItem' - notes: - type: string - description: Optional notes for the stock consumption - BuildConsumeAllocation: - type: object - description: Serializer for an individual BuildItem to be consumed against a - BuildOrder. - properties: - build_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - build_item - - quantity - BuildConsumeLineItem: - type: object - description: Serializer for an individual BuildLine to be consumed against a - BuildOrder. - properties: - build_line: - type: integer - required: - - build_line - BuildItem: - type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - build_line: - type: integer - nullable: true - install_into: - type: integer - nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer - readOnly: true - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - stock_item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Stock Item - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - install_into_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Install Into - bom_reference: - type: string - readOnly: true - required: - - bom_reference - - build - - location - - pk - - quantity - - stock_item - BuildLine: - type: object - description: Serializer for a BuildItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - description: Build object - bom_item: - type: integer - readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - allocations: - type: array - items: - $ref: '#/components/schemas/BuildItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - build_reference: - type: string - readOnly: true - reference: - type: string - readOnly: true - consumable: - type: boolean - readOnly: true - optional: - type: boolean - readOnly: true - testable: - type: boolean - readOnly: true - trackable: - type: boolean - readOnly: true - inherited: - type: boolean - readOnly: true - allow_variants: - type: boolean - readOnly: true - allocated: - type: number - format: double - readOnly: true - in_production: - type: number - format: double - readOnly: true - scheduled_to_build: - type: number - format: double - readOnly: true - on_order: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_substitute_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - external_stock: - type: number - format: double - readOnly: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' - readOnly: true - nullable: true - title: BOM Item - assembly_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - required: - - allocated - - allow_variants - - available_stock - - available_substitute_stock - - available_variant_stock - - bom_item - - build - - build_reference - - consumable - - consumed - - external_stock - - in_production - - inherited - - on_order - - optional - - part - - pk - - quantity - - reference - - scheduled_to_build - - testable - - trackable - BuildOutput: - type: object - description: |- - Serializer for a "BuildOutput". - - Note that a "BuildOutput" is really just a StockItem which is "in production"! - properties: - output: - type: integer - title: Build Output - required: - - output - BuildOutputComplete: - type: object - description: DRF serializer for completing one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: - type: integer - description: Location for completed build outputs - status_custom_key: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - title: Status - accept_incomplete_allocation: - type: boolean - default: false - description: Complete outputs if stock has not been fully allocated - notes: - type: string - required: - - location - - outputs - BuildOutputCreate: - type: object - description: |- - Serializer for creating a new BuildOutput against a BuildOrder. - - URL pattern is "/api/build//create-output/", where is the PK of a Build. - - The Build object is provided to the serializer context. - properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - batch_code: - type: string - description: Batch code for this build output - serial_numbers: - type: string - description: Enter serial numbers for build outputs - location: - type: integer - nullable: true - description: Stock location for build output - auto_allocate: - type: boolean - nullable: true - default: false - title: Auto Allocate Serial Numbers - description: Automatically allocate required items with matching serial - numbers - required: - - quantity - BuildOutputDelete: - type: object - description: DRF serializer for deleting (cancelling) one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutput' - required: - - outputs - BuildOutputQuantity: - type: object - description: Build output with quantity field. - properties: - output: - type: integer - title: Build Output - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Enter quantity for build output - required: - - output - BuildOutputScrap: - type: object - description: Scrapping one or more build outputs. - properties: - outputs: - type: array - items: - $ref: '#/components/schemas/BuildOutputQuantity' - location: - type: integer - description: Stock location for scrapped outputs - discard_allocations: - type: boolean - default: false - description: Discard any stock allocations for scrapped outputs - notes: - type: string - description: Reason for scrapping build output(s) - required: - - location - - notes - - outputs - BuildStatusEnum: - enum: - - 10 - - 20 - - 25 - - 30 - - 40 - type: integer - description: |- - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - BuildUnallocation: - type: object - description: |- - DRF serializer for unallocating stock from a BuildOrder. - - Allocated stock can be unallocated with a number of filters: - - - output: Filter against a particular build output (blank = untracked stock) - - bom_item: Filter against a particular BOM line item - properties: - build_line: - type: integer - nullable: true - output: - type: integer - nullable: true - title: Build output - BulkRequest: - type: object - description: Parameters for selecting items for bulk operations. - properties: - items: - type: array - items: - type: integer - title: A list of primary key values - filters: - type: object - additionalProperties: {} - title: A dictionary of filter values - Category: - type: object - description: Serializer for PartCategory. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - default_location: - type: integer - nullable: true - description: Default location for parts in this category - default_keywords: - type: string - nullable: true - description: Default keywords for parts in this category - maxLength: 250 - level: - type: integer - readOnly: true - parent: - type: integer - nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer - readOnly: true - nullable: true - title: Parts - subcategories: - type: integer - readOnly: true - nullable: true - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - starred: - type: boolean - description: Return True if the category is directly "starred" by the current - user. - readOnly: true - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: - type: string - nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: - type: integer - readOnly: true - nullable: true - required: - - level - - name - - pathstring - - pk - - starred - CategoryParameterTemplate: - type: object - description: Serializer for the PartCategoryParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - template: - type: integer - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: - type: string - description: Default Parameter Value - maxLength: 500 - required: - - category - - pk - - template - - template_detail - CategoryTree: - type: object - description: Serializer for PartCategory tree. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - parent: - type: integer - nullable: true - icon: - type: string - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - subcategories: - type: integer - readOnly: true - required: - - name - - pk - - subcategories - ColorEnum: - enum: - - primary - - secondary - - success - - danger - - warning - - info - - dark - type: string - description: |- - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - Company: - type: object - description: Serializer for Company object (full detail). - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - website: - type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: - type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: - type: string - format: email - nullable: true - default: '' - currency: - type: string - description: |- - Default currency used for this supplier - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: - type: string - format: uri - nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parts_supplied: - type: integer - readOnly: true - parts_manufactured: - type: integer - readOnly: true - primary_address: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - currency - - name - - parts_manufactured - - parts_supplied - - pk - CompanyBrief: - type: object - description: Serializer for Company object (limited detail). - properties: - pk: - type: integer - readOnly: true - title: ID - active: - type: boolean - description: Is this company active? - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - image: - type: string - format: uri - readOnly: true - thumbnail: - type: string - readOnly: true - currency: - type: string - readOnly: true - description: Default currency used for this company - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - required: - - currency - - image - - name - - pk - - thumbnail - Config: - type: object - description: |- - Serializer for the InvenTree configuration. - - This is a read-only serializer. - properties: - key: - type: string - readOnly: true - env_var: - type: string - readOnly: true - nullable: true - config_key: - type: string - readOnly: true - nullable: true - source: - type: string - readOnly: true - accessed: - type: string - format: date-time - readOnly: true - required: - - accessed - - key - - source - ConfigTypeEnum: - enum: - - M - - D - type: string - description: |- - * `M` - Machine - * `D` - Driver - Contact: - type: object - description: Serializer class for the Contact model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - company_name: - type: string - readOnly: true - name: - type: string - maxLength: 100 - phone: - type: string - maxLength: 100 - email: - type: string - format: email - maxLength: 254 - role: - type: string - maxLength: 100 - required: - - company - - company_name - - name - - pk - ContentType: - type: object - description: Serializer for ContentType models. - properties: - pk: - type: integer - readOnly: true - app_label: - type: string - readOnly: true - model: - type: string - readOnly: true - app_labeled_name: - type: string - readOnly: true - is_plugin: - type: boolean - description: Return True if the model is a plugin model. - readOnly: true - required: - - app_label - - app_labeled_name - - is_plugin - - model - - pk - ConvertStockItem: - type: object - description: DRF serializer class for converting a StockItem to a valid variant - part. - properties: - part: - type: integer - description: Select part to convert stock item into - required: - - part - CurrencyExchange: - type: object - description: |- - Serializer for a Currency Exchange request. - - It's only purpose is describing the results correctly in the API schema right now. - properties: - base_currency: - type: string - readOnly: true - exchange_rates: - type: object - additionalProperties: - type: number - format: double - updated: - type: string - format: date-time - readOnly: true - required: - - base_currency - - exchange_rates - - updated - CustomState: - type: object - description: Serializer for the custom state model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: - type: string - description: Name of the state - maxLength: 250 - label: - type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: State logical key that is equal to this custom state in business - logic - model: - type: integer - nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - required: - - key - - label - - logical_key - - model_name - - name - - pk - - reference_status - CustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: - type: string - description: Optional unit symbol - maxLength: 10 - definition: - type: string - description: Unit definition - maxLength: 50 - required: - - definition - - name - - pk - Customize: - type: object - description: Serializer for customize field. - properties: - logo: - type: string - splash: - type: string - login_message: - type: string - nullable: true - navbar_message: - type: string - nullable: true - disable_theme_storage: - type: boolean - default: false - required: - - login_message - - logo - - navbar_message - - splash - DataImportAcceptRow: - type: object - description: Serializer for accepting rows of data. - properties: - rows: - type: array - items: - type: integer - title: Rows - description: List of row IDs to accept - required: - - rows - DataImportColumnMap: - type: object - description: Serializer for the DataImportColumnMap model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - column: - type: string - maxLength: 100 - field: - type: string - readOnly: true - label: - type: string - readOnly: true - description: - type: string - readOnly: true - required: - - description - - field - - label - - pk - - session - DataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true - nullable: true - title: Original row data - data: - nullable: true - errors: - readOnly: true - nullable: true - valid: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - required: - - complete - - pk - - row_index - - session - - valid - DataImportSession: - type: object - description: Serializer for the DataImportSession model. - properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: - type: string - format: date-time - readOnly: true - data_file: - type: string - format: uri - update_records: - type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: - readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' - readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - columns: - readOnly: true - nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - readOnly: true - field_defaults: - nullable: true - field_overrides: - nullable: true - field_filters: - nullable: true - row_count: - type: integer - readOnly: true - completed_row_count: - type: integer - readOnly: true - required: - - available_fields - - column_mappings - - completed_row_count - - data_file - - model_type - - pk - - row_count - - status - - timestamp - - user_detail - DataImportSessionModelTypeEnum: - enum: - - projectcode - - inventreecustomuserstatemodel - - customunit - - parametertemplate - - parameter - - partcategory - - parttesttemplate - - partsellpricebreak - - part - - bomitem - - partcategoryparametertemplate - - address - - company - - contact - - manufacturerpart - - supplierpart - - supplierpricebreak - - stockitemtestresult - - stockitem - - stocklocation - - stockitemtracking - - purchaseorder - - purchaseorderlineitem - - purchaseorderextraline - - salesorder - - salesorderlineitem - - salesordershipment - - salesorderextraline - - returnorder - - returnorderlineitem - - returnorderextraline - - transferorder - - transferorderlineitem - type: string - description: |- - * `projectcode` - Project Code - * `inventreecustomuserstatemodel` - Custom State - * `customunit` - Custom Unit - * `parametertemplate` - Parameter Template - * `parameter` - Parameter - * `partcategory` - Part Category - * `parttesttemplate` - Part Test Template - * `partsellpricebreak` - Part Sale Price Break - * `part` - Part - * `bomitem` - BOM Item - * `partcategoryparametertemplate` - Part Category Parameter Template - * `address` - Address - * `company` - Company - * `contact` - Contact - * `manufacturerpart` - Manufacturer Part - * `supplierpart` - Supplier Part - * `supplierpricebreak` - Supplier Price Break - * `stockitemtestresult` - Stock Item Test Result - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - * `stockitemtracking` - Stock Item Tracking - * `purchaseorder` - Purchase Order - * `purchaseorderlineitem` - Purchase Order Line Item - * `purchaseorderextraline` - Purchase Order Extra Line - * `salesorder` - Sales Order - * `salesorderlineitem` - Sales Order Line Item - * `salesordershipment` - Sales Order Shipment - * `salesorderextraline` - Sales Order Extra Line - * `returnorder` - Return Order - * `returnorderlineitem` - Return Order Line Item - * `returnorderextraline` - Return Order Extra Line - * `transferorder` - Transfer Order - * `transferorderlineitem` - Transfer Order Line Item - DataImportSessionStatusEnum: - enum: - - 0 - - 10 - - 20 - - 30 - - 40 - type: integer - description: |- - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - DataImporterModel: - type: object - description: Model references to map info that might get imported. - properties: - serializer: - type: string - readOnly: true - model_type: - type: string - readOnly: true - api_url: - type: string - format: uri - readOnly: true - nullable: true - required: - - model_type - - serializer - DataOutput: - type: object - description: Serializer for the DataOutput model. - properties: - pk: - type: integer - readOnly: true - title: ID - created: - type: string - format: date - readOnly: true - user: - type: integer - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - total: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - progress: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - complete: - type: boolean - output_type: - type: string - nullable: true - maxLength: 100 - template_name: - type: string - nullable: true - maxLength: 100 - plugin: - type: string - nullable: true - maxLength: 100 - output: - type: string - format: uri - readOnly: true - nullable: true - errors: - nullable: true - required: - - created - - pk - - user_detail - DefaultLocation: - type: object - description: |- - Brief serializer for a StockLocation object. - - Defined here, rather than stock.serializers, to negotiate circular imports. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - DirectionEnum: - enum: - - I - - O - type: string - description: |- - * `I` - Inbound - * `O` - Outbound - DuplicateOrder: - type: object - description: Serializer for specifying options when duplicating an order. - properties: - order_id: - type: integer - description: ID of the order to duplicate - copy_lines: - type: boolean - default: true - description: Copy line items from the original order - copy_extra_lines: - type: boolean - default: true - description: Copy extra line items from the original order - copy_parameters: - type: boolean - default: true - description: Copy order parameters from the original order - required: - - order_id - DuplicatePart: - type: object - description: |- - Serializer for specifying options when duplicating a Part. - - The fields in this serializer control how the Part is duplicated. - properties: - part: - type: integer - title: Original Part - description: Select original part to duplicate - copy_image: - type: boolean - default: false - description: Copy image from original part - copy_bom: - type: boolean - default: false - description: Copy bill of materials from original part - copy_parameters: - type: boolean - default: false - description: Copy parameter data from original part - copy_notes: - type: boolean - default: true - description: Copy notes from original part - copy_tests: - type: boolean - default: false - description: Copy test templates from original part - required: - - part - EmailMessage: - type: object - description: Serializer for the EmailMessage model. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Global ID - description: Unique identifier for this message - global_id: - type: string - format: uuid - readOnly: true - description: Unique identifier for this message - message_id_key: - type: string - nullable: true - title: Message ID - description: Identifier for this message (might be supplied by external - system) - maxLength: 250 - thread_id_key: - type: string - nullable: true - title: Thread ID - description: Identifier for this message thread (might be supplied by external - system) - maxLength: 250 - thread: - type: string - format: uuid - description: Linked thread for this message - nullable: true - subject: - type: string - maxLength: 250 - body: - type: string - to: - type: string - format: email - maxLength: 254 - sender: - type: string - format: email - maxLength: 254 - status: - nullable: true - oneOf: - - $ref: '#/components/schemas/EmailMessageStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - timestamp: - type: string - format: date-time - readOnly: true - headers: - nullable: true - full_message: - type: string - nullable: true - direction: - nullable: true - oneOf: - - $ref: '#/components/schemas/DirectionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - priority: - allOf: - - $ref: '#/components/schemas/PriorityEnum' - minimum: -9223372036854775808 - maximum: 9223372036854775807 - error_code: - type: string - nullable: true - maxLength: 50 - error_message: - type: string - nullable: true - error_timestamp: - type: string - format: date-time - nullable: true - delivery_options: - nullable: true - required: - - body - - global_id - - pk - - priority - - sender - - subject - - timestamp - - to - EmailMessageStatusEnum: - enum: - - A - - S - - F - - D - - R - - C - type: string - description: |- - * `A` - Announced - * `S` - Sent - * `F` - Failed - * `D` - Delivered - * `R` - Read - * `C` - Confirmed - ErrorMessage: - type: object - description: DRF serializer for server error messages. - properties: - when: - type: string - format: date-time - readOnly: true - info: - type: string - readOnly: true - data: - type: string - readOnly: true - nullable: true - path: - type: string - format: uri - readOnly: true - nullable: true - maxLength: 200 - pk: - type: integer - readOnly: true - title: ID - required: - - info - - pk - - when - ExtendedUser: - type: object - description: Serializer for a User with a bit more info. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - required: - - email - - first_name - - groups - - last_name - - pk - - profile - - username - FailedTask: - type: object - description: Serializer for an individual failed task object. - properties: - pk: - type: string - readOnly: true - name: - type: string - readOnly: true - description: Optional human-readable name for lookup and display. - func: - type: string - title: Function - description: Dotted import path to the callable, e.g. myapp.tasks.job. - maxLength: 256 - args: - type: string - readOnly: true - nullable: true - title: Arguments - description: Pickled positional arguments (tuple). - kwargs: - type: string - readOnly: true - nullable: true - title: Keyword arguments - description: Pickled keyword arguments (dict). - started: - type: string - format: date-time - readOnly: true - title: Started at - description: When the worker started executing the task. - stopped: - type: string - format: date-time - readOnly: true - title: Stopped at - description: When the worker finished (success or failure). - attempt_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: How many times execution was attempted. - result: - type: string - required: - - func - - name - - pk - - result - - started - - stopped - Flag: - type: object - description: Serializer for feature flags. - properties: - key: - type: string - readOnly: true - state: - type: string - readOnly: true - conditions: - type: array - items: - type: object - additionalProperties: {} - readOnly: true - nullable: true - required: - - key - - state - FlowsEnum: - type: string - enum: - - provider_redirect - - provider_token - GenerateBatchCode: - type: object - description: |- - Serializer for generating a batch code. - - Any of the provided write-only fields can be used for additional context. - properties: - batch_code: - type: string - readOnly: true - description: Generated batch code - build_order: - type: integer - nullable: true - description: Select build order - item: - type: integer - nullable: true - title: Stock Item - description: Select stock item to generate batch code for - location: - type: integer - nullable: true - description: Select location to generate batch code for - part: - type: integer - nullable: true - description: Select part to generate batch code for - purchase_order: - type: integer - nullable: true - description: Select purchase order - quantity: - type: number - format: double - nullable: true - description: Enter quantity for batch code - required: - - batch_code - GenerateSerialNumber: - type: object - description: |- - Serializer for generating one or multiple serial numbers. - - Any of the provided write-only fields can be used for additional context. - - Note that in the case where multiple serial numbers are required, - the "serial_number" field will return a string with multiple serial numbers - separated by a comma. - properties: - serial_number: - type: string - readOnly: true - nullable: true - description: Generated serial number - part: - type: integer - nullable: true - description: Select part to generate serial number for - quantity: - type: integer - default: 1 - description: Quantity of serial numbers to generate - GenericStateClass: - type: object - description: API serializer for generic state class information. - properties: - status_class: - type: string - readOnly: true - title: Class - values: - type: object - additionalProperties: - $ref: '#/components/schemas/GenericStateValue' - required: - - status_class - - values - GenericStateValue: - type: object - description: API serializer for generic state information. - properties: - key: - type: integer - logical_key: - type: string - name: - type: string - label: - type: string - color: - type: string - custom: - type: boolean - required: - - key - - label - - name - GetAuthToken: - type: object - description: Serializer for the GetAuthToken API endpoint. - properties: - token: - type: string - readOnly: true - name: - type: string - expiry: - type: string - format: date - readOnly: true - required: - - expiry - - name - - token - GetSimpleLogin: - type: object - description: Serializer for the simple login view. - properties: - email: - type: string - required: - - email - GlobalSettings: - type: object - description: Serializer for the InvenTreeSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - read_only: - type: boolean - description: Indicates if the setting is overridden by an environment variable - readOnly: true - title: Override - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - name - - pk - - read_only - - typ - - type - - units - - value - Group: - type: object - description: Serializer for a 'Group'. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - maxLength: 150 - permissions: - type: object - additionalProperties: {} - description: Return a list of permissions associated with the group. - readOnly: true - nullable: true - roles: - type: array - items: - $ref: '#/components/schemas/RuleSet' - readOnly: true - nullable: true - users: - type: array - items: - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - name - - pk - HealthCheckStatus: - type: object - description: Status of the overall system health. - properties: - status: - allOf: - - $ref: '#/components/schemas/HealthCheckStatusStatusEnum' - readOnly: true - default: ok - description: |- - Health status of the InvenTree server - - * `ok` - ok - * `loading` - loading - required: - - status - HealthCheckStatusStatusEnum: - enum: - - ok - - loading - type: string - description: |- - * `ok` - ok - * `loading` - loading - Icon: - type: object - description: Serializer for an icon. - properties: - name: - type: string - category: - type: string - tags: - type: array - items: - type: string - variants: - type: object - additionalProperties: - type: string - required: - - category - - name - - tags - - variants - IconPackage: - type: object - description: Serializer for a list of icons. - properties: - name: - type: string - prefix: - type: string - fonts: - type: object - additionalProperties: - type: string - icons: - type: object - additionalProperties: - $ref: '#/components/schemas/Icon' - required: - - fonts - - icons - - name - - prefix - IdEnum: - type: string - enum: - - login - - login_by_code - - mfa_authenticate - - mfa_reauthenticate - - provider_redirect - - provider_signup - - provider_token - - reauthenticate - - signup - - verify_email - - verify_phone - ImportParameter: - type: object - description: Serializer for a ImportParameter. - properties: - name: - type: string - value: - type: string - parameter_template: - type: integer - nullable: true - description: Return the ID of the parameter template if available. - readOnly: true - on_category: - type: boolean - required: - - name - - on_category - - value - ImportRequest: - type: object - description: Serializer for the import request. - properties: - plugin: - type: string - supplier: - type: string - part_import_id: - type: string - category_id: - type: integer - nullable: true - part_id: - type: integer - nullable: true - required: - - part_import_id - - plugin - - supplier - ImportResult: - type: object - description: Serializer for the import result. - properties: - part_id: - type: integer - part_detail: - $ref: '#/components/schemas/Part' - manufacturer_part_id: - type: integer - supplier_part_id: - type: integer - pricing: - type: array - items: - type: array - items: - type: number - format: double - minLength: 2 - maxLength: 2 - description: Return the pricing data as a dictionary. - readOnly: true - parameters: - type: array - items: - $ref: '#/components/schemas/ImportParameter' - required: - - manufacturer_part_id - - parameters - - part_detail - - part_id - - pricing - - supplier_part_id - InfoApi: - type: object - description: InvenTree server information - some information might be blanked - if called without elevated credentials. - properties: - server: - type: string - readOnly: true - id: - type: string - readOnly: true - nullable: true - version: - type: string - readOnly: true - instance: - type: string - readOnly: true - apiVersion: - type: integer - readOnly: true - worker_running: - type: boolean - readOnly: true - worker_count: - type: integer - readOnly: true - worker_pending_tasks: - type: integer - readOnly: true - plugins_enabled: - type: boolean - readOnly: true - plugins_install_disabled: - type: boolean - readOnly: true - active_plugins: - readOnly: true - email_configured: - type: boolean - readOnly: true - debug_mode: - type: boolean - readOnly: true - docker_mode: - type: boolean - readOnly: true - default_locale: - type: string - readOnly: true - customize: - allOf: - - $ref: '#/components/schemas/Customize' - readOnly: true - system_health: - type: boolean - readOnly: true - database: - type: string - readOnly: true - platform: - type: string - readOnly: true - installer: - type: string - readOnly: true - target: - type: string - readOnly: true - nullable: true - django_admin: - type: string - readOnly: true - settings: - allOf: - - $ref: '#/components/schemas/Settings' - readOnly: true - required: - - active_plugins - - apiVersion - - customize - - database - - debug_mode - - default_locale - - django_admin - - docker_mode - - email_configured - - installer - - instance - - platform - - plugins_enabled - - plugins_install_disabled - - server - - settings - - system_health - - version - - worker_count - - worker_pending_tasks - - worker_running - InitialStock: - type: object - description: Serializer for creating initial stock quantity. - properties: - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - title: Initial Stock Quantity - description: Specify initial stock quantity for this Part. If quantity is - zero, no stock is added. - location: - type: integer - nullable: true - title: Initial Stock Location - description: Specify initial stock location for this Part - required: - - quantity - InitialSupplier: - type: object - description: Serializer for adding initial supplier / manufacturer information. - properties: - supplier: - type: integer - nullable: true - description: Select supplier (or leave blank to skip) - sku: - type: string - description: Supplier stock keeping unit - maxLength: 100 - manufacturer: - type: integer - nullable: true - description: Select manufacturer (or leave blank to skip) - mpn: - type: string - description: Manufacturer part number - maxLength: 100 - InstallStockItem: - type: object - description: Serializer for installing a stock item into a given part. - properties: - stock_item: - type: integer - description: Select stock item to install - quantity: - type: integer - minimum: 1 - default: 1 - title: Quantity to Install - description: Enter the quantity of items to install - note: - type: string - description: Add transaction note (optional) - required: - - stock_item - IsTrueEnum: - type: boolean - enum: - - true - ItemTypeEnum: - enum: - - all - - untracked - - tracked - type: string - description: |- - * `all` - All Items - * `untracked` - Untracked Items - * `tracked` - Tracked Items - LabelPrint: - type: object - description: Serializer class for printing a label. - properties: - template: - type: integer - description: Select label template - plugin: - type: string - title: Printing Plugin - description: Select plugin to use for label printing - items: - type: array - items: - type: integer - description: List of item primary keys to include in the report - required: - - items - - template - LabelTemplate: - type: object - description: Serializer class for label template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: - type: number - format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm - required: - - description - - model_type - - name - - pk - - revision - - template - LicenseView: - type: object - description: Serializer for license information. - properties: - backend: - type: array - items: {} - readOnly: true - description: Backend licenses texts - frontend: - type: array - items: {} - readOnly: true - description: Frontend licenses texts - required: - - backend - - frontend - Link: - type: object - description: Serializer for all possible links. - properties: - doc: - type: string - format: uri - code: - type: string - format: uri - app: - type: string - format: uri - bug: - type: string - format: uri - required: - - app - - bug - - code - - doc - LocatePlugin: - type: object - description: Serializer for the LocatePluginView API endpoint. - properties: - plugin: - type: string - description: Plugin to use for location identification - item: - type: integer - description: StockItem to identify - location: - type: integer - description: StockLocation to identify - required: - - plugin - Location: - type: object - description: Detailed information about a stock location. - properties: - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - name: - type: string - description: Name - maxLength: 100 - level: - type: integer - readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer - nullable: true - title: Parent Location - description: Parent stock location - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - items: - type: integer - readOnly: true - title: Stock Items - sublocations: - type: integer - readOnly: true - owner: - type: integer - nullable: true - description: Select Owner - icon: - type: string - readOnly: true - custom_icon: - type: string - nullable: true - title: Icon - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: - type: integer - nullable: true - description: Stock location type of this location - location_type_detail: - allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - barcode_hash - - icon - - items - - level - - name - - pathstring - - pk - - sublocations - LocationBrief: - type: object - description: Provides a brief serializer for a StockLocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - pathstring: - type: string - title: Path - description: Path - maxLength: 250 - required: - - name - - pk - LocationTree: - type: object - description: Serializer for a simple tree view. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - parent: - type: integer - nullable: true - icon: - type: string - description: |- - Get the current icon used for this location. - - The icon field on this model takes precedences over the possibly assigned stock location type - readOnly: true - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - sublocations: - type: integer - readOnly: true - required: - - icon - - name - - pk - - sublocations - LoginMethodsEnum: - type: string - enum: - - email - - username - MachineConfig: - type: object - description: Serializer for a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - readOnly: true - description: Type of machine - driver: - type: string - readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type - - name - - pk - - properties - - restart_required - - status - - status_text - MachineConfigCreate: - type: object - description: Serializer for creating a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - description: Type of machine - maxLength: 255 - driver: - type: string - description: Driver used for the machine - maxLength: 255 - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - required: - - driver - - initialized - - is_driver_available - - machine_errors - - machine_type - - name - - pk - - properties - - restart_required - - status - - status_text - MachineDriver: - type: object - description: Machine drivers. - properties: - slug: - type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: - type: string - description: - type: string - provider_file: - type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} - nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - machine_type: - type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - driver_errors: - type: array - items: - type: string - description: Errors registered against driver. - readOnly: true - required: - - description - - driver_errors - - is_builtin - - machine_type - - name - - provider_file - - slug - MachineProperty: - type: object - description: Machine Properties are set by the driver/machine to represent specific - state. - properties: - key: - type: string - description: Key of the property - value: - type: string - description: Value of the property - group: - type: string - description: Grouping of the property - type: - allOf: - - $ref: '#/components/schemas/MachinePropertyTypeEnum' - default: str - description: |- - Type of the property - - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - max_progress: - type: integer - nullable: true - description: Maximum value for progress type, required if type=progress - required: - - key - - value - MachinePropertyTypeEnum: - enum: - - str - - bool - - progress - - int - - float - type: string - description: |- - * `str` - str - * `bool` - bool - * `progress` - progress - * `int` - int - * `float` - float - MachineRegistryError: - type: object - description: Machine registry error. - properties: - message: - type: string - required: - - message - MachineRegistryStatus: - type: object - description: Machine registry status, showing all errors that were registered. - properties: - registry_errors: - type: array - items: - $ref: '#/components/schemas/MachineRegistryError' - required: - - registry_errors - MachineRestart: - type: object - description: Serializer for the machine restart response. - properties: - ok: - type: boolean - required: - - ok - MachineSetting: - type: object - description: Serializer for the MachineSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - required: - - choices - - config_type - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - required - - typ - - type - - units - - value - MachineType: - type: object - description: Available machine types. - properties: - slug: - type: string - pattern: ^[-a-zA-Z0-9_]+$ - name: - type: string - description: - type: string - provider_file: - type: string - description: File that contains the class definition. - readOnly: true - provider_plugin: - type: object - additionalProperties: {} - nullable: true - description: Plugin(s) that contain(s) the class definition. - readOnly: true - is_builtin: - type: boolean - description: Indicates if the machine type is build into the InvenTree source - code. - readOnly: true - required: - - description - - is_builtin - - name - - provider_file - - slug - ManufacturerPart: - type: object - description: Serializer for ManufacturerPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - pretty_name: - type: string - readOnly: true - nullable: true - manufacturer: - type: integer - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - description: - type: string - nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: - type: string - nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string - format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - manufacturer - - part - - pk - MeUser: - type: object - description: API serializer specifically for the 'me' endpoint. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - required: - - email - - first_name - - groups - - is_active - - is_staff - - is_superuser - - last_name - - pk - - profile - - username - Metadata: - type: object - description: Serializer class for model metadata API access. - properties: - metadata: {} - required: - - metadata - ModelTypeF01Enum: - enum: - - build.build - - company.company - - company.manufacturerpart - - company.supplierpart - - order.purchaseorder - - order.repairorder - - order.returnorder - - order.salesorder - - order.salesordershipment - - order.transferorder - - part.part - - stock.stocklocation - type: string - description: |- - * `build.build` - Build Order - * `company.company` - Company - * `company.manufacturerpart` - Manufacturer Part - * `company.supplierpart` - Supplier Part - * `order.purchaseorder` - Purchase Order - * `order.repairorder` - Repair Order - * `order.returnorder` - Return Order - * `order.salesorder` - Sales Order - * `order.salesordershipment` - Sales Order Shipment - * `order.transferorder` - Transfer Order - * `part.part` - Part - * `stock.stocklocation` - Stock Location - NameEnum: - enum: - - admin - - part_category - - part - - bom - - stock_location - - stock - - build - - purchase_order - - sales_order - - return_order - - transfer_order - - repair_order - type: string - description: |- - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - NewsFeedEntry: - type: object - description: Serializer for the NewsFeedEntry model. - properties: - pk: - type: integer - readOnly: true - title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: - type: string - format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: - type: string - maxLength: 250 - read: - type: boolean - required: - - author - - feed_id - - link - - pk - - published - - read - - summary - - title - NotesImage: - type: object - description: Serializer for the NotesImage model. - properties: - pk: - type: integer - readOnly: true - title: ID - image: - type: string - format: uri - user: - type: integer - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - model_type: - type: string - nullable: true - description: Target model type for this image - maxLength: 100 - model_id: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Target model ID for this image - required: - - date - - image - - pk - NotificationMessage: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. - readOnly: true - user: - type: integer - readOnly: true - category: - type: string - readOnly: true - name: - type: string - readOnly: true - message: - type: string - readOnly: true - nullable: true - creation: - type: string - format: date-time - readOnly: true - age: - type: integer - description: Age of the message in seconds. - readOnly: true - age_human: - type: string - description: Humanized age. - readOnly: true - read: - type: boolean - required: - - age - - age_human - - category - - creation - - name - - pk - - read - - source - - target - - user - NullEnum: - enum: - - null - ObservabilityEnd: - type: object - description: Serializer for observability end endpoint. - properties: - traceid: - type: string - description: Trace ID to end - maxLength: 128 - service: - type: string - description: Service name - maxLength: 128 - required: - - service - - traceid - OutcomeEnum: - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - - 60 - type: integer - description: |- - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - Owner: - type: object - description: Serializer for an "Owner" (either a "user" or a "group"). - properties: - pk: - type: integer - readOnly: true - title: ID - owner_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - nullable: true - owner_model: - type: string - readOnly: true - name: - type: string - readOnly: true - label: - type: string - readOnly: true - required: - - label - - name - - owner_model - - pk - PageSizeEnum: - enum: - - A4 - - A3 - - Legal - - Letter - type: string - description: |- - * `A4` - A4 - * `A3` - A3 - * `Legal` - Legal - * `Letter` - Letter - PaginatedAddressList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Address' - PaginatedApiTokenList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ApiToken' - PaginatedAttachmentList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Attachment' - PaginatedBarcodeScanResultList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BarcodeScanResult' - PaginatedBomItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BomItem' - PaginatedBomItemSubstituteList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - PaginatedBuildItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BuildItem' - PaginatedBuildLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/BuildLine' - PaginatedBuildList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Build' - PaginatedCategoryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Category' - PaginatedCategoryParameterTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CategoryParameterTemplate' - PaginatedCategoryTreeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CategoryTree' - PaginatedCompanyList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Company' - PaginatedContactList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Contact' - PaginatedContentTypeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ContentType' - PaginatedCustomStateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CustomState' - PaginatedCustomUnitList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/CustomUnit' - PaginatedDataImportColumnMapList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - PaginatedDataImportRowList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportRow' - PaginatedDataImportSessionList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataImportSession' - PaginatedDataOutputList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/DataOutput' - PaginatedEmailMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/EmailMessage' - PaginatedErrorMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ErrorMessage' - PaginatedFailedTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/FailedTask' - PaginatedGlobalSettingsList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/GlobalSettings' - PaginatedGroupList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Group' - PaginatedIconPackageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/IconPackage' - PaginatedLabelTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/LabelTemplate' - PaginatedLocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Location' - PaginatedLocationTreeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/LocationTree' - PaginatedMachineConfigList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/MachineConfig' - PaginatedManufacturerPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ManufacturerPart' - PaginatedNewsFeedEntryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NewsFeedEntry' - PaginatedNotesImageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NotesImage' - PaginatedNotificationMessageList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/NotificationMessage' - PaginatedOwnerList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Owner' - PaginatedParameterList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Parameter' - PaginatedParameterTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ParameterTemplate' - PaginatedPartInternalPriceList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartInternalPrice' - PaginatedPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/Part' - PaginatedPartRelationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartRelation' - PaginatedPartSalePriceList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - PaginatedPartStocktakeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartStocktake' - PaginatedPartTestTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartTestTemplate' - PaginatedPartThumbList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PartThumb' - PaginatedPendingTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PendingTask' - PaginatedPluginConfigList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PluginConfig' - PaginatedPluginSettingList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PluginSetting' - PaginatedProjectCodeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ProjectCode' - PaginatedPurchaseOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderExtraLine' - PaginatedPurchaseOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderLineItem' - PaginatedPurchaseOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/PurchaseOrder' - PaginatedRepairOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrderAllocation' - PaginatedRepairOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrderLineItem' - PaginatedRepairOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RepairOrder' - PaginatedReportAssetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportAsset' - PaginatedReportSnippetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportSnippet' - PaginatedReportTemplateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReportTemplate' - PaginatedReturnOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrderExtraLine' - PaginatedReturnOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrderLineItem' - PaginatedReturnOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ReturnOrder' - PaginatedRuleSetList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/RuleSet' - PaginatedSalesOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderAllocation' - PaginatedSalesOrderExtraLineList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderExtraLine' - PaginatedSalesOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderLineItem' - PaginatedSalesOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrder' - PaginatedSalesOrderShipmentList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipment' - PaginatedScheduledTaskList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/ScheduledTask' - PaginatedSelectionEntryList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - PaginatedSelectionListList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SelectionList' - PaginatedStockItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItem' - PaginatedStockItemTestResultList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - PaginatedStockLocationTypeList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockLocationType' - PaginatedStockTrackingList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/StockTracking' - PaginatedSupplierPartList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPart' - PaginatedSupplierPriceBreakList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreak' - PaginatedTransferOrderAllocationList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocation' - PaginatedTransferOrderLineItemList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrderLineItem' - PaginatedTransferOrderList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/TransferOrder' - PaginatedUserCreateList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserCreate' - PaginatedUserSettingsList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=400&limit=100 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?offset=200&limit=100 - results: - type: array - items: - $ref: '#/components/schemas/UserSettings' - Parameter: - type: object - description: Serializer for the Parameter model. - properties: - pk: - type: integer - readOnly: true - title: ID - template: - type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeF01Enum' - default: '' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: ID of the target model for this parameter - data: - type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: - type: number - format: double - nullable: true - note: - type: string - description: Optional note field - maxLength: 500 - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - updated_by: - type: integer - readOnly: true - nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - data - - model_id - - pk - - template - - template_detail - ParameterTemplate: - type: object - description: Serializer for the ParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Parameter Name - maxLength: 100 - units: - type: string - description: Physical units for this parameter - maxLength: 25 - description: - type: string - description: Parameter description - maxLength: 250 - model_type: - nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeF01Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: - type: boolean - description: Is this parameter a checkbox? - choices: - type: string - description: Valid choices for this parameter (comma-separated) - maxLength: 5000 - selectionlist: - type: integer - nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? - required: - - name - - pk - Part: - type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. - properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category: - type: integer - nullable: true - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - category_name: - type: string - readOnly: true - component: - type: boolean - description: Can this part be used to build other parts? - creation_date: - type: string - format: date - readOnly: true - nullable: true - creation_user: - type: integer - nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_location_detail: - allOf: - - $ref: '#/components/schemas/DefaultLocation' - readOnly: true - nullable: true - description: - type: string - description: Part description (optional) - maxLength: 250 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - image: - type: string - format: uri - nullable: true - existing_image: - type: string - writeOnly: true - description: Filename of an existing part image - IPN: - type: string - default: '' - maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: - type: string - nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - locked: - type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: - type: string - description: Part name - maxLength: 100 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - pk: - type: integer - readOnly: true - title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: - type: string - nullable: true - default: '' - maxLength: 100 - revision_of: - type: integer - nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer - readOnly: true - nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: - type: boolean - description: Return "true" if the part is starred by the current user. - readOnly: true - thumbnail: - type: string - readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: - type: integer - nullable: true - description: Is this part a variant of another part? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - responsible: - type: integer - nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - readOnly: true - nullable: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - nullable: true - allocated_to_sales_orders: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: - type: number - format: double - readOnly: true - nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: - type: integer - readOnly: true - nullable: true - in_stock: - type: number - format: double - readOnly: true - nullable: true - ordering: - type: number - format: double - readOnly: true - nullable: true - title: On Order - required_for_build_orders: - type: integer - readOnly: true - nullable: true - required_for_sales_orders: - type: integer - readOnly: true - nullable: true - stock_item_count: - type: integer - readOnly: true - nullable: true - title: Stock Items - total_in_stock: - type: number - format: double - readOnly: true - nullable: true - title: Total Stock - external_stock: - type: number - format: double - readOnly: true - nullable: true - unallocated_stock: - type: number - format: double - readOnly: true - nullable: true - variant_stock: - type: number - format: double - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: - allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: - type: boolean - writeOnly: true - default: true - description: Copy parameter templates from selected part category - tags: - type: array - items: - type: string - required: - - barcode_hash - - category_name - - full_name - - name - - pk - - starred - - thumbnail - PartBomValidate: - type: object - description: Serializer for Part BOM information. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: - type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: - type: integer - readOnly: true - nullable: true - bom_checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - bom_checked_date: - type: string - format: date - readOnly: true - nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - required: - - bom_checksum - - bom_validated - - pk - PartBrief: - type: object - description: Serializer for Part (brief detail). - properties: - pk: - type: integer - readOnly: true - title: ID - IPN: - type: string - nullable: true - description: Internal Part Number - maxLength: 100 - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category_default_location: - type: integer - readOnly: true - nullable: true - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - name: - type: string - description: Part name - maxLength: 100 - revision: - type: string - nullable: true - default: '' - maxLength: 100 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - description: - type: string - description: Part description (optional) - maxLength: 250 - image: - type: string - format: uri - readOnly: true - nullable: true - thumbnail: - type: string - readOnly: true - active: - type: boolean - description: Is this part active? - locked: - type: boolean - description: Locked parts cannot be edited - assembly: - type: boolean - description: Can this part be built from other parts? - component: - type: boolean - description: Can this part be used to build other parts? - minimum_stock: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - description: Minimum allowed stock level - is_template: - type: boolean - description: Is this part a template part? - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - salable: - type: boolean - description: Can this part be sold to customers? - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - required: - - barcode_hash - - full_name - - name - - pk - - thumbnail - PartCopyBOM: - type: object - description: Serializer for copying a BOM from another part. - properties: - part: - type: integer - description: Select part to copy BOM from - remove_existing: - type: boolean - default: true - title: Remove Existing Data - description: Remove existing BOM items before copying - include_inherited: - type: boolean - default: false - description: Include BOM items which are inherited from templated parts - skip_invalid: - type: boolean - default: false - title: Skip Invalid Rows - description: Enable this option to skip invalid rows - copy_substitutes: - type: boolean - default: true - title: Copy Substitute Parts - description: Copy substitute parts when duplicate BOM items - required: - - part - PartInternalPrice: - type: object - description: Serializer for internal prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - required: - - part - - pk - - quantity - PartPricing: - type: object - description: Serializer for Part pricing information. - properties: - currency: - type: string - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - scheduled_for_update: - type: boolean - readOnly: true - bom_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - bom_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - override_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - overall_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - required: - - scheduled_for_update - PartRelation: - type: object - description: Serializer for a PartRelated model. - properties: - pk: - type: integer - readOnly: true - title: ID - part_1: - type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - part_2: - type: integer - description: Select Related Part - part_2_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - note: - type: string - description: Note for this relationship - maxLength: 500 - required: - - part_1 - - part_1_detail - - part_2 - - part_2_detail - - pk - PartRequirements: - type: object - description: Serializer for Part requirements. - properties: - total_stock: - type: number - format: double - readOnly: true - unallocated_stock: - type: number - format: double - readOnly: true - title: Available Stock - can_build: - type: number - format: double - readOnly: true - ordering: - type: number - format: double - readOnly: true - title: On Order - building: - type: number - format: double - readOnly: true - title: In Production - scheduled_to_build: - type: integer - readOnly: true - required_for_build_orders: - type: number - format: double - readOnly: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - required_for_sales_orders: - type: number - format: double - readOnly: true - allocated_to_sales_orders: - type: number - format: double - description: Return the allocated sales order quantity. - readOnly: true - required: - - allocated_to_build_orders - - allocated_to_sales_orders - - building - - can_build - - ordering - - required_for_build_orders - - required_for_sales_orders - - scheduled_to_build - - total_stock - - unallocated_stock - PartSalePrice: - type: object - description: Serializer for sale prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - required: - - part - - pk - - quantity - PartSerialNumber: - type: object - description: Serializer for Part serial number information. - properties: - latest: - type: string - readOnly: true - nullable: true - next: - type: string - readOnly: true - required: - - next - PartStocktake: - type: object - description: Serializer for the PartStocktake model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Part for stocktake - part_name: - type: string - readOnly: true - part_ipn: - type: string - readOnly: true - nullable: true - part_description: - type: string - readOnly: true - nullable: true - date: - type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_min_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_max_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - required: - - date - - part - - part_name - - pk - - quantity - PartStocktakeGenerate: - type: object - description: Serializer for generating PartStocktake entries. - properties: - part: - type: integer - nullable: true - description: Select a part to generate stocktake information for that part - (and any variant parts) - category: - type: integer - nullable: true - description: Select a category to include all parts within that category - (and subcategories) - location: - type: integer - nullable: true - description: Select a location to include all parts with stock in that location - (including sub-locations) - generate_entry: - type: boolean - writeOnly: true - default: false - title: Generate Stocktake Entries - description: Save stocktake entries for the selected parts - generate_report: - type: boolean - writeOnly: true - default: false - description: Generate a stocktake report for the selected parts - output: - allOf: - - $ref: '#/components/schemas/DataOutput' - readOnly: true - required: - - output - PartTestTemplate: - type: object - description: Serializer for the PartTestTemplate class. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - part: - type: integer - test_name: - type: string - description: Enter a name for the test - maxLength: 100 - description: - type: string - nullable: true - title: Test Description - description: Enter description for this test - maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: - type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - required: - - key - - part - - pk - - results - - test_name - PartThumb: - type: object - description: |- - Serializer for the 'image' field of the Part model. - - Used to serve and display existing Part images. - properties: - image: - type: string - format: uri - readOnly: true - count: - type: integer - readOnly: true - required: - - count - - image - PartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: - type: string - format: uri - required: - - image - PatchedAddress: - type: object - description: Serializer for the Address Model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - description: Select company - title: - type: string - title: Address title - description: Title describing the address entry - maxLength: 100 - primary: - type: boolean - title: Primary address - description: Set as primary address - line1: - type: string - title: Line 1 - description: Address line 1 - maxLength: 50 - line2: - type: string - title: Line 2 - description: Address line 2 - maxLength: 50 - postal_code: - type: string - description: Postal code - maxLength: 10 - postal_city: - type: string - title: City/Region - description: Postal code city/region - maxLength: 50 - province: - type: string - title: State/Province - description: State or province - maxLength: 50 - country: - type: string - description: Address country - maxLength: 50 - shipping_notes: - type: string - title: Courier shipping notes - description: Notes for shipping courier - maxLength: 100 - internal_shipping_notes: - type: string - description: Shipping notes for internal use - maxLength: 100 - link: - type: string - format: uri - description: Link to address information (external) - maxLength: 2000 - PatchedAttachment: - type: object - description: Serializer class for the Attachment model. - properties: - pk: - type: integer - readOnly: true - title: ID - attachment: - type: string - format: uri - nullable: true - thumbnail: - type: string - format: uri - readOnly: true - nullable: true - filename: - type: string - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - comment: - type: string - description: Attachment comment - maxLength: 250 - is_image: - type: boolean - readOnly: true - description: True if this attachment is a valid image file - upload_date: - type: string - format: date - readOnly: true - upload_user: - type: integer - readOnly: true - nullable: true - title: User - description: User - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - file_size: - type: integer - readOnly: true - description: File size in bytes - model_type: - $ref: '#/components/schemas/AttachmentModelTypeEnum' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - tags: - type: array - items: - type: string - PatchedBomItem: - type: object - description: Serializer for BomItem object. - properties: - part: - type: integer - title: Assembly - description: Select the parent assembly - sub_part: - type: integer - title: Component - description: Select the component part - reference: - type: string - description: BOM item reference - maxLength: 5000 - raw_amount: - type: string - title: Amount - description: Amount required for this item (can include units) - quantity: - type: number - format: double - allow_variants: - type: boolean - description: Stock items for variant parts can be used for this BOM item - inherited: - type: boolean - title: Gets inherited - description: This BOM item is inherited by BOMs for variant parts - optional: - type: boolean - description: This BOM item is optional - consumable: - type: boolean - description: This BOM item is consumable (it is not tracked in build orders) - setup_quantity: - type: number - format: double - attrition: - type: number - format: double - rounding_multiple: - type: number - format: double - nullable: true - note: - type: string - description: BOM item notes - maxLength: 500 - pk: - type: integer - readOnly: true - title: ID - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_min_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max_total: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - substitutes: - type: array - items: - $ref: '#/components/schemas/BomItemSubstitute' - readOnly: true - nullable: true - validated: - type: boolean - description: This BOM item has been validated - available_stock: - type: number - format: double - readOnly: true - nullable: true - available_substitute_stock: - type: number - format: double - readOnly: true - nullable: true - available_variant_stock: - type: number - format: double - readOnly: true - nullable: true - external_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - title: In Production - can_build: - type: number - format: double - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - sub_part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Component - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - PatchedBomItemSubstitute: - type: object - description: Serializer for the BomItemSubstitute class. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_item: - type: integer - description: Parent BOM item - part: - type: integer - description: Substitute part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - PatchedBomItemValidation: - type: object - description: Simple serializer for passing a single boolean field. - properties: - valid: - type: boolean - default: false - PatchedBuild: - type: object - description: Serializes a Build object. - properties: - pk: - type: integer - readOnly: true - title: ID - title: - type: string - title: Description - description: Brief description of the build (optional) - maxLength: 100 - barcode_hash: - type: string - readOnly: true - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this build output - maxLength: 100 - creation_date: - type: string - format: date - readOnly: true - completed: - type: integer - readOnly: true - title: Completed items - description: Number of stock items which have been completed - completion_date: - type: string - format: date - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Select location where the completed items will be stored - external: - type: boolean - title: External Build - description: This build order is fulfilled externally - parent: - type: integer - nullable: true - title: Parent Build - description: Build Order to which this build is allocated - part: - type: integer - description: Select part to build - part_name: - type: string - readOnly: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - project_code: - type: integer - nullable: true - description: Project code for this build order - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - default: false - reference: - type: string - sales_order: - type: integer - nullable: true - title: Sales Order Reference - description: Sales Order to which this build is allocated - quantity: - type: number - format: double - start_date: - type: string - format: date - nullable: true - title: Build start date - description: Scheduled start date for this build order - status: - allOf: - - $ref: '#/components/schemas/BuildStatusEnum' - readOnly: true - title: Build Status - description: |- - Build status code - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Production - * `25` - On Hold - * `30` - Cancelled - * `40` - Complete - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - target_date: - type: string - format: date - nullable: true - title: Target completion date - description: Target date for build completion. Build will be overdue after - this date. - take_from: - type: integer - nullable: true - title: Source Location - description: Select location to take stock from for this build (leave blank - to take from any stock location) - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - issued_by: - type: integer - readOnly: true - nullable: true - description: User who issued this build order - issued_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - responsible: - type: integer - nullable: true - description: User or group responsible for this build order - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - priority: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - title: Build Priority - description: Priority of this build order - level: - type: integer - readOnly: true - title: Build Level - PatchedBuildItem: - type: object - description: Serializes a BuildItem object, which is an allocation of a stock - item against a build order. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - build_line: - type: integer - nullable: true - install_into: - type: integer - nullable: true - description: Destination stock item - stock_item: - type: integer - description: Source stock item - quantity: - type: number - format: double - title: Allocated Quantity - location: - type: integer - readOnly: true - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - stock_item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Stock Item - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - install_into_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - title: Install Into - bom_reference: - type: string - readOnly: true - PatchedBuildLine: - type: object - description: Serializer for a BuildItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - build: - type: integer - readOnly: true - description: Build object - bom_item: - type: integer - readOnly: true - quantity: - type: number - format: double - consumed: - type: number - format: double - allocations: - type: array - items: - $ref: '#/components/schemas/BuildItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - build_reference: - type: string - readOnly: true - reference: - type: string - readOnly: true - consumable: - type: boolean - readOnly: true - optional: - type: boolean - readOnly: true - testable: - type: boolean - readOnly: true - trackable: - type: boolean - readOnly: true - inherited: - type: boolean - readOnly: true - allow_variants: - type: boolean - readOnly: true - allocated: - type: number - format: double - readOnly: true - in_production: - type: number - format: double - readOnly: true - scheduled_to_build: - type: number - format: double - readOnly: true - on_order: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_substitute_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - external_stock: - type: number - format: double - readOnly: true - bom_item_detail: - allOf: - - $ref: '#/components/schemas/BomItem' - readOnly: true - nullable: true - title: BOM Item - assembly_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Assembly - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - title: Category - build_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - title: Build - PatchedCategory: - type: object - description: Serializer for PartCategory. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - default_location: - type: integer - nullable: true - description: Default location for parts in this category - default_keywords: - type: string - nullable: true - description: Default keywords for parts in this category - maxLength: 250 - level: - type: integer - readOnly: true - parent: - type: integer - nullable: true - title: Parent Category - description: Parent part category - part_count: - type: integer - readOnly: true - nullable: true - title: Parts - subcategories: - type: integer - readOnly: true - nullable: true - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - starred: - type: boolean - description: Return True if the category is directly "starred" by the current - user. - readOnly: true - structural: - type: boolean - description: Parts may not be directly assigned to a structural category, - but may be assigned to child categories. - icon: - type: string - nullable: true - description: Icon (optional) - maxLength: 100 - parent_default_location: - type: integer - readOnly: true - nullable: true - PatchedCategoryParameterTemplate: - type: object - description: Serializer for the PartCategoryParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - category: - type: integer - description: Part Category - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - template: - type: integer - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - default_value: - type: string - description: Default Parameter Value - maxLength: 500 - PatchedCompany: - type: object - description: Serializer for Company object (full detail). - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - title: Company name - description: Company name - maxLength: 100 - description: - type: string - title: Company description - description: Description of the company - maxLength: 500 - website: - type: string - format: uri - description: Company website URL - maxLength: 2000 - phone: - type: string - title: Phone number - description: Contact phone number - maxLength: 50 - email: - type: string - format: email - nullable: true - default: '' - currency: - type: string - description: |- - Default currency used for this supplier - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - contact: - type: string - description: Point of contact - maxLength: 100 - link: - type: string - format: uri - description: Link to external company information - maxLength: 2000 - image: - type: string - format: uri - nullable: true - active: - type: boolean - description: Is this company active? - is_customer: - type: boolean - description: Do you sell items to this company? - is_manufacturer: - type: boolean - description: Does this company manufacture parts? - is_supplier: - type: boolean - description: Do you purchase items from this company? - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parts_supplied: - type: integer - readOnly: true - parts_manufactured: - type: integer - readOnly: true - primary_address: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - tax_id: - type: string - description: Company Tax ID - maxLength: 50 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedContact: - type: object - description: Serializer class for the Contact model. - properties: - pk: - type: integer - readOnly: true - title: ID - company: - type: integer - company_name: - type: string - readOnly: true - name: - type: string - maxLength: 100 - phone: - type: string - maxLength: 100 - email: - type: string - format: email - maxLength: 254 - role: - type: string - maxLength: 100 - PatchedCustomState: - type: object - description: Serializer for the custom state model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: Value - description: Numerical value that will be saved in the models database - name: - type: string - description: Name of the state - maxLength: 250 - label: - type: string - description: Label that will be displayed in the frontend - maxLength: 250 - color: - allOf: - - $ref: '#/components/schemas/ColorEnum' - description: |- - Color that will be displayed in the frontend - - * `primary` - primary - * `secondary` - secondary - * `success` - success - * `danger` - danger - * `warning` - warning - * `info` - info - * `dark` - dark - logical_key: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: State logical key that is equal to this custom state in business - logic - model: - type: integer - nullable: true - description: Model this state is associated with - model_name: - type: string - readOnly: true - reference_status: - $ref: '#/components/schemas/ReferenceStatusEnum' - PatchedCustomUnit: - type: object - description: DRF serializer for CustomUnit model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Unit name - maxLength: 50 - symbol: - type: string - description: Optional unit symbol - maxLength: 10 - definition: - type: string - description: Unit definition - maxLength: 50 - PatchedDataImportColumnMap: - type: object - description: Serializer for the DataImportColumnMap model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - column: - type: string - maxLength: 100 - field: - type: string - readOnly: true - label: - type: string - readOnly: true - description: - type: string - readOnly: true - PatchedDataImportRow: - type: object - description: Serializer for the DataImportRow model. - properties: - pk: - type: integer - readOnly: true - title: ID - session: - type: integer - readOnly: true - title: Import Session - row_index: - type: integer - readOnly: true - row_data: - readOnly: true - nullable: true - title: Original row data - data: - nullable: true - errors: - readOnly: true - nullable: true - valid: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - PatchedDataImportSession: - type: object - description: Serializer for the DataImportSession model. - properties: - pk: - type: integer - readOnly: true - title: ID - timestamp: - type: string - format: date-time - readOnly: true - data_file: - type: string - format: uri - update_records: - type: boolean - title: Update Existing Records - description: If enabled, existing records will be updated with new data - model_type: - $ref: '#/components/schemas/DataImportSessionModelTypeEnum' - available_fields: - readOnly: true - status: - allOf: - - $ref: '#/components/schemas/DataImportSessionStatusEnum' - readOnly: true - description: |- - Import status - - * `0` - Initializing - * `10` - Mapping Columns - * `20` - Importing Data - * `30` - Processing Data - * `40` - Complete - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - columns: - readOnly: true - nullable: true - column_mappings: - type: array - items: - $ref: '#/components/schemas/DataImportColumnMap' - readOnly: true - field_defaults: - nullable: true - field_overrides: - nullable: true - field_filters: - nullable: true - row_count: - type: integer - readOnly: true - completed_row_count: - type: integer - readOnly: true - PatchedErrorMessage: - type: object - description: DRF serializer for server error messages. - properties: - when: - type: string - format: date-time - readOnly: true - info: - type: string - readOnly: true - data: - type: string - readOnly: true - nullable: true - path: - type: string - format: uri - readOnly: true - nullable: true - maxLength: 200 - pk: - type: integer - readOnly: true - title: ID - PatchedExtendedUser: - type: object - description: Serializer for a User with a bit more info. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - PatchedGlobalSettings: - type: object - description: Serializer for the InvenTreeSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - read_only: - type: boolean - description: Indicates if the setting is overridden by an environment variable - readOnly: true - title: Override - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - PatchedGroup: - type: object - description: Serializer for a 'Group'. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - maxLength: 150 - permissions: - type: object - additionalProperties: {} - description: Return a list of permissions associated with the group. - readOnly: true - nullable: true - roles: - type: array - items: - $ref: '#/components/schemas/RuleSet' - readOnly: true - nullable: true - users: - type: array - items: - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - PatchedLabelTemplate: - type: object - description: Serializer class for label template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - width: - type: number - format: double - minimum: 2 - title: Width [mm] - description: Label width, specified in mm - height: - type: number - format: double - minimum: 2 - title: Height [mm] - description: Label height, specified in mm - PatchedLocation: - type: object - description: Detailed information about a stock location. - properties: - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - name: - type: string - description: Name - maxLength: 100 - level: - type: integer - readOnly: true - description: - type: string - description: Description (optional) - maxLength: 250 - parent: - type: integer - nullable: true - title: Parent Location - description: Parent stock location - pathstring: - type: string - readOnly: true - title: Path - description: Path - path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - items: - type: integer - readOnly: true - title: Stock Items - sublocations: - type: integer - readOnly: true - owner: - type: integer - nullable: true - description: Select Owner - icon: - type: string - readOnly: true - custom_icon: - type: string - nullable: true - title: Icon - description: Icon (optional) - maxLength: 100 - structural: - type: boolean - description: Stock items may not be directly located into a structural stock - locations, but may be located to child locations. - external: - type: boolean - description: This is an external stock location - location_type: - type: integer - nullable: true - description: Stock location type of this location - location_type_detail: - allOf: - - $ref: '#/components/schemas/StockLocationType' - readOnly: true - nullable: true - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedMachineConfig: - type: object - description: Serializer for a MachineConfig. - properties: - pk: - type: string - format: uuid - readOnly: true - title: Id - name: - type: string - description: Name of machine - maxLength: 255 - machine_type: - type: string - readOnly: true - description: Type of machine - driver: - type: string - readOnly: true - description: Driver used for the machine - initialized: - type: boolean - description: Indicator if machine is initialized. - readOnly: true - active: - type: boolean - description: Machines can be disabled - status: - type: integer - description: Numerical machine status if available, else -1. - readOnly: true - status_model: - type: string - nullable: true - description: Textual machine status name if available, else None. - readOnly: true - status_text: - type: string - description: Current status text for machine. - readOnly: true - machine_errors: - type: array - items: - type: string - description: List of machine errors. - readOnly: true - is_driver_available: - type: boolean - description: Indicator if driver for machine is available. - readOnly: true - restart_required: - type: boolean - description: Indicator if machine restart is required. - readOnly: true - properties: - type: array - items: - $ref: '#/components/schemas/MachineProperty' - readOnly: true - default: [] - PatchedMachineSetting: - type: object - description: Serializer for the MachineSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - config_type: - allOf: - - $ref: '#/components/schemas/ConfigTypeEnum' - readOnly: true - PatchedManufacturerPart: - type: object - description: Serializer for ManufacturerPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - title: Base Part - description: Select part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - pretty_name: - type: string - readOnly: true - nullable: true - manufacturer: - type: integer - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - description: - type: string - nullable: true - description: Manufacturer part description - maxLength: 250 - MPN: - type: string - nullable: true - description: Manufacturer Part Number - maxLength: 100 - link: - type: string - format: uri - nullable: true - description: URL for external manufacturer part link - maxLength: 2000 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - tags: - type: array - items: - type: string - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedMeUser: - type: object - description: API serializer specifically for the 'me' endpoint. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - is_staff: - type: boolean - readOnly: true - title: Staff - description: Does this user have staff permissions - is_superuser: - type: boolean - readOnly: true - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - readOnly: true - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - readOnly: true - PatchedMetadata: - type: object - description: Serializer class for model metadata API access. - properties: - metadata: {} - PatchedNewsFeedEntry: - type: object - description: Serializer for the NewsFeedEntry model. - properties: - pk: - type: integer - readOnly: true - title: ID - feed_id: - type: string - title: Id - maxLength: 250 - title: - type: string - maxLength: 250 - link: - type: string - format: uri - maxLength: 250 - published: - type: string - format: date-time - author: - type: string - maxLength: 250 - summary: - type: string - maxLength: 250 - read: - type: boolean - PatchedNotificationMessage: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - target: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to target. - readOnly: true - source: - type: object - additionalProperties: {} - description: Function to resolve generic object reference to source. - readOnly: true - user: - type: integer - readOnly: true - category: - type: string - readOnly: true - name: - type: string - readOnly: true - message: - type: string - readOnly: true - nullable: true - creation: - type: string - format: date-time - readOnly: true - age: - type: integer - description: Age of the message in seconds. - readOnly: true - age_human: - type: string - description: Humanized age. - readOnly: true - read: - type: boolean - PatchedParameter: - type: object - description: Serializer for the Parameter model. - properties: - pk: - type: integer - readOnly: true - title: ID - template: - type: integer - description: Parameter template - model_type: - allOf: - - $ref: '#/components/schemas/ModelTypeF01Enum' - default: '' - model_id: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: ID of the target model for this parameter - data: - type: string - description: Parameter Value - maxLength: 500 - minLength: 1 - data_numeric: - type: number - format: double - nullable: true - note: - type: string - description: Optional note field - maxLength: 500 - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - updated_by: - type: integer - readOnly: true - nullable: true - title: Update By - description: User who last updated this object - template_detail: - allOf: - - $ref: '#/components/schemas/ParameterTemplate' - readOnly: true - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - PatchedParameterTemplate: - type: object - description: Serializer for the ParameterTemplate model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Parameter Name - maxLength: 100 - units: - type: string - description: Physical units for this parameter - maxLength: 25 - description: - type: string - description: Parameter description - maxLength: 250 - model_type: - nullable: true - default: '' - oneOf: - - $ref: '#/components/schemas/ModelTypeF01Enum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - checkbox: - type: boolean - description: Is this parameter a checkbox? - choices: - type: string - description: Valid choices for this parameter (comma-separated) - maxLength: 5000 - selectionlist: - type: integer - nullable: true - title: Selection List - description: Selection list for this parameter - enabled: - type: boolean - description: Is this parameter template enabled? - PatchedPart: - type: object - description: |- - Serializer for complete detail information of a part. - - Used when displaying all details of a single component. - properties: - active: - type: boolean - description: Is this part active? - assembly: - type: boolean - description: Can this part be built from other parts? - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - category: - type: integer - nullable: true - category_detail: - allOf: - - $ref: '#/components/schemas/Category' - readOnly: true - nullable: true - category_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - category_name: - type: string - readOnly: true - component: - type: boolean - description: Can this part be used to build other parts? - creation_date: - type: string - format: date - readOnly: true - nullable: true - creation_user: - type: integer - nullable: true - default_expiry: - type: integer - maximum: 9223372036854775807 - minimum: 0 - format: int64 - description: Expiry time (in days) for stock items of this part - default_location: - type: integer - nullable: true - description: Where is this item normally stored? - default_location_detail: - allOf: - - $ref: '#/components/schemas/DefaultLocation' - readOnly: true - nullable: true - description: - type: string - description: Part description (optional) - maxLength: 250 - full_name: - type: string - description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT - defined in InvenTree settings. - readOnly: true - image: - type: string - format: uri - nullable: true - existing_image: - type: string - writeOnly: true - description: Filename of an existing part image - IPN: - type: string - default: '' - maxLength: 100 - is_template: - type: boolean - description: Is this part a template part? - keywords: - type: string - nullable: true - description: Part keywords to improve visibility in search results - maxLength: 250 - link: - type: string - format: uri - nullable: true - description: Link to external URL - maxLength: 2000 - locked: - type: boolean - description: Locked parts cannot be edited - minimum_stock: - type: number - format: double - default: 0.0 - maximum_stock: - type: number - format: double - default: 0.0 - name: - type: string - description: Part name - maxLength: 100 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - pk: - type: integer - readOnly: true - title: ID - purchaseable: - type: boolean - description: Can this part be purchased from external suppliers? - revision: - type: string - nullable: true - default: '' - maxLength: 100 - revision_of: - type: integer - nullable: true - description: Is this part a revision of another part? - revision_count: - type: integer - readOnly: true - nullable: true - title: Revisions - salable: - type: boolean - description: Can this part be sold to customers? - starred: - type: boolean - description: Return "true" if the part is starred by the current user. - readOnly: true - thumbnail: - type: string - readOnly: true - testable: - type: boolean - description: Can this part have test results recorded against it? - trackable: - type: boolean - description: Does this part have tracking for unique items? - units: - type: string - nullable: true - description: Units of measure for this part - maxLength: 20 - variant_of: - type: integer - nullable: true - description: Is this part a variant of another part? - virtual: - type: boolean - description: Is this a virtual part, such as a software product or license? - pricing_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - pricing_updated: - type: string - format: date-time - readOnly: true - nullable: true - responsible: - type: integer - nullable: true - price_breaks: - type: array - items: - $ref: '#/components/schemas/PartSalePrice' - readOnly: true - nullable: true - allocated_to_build_orders: - type: number - format: double - readOnly: true - nullable: true - allocated_to_sales_orders: - type: number - format: double - readOnly: true - nullable: true - building: - type: number - format: double - readOnly: true - nullable: true - description: Quantity of this part currently being in production - scheduled_to_build: - type: number - format: double - readOnly: true - nullable: true - description: Outstanding quantity of this part scheduled to be built - category_default_location: - type: integer - readOnly: true - nullable: true - in_stock: - type: number - format: double - readOnly: true - nullable: true - ordering: - type: number - format: double - readOnly: true - nullable: true - title: On Order - required_for_build_orders: - type: integer - readOnly: true - nullable: true - required_for_sales_orders: - type: integer - readOnly: true - nullable: true - stock_item_count: - type: integer - readOnly: true - nullable: true - title: Stock Items - total_in_stock: - type: number - format: double - readOnly: true - nullable: true - title: Total Stock - external_stock: - type: number - format: double - readOnly: true - nullable: true - unallocated_stock: - type: number - format: double - readOnly: true - nullable: true - variant_stock: - type: number - format: double - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicatePart' - writeOnly: true - title: Duplicate Part - description: Copy initial data from another Part - initial_stock: - allOf: - - $ref: '#/components/schemas/InitialStock' - writeOnly: true - description: Create Part with initial stock quantity - initial_supplier: - allOf: - - $ref: '#/components/schemas/InitialSupplier' - writeOnly: true - title: Supplier Information - description: Add initial supplier information for this part - copy_category_parameters: - type: boolean - writeOnly: true - default: true - description: Copy parameter templates from selected part category - tags: - type: array - items: - type: string - PatchedPartBomValidate: - type: object - description: Serializer for Part BOM information. - properties: - pk: - type: integer - readOnly: true - title: ID - bom_validated: - type: boolean - readOnly: true - description: Is the BOM for this part valid? - bom_checksum: - type: string - readOnly: true - description: Stored BOM checksum - bom_checked_by: - type: integer - readOnly: true - nullable: true - bom_checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - bom_checked_date: - type: string - format: date - readOnly: true - nullable: true - valid: - type: boolean - writeOnly: true - default: false - description: Validate entire Bill of Materials - PatchedPartInternalPrice: - type: object - description: Serializer for internal prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - PatchedPartPricing: - type: object - description: Serializer for Part pricing information. - properties: - currency: - type: string - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - scheduled_for_update: - type: boolean - readOnly: true - bom_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - bom_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - purchase_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - internal_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - supplier_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - variant_cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - override_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Minimum Price - description: Override calculated value for minimum price - override_min_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Minimum price currency - override_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - title: Maximum Price - description: Override calculated value for maximum price - override_max_currency: - type: string - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - title: Maximum price currency - overall_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - overall_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_price_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - sale_history_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - update: - type: boolean - writeOnly: true - nullable: true - default: false - description: Update pricing for this part - PatchedPartRelation: - type: object - description: Serializer for a PartRelated model. - properties: - pk: - type: integer - readOnly: true - title: ID - part_1: - type: integer - part_1_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - part_2: - type: integer - description: Select Related Part - part_2_detail: - allOf: - - $ref: '#/components/schemas/Part' - readOnly: true - note: - type: string - description: Note for this relationship - maxLength: 500 - PatchedPartSalePrice: - type: object - description: Serializer for sale prices for Part model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - PatchedPartStocktake: - type: object - description: Serializer for the PartStocktake model. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Part for stocktake - part_name: - type: string - readOnly: true - part_ipn: - type: string - readOnly: true - nullable: true - part_description: - type: string - readOnly: true - nullable: true - date: - type: string - format: date - readOnly: true - description: Date stocktake was performed - item_count: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Number of individual stock entries at time of stocktake - quantity: - type: number - format: double - cost_min: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_min_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - cost_max: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - cost_max_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - PatchedPartTestTemplate: - type: object - description: Serializer for the PartTestTemplate class. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - part: - type: integer - test_name: - type: string - description: Enter a name for the test - maxLength: 100 - description: - type: string - nullable: true - title: Test Description - description: Enter description for this test - maxLength: 100 - enabled: - type: boolean - description: Is this test enabled? - required: - type: boolean - description: Is this test required to pass? - requires_value: - type: boolean - description: Does this test require a value when adding a test result? - requires_attachment: - type: boolean - description: Does this test require a file attachment when adding a test - result? - results: - type: integer - readOnly: true - description: Number of results recorded against this template - choices: - type: string - description: Valid choices for this test (comma-separated) - maxLength: 5000 - PatchedPartThumbSerializerUpdate: - type: object - description: Serializer for updating Part thumbnail. - properties: - image: - type: string - format: uri - PatchedPluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PatchedPluginSetting: - type: object - description: Serializer for the PluginSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - PatchedPluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PatchedPluginUserSetting: - type: object - description: Serializer for the PluginUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - user: - type: integer - readOnly: true - description: The user for which this setting applies - PatchedProjectCode: - type: object - description: Serializer for the ProjectCode model. - properties: - pk: - type: integer - readOnly: true - title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: - type: string - description: Project description - maxLength: 200 - responsible: - type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - PatchedPurchaseOrder: - type: object - description: Serializer for a PurchaseOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - readOnly: true - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Placed - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - readOnly: true - nullable: true - title: Completion Date - description: Date order was completed - supplier: - type: integer - nullable: true - description: Company from which the items are being ordered - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string - readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - destination: - type: integer - nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedPurchaseOrderExtraLine: - type: object - description: Serializer for a PurchaseOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedPurchaseOrderLineItem: - type: object - description: Serializer class for the PurchaseOrderLineItem model. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - minimum: 0 - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer - nullable: true - description: External Build Order to be fulfilled by this line item - overdue: - type: boolean - readOnly: true - nullable: true - received: - type: number - format: double - readOnly: true - default: 0.0 - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: - type: number - format: double - readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string - readOnly: true - nullable: true - mpn: - type: string - readOnly: true - nullable: true - ipn: - type: string - readOnly: true - nullable: true - title: Internal Part Number - internal_part: - type: integer - readOnly: true - internal_part_name: - type: string - readOnly: true - build_order_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - destination_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - PatchedRepairOrder: - type: object - description: Serializer for a RepairOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - reference: - type: string - description: Repair Order Reference - maxLength: 100 - customer: - type: integer - nullable: true - description: Customer reference - description: - type: string - description: Repair order description - maxLength: 250 - symptoms: - type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' - description: |- - Repair order status - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: 0 - maximum: 9223372036854775807 - PatchedRepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity - PatchedRepairOrderLineItem: - type: object - description: Serializer for a RepairOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - title: Repair Order - part: - type: integer - nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair - PatchedReportAsset: - type: object - description: Serializer class for the ReportAsset model. - properties: - pk: - type: integer - readOnly: true - title: ID - asset: - type: string - format: uri - description: - type: string - description: Asset file description - maxLength: 250 - PatchedReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: - type: integer - readOnly: true - title: ID - snippet: - type: string - format: uri - description: - type: string - description: Snippet file description - maxLength: 250 - PatchedReportTemplate: - type: object - description: Serializer class for report template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - page_size: - allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items - PatchedReturnOrder: - type: object - description: Serializer for the ReturnOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - customer: - type: integer - nullable: true - description: Company from which items are being returned - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedReturnOrderExtraLine: - type: object - description: Serializer for a ReturnOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedReturnOrderLineItem: - type: object - description: Serializer for a ReturnOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - item: - type: integer - description: Select item to return from customer - received_date: - type: string - format: date - nullable: true - description: The date this return item was received - outcome: - allOf: - - $ref: '#/components/schemas/OutcomeEnum' - description: |- - Outcome for this line item - - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Line price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - PatchedRuleSet: - type: object - description: Serializer for a RuleSet. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - PatchedSalesOrder: - type: object - description: Serializer for the SalesOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `15` - In Progress - * `20` - Shipped - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipments_count: - type: integer - readOnly: true - nullable: true - title: Shipments - completed_shipments_count: - type: integer - readOnly: true - nullable: true - title: Completed Shipments - allocated_lines: - type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - PatchedSalesOrderAllocation: - type: object - description: |- - Serializer for the SalesOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true - nullable: true - PatchedSalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - PatchedSalesOrderLineItem: - type: object - description: Serializer for a SalesOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - sale_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - sale_price_currency: - type: string - title: Currency - description: |- - Sale price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipped: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - PatchedSalesOrderShipment: - type: object - description: Serializer for the SalesOrderShipment class. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - description: Sales Order - allocated_items: - type: integer - readOnly: true - nullable: true - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer - nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - checked_by: - type: integer - nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - PatchedSelectionEntry: - type: object - description: Serializer for a selection entry. - properties: - id: - type: integer - readOnly: true - value: - type: string - description: Value of the selection list entry - maxLength: 255 - label: - type: string - description: Label for the selection list entry - maxLength: 255 - description: - type: string - description: Description of the selection list entry - maxLength: 250 - active: - type: boolean - description: Is this selection list entry active? - list: - type: integer - nullable: true - title: Selection List - description: Selection list to which this entry belongs - PatchedSelectionList: - type: object - description: Serializer for a selection list. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name of the selection list - maxLength: 100 - description: - type: string - description: Description of the selection list - maxLength: 250 - active: - type: boolean - description: Can this selection list be used? - locked: - type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' - readOnly: true - nullable: true - created: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was created - last_updated: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: - type: integer - readOnly: true - PatchedStockItem: - type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: - type: number - format: double - serial: - type: string - nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer - nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer - nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer - nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer - nullable: true - description: Build order which consumed this stock item - customer: - type: integer - nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: - type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean - readOnly: true - is_building: - type: boolean - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: - type: integer - nullable: true - description: Select Owner - packaging: - type: string - nullable: true - description: Packaging this stock item is stored in - maxLength: 50 - parent: - type: integer - readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: - type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: - type: string - readOnly: true - nullable: true - sales_order: - type: integer - nullable: true - title: Destination Sales Order - sales_order_reference: - type: string - readOnly: true - nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - supplier_part: - type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: - type: string - readOnly: true - nullable: true - title: Supplier Part Number - MPN: - type: string - readOnly: true - nullable: true - title: Manufacturer Part Number - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - creation_date: - type: string - format: date-time - readOnly: true - nullable: true - description: Date that this stock item was created - stocktake_date: - type: string - format: date - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: - type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double - readOnly: true - nullable: true - title: Allocated Quantity - expired: - type: boolean - readOnly: true - nullable: true - installed_items: - type: integer - readOnly: true - nullable: true - child_items: - type: integer - readOnly: true - nullable: true - stale: - type: boolean - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - location_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - tags: - type: array - items: - type: string - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - readOnly: true - nullable: true - tracking_items: - type: integer - readOnly: true - nullable: true - PatchedStockItemTestResult: - type: object - description: Serializer for the StockItemTestResult model. - properties: - pk: - type: integer - readOnly: true - title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: - type: string - description: Test output value - maxLength: 500 - attachment: - type: string - format: uri - nullable: true - description: Test result attachment - notes: - type: string - description: Test notes - maxLength: 500 - test_station: - type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: - type: string - format: date-time - nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: - type: string - format: date-time - nullable: true - title: Finished - description: The timestamp of the test finish - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - template: - type: integer - nullable: true - title: Test template for this result - description: Template - template_detail: - allOf: - - $ref: '#/components/schemas/PartTestTemplate' - readOnly: true - nullable: true - PatchedStockLocationType: - type: object - description: Serializer for StockLocationType model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - icon: - type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: - type: integer - readOnly: true - nullable: true - PatchedSupplierPart: - type: object - description: Serializer for SupplierPart object. - properties: - available: - type: number - format: double - availability_updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Date of last update of availability data - description: - type: string - nullable: true - description: Supplier part description - maxLength: 250 - in_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - link: - type: string - format: uri - nullable: true - description: URL for external supplier part link - maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Manufacturer - manufacturer_part: - type: integer - nullable: true - description: Select manufacturer part - manufacturer_part_detail: - allOf: - - $ref: '#/components/schemas/ManufacturerPart' - readOnly: true - nullable: true - title: Manufacturer Part - MPN: - type: string - readOnly: true - nullable: true - note: - type: string - nullable: true - description: Notes - maxLength: 100 - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - packaging: - type: string - nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: - type: number - format: double - readOnly: true - part: - type: integer - title: Base Part - description: Select part - pretty_name: - type: string - readOnly: true - nullable: true - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: - type: integer - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Supplier - updated: - type: string - format: date-time - readOnly: true - nullable: true - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - tags: - type: array - items: - type: string - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - PatchedSupplierPriceBreak: - type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - PatchedTransferOrder: - type: object - description: Serializer for a TransferOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Issued - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - PatchedTransferOrderAllocation: - type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - PatchedTransferOrderLineItem: - type: object - description: Serializer for a TransferOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Transfer Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - PatchedUserProfile: - type: object - description: Serializer for the UserProfile model. - properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - PatchedUserSetPassword: - type: object - description: Serializer for setting a password for a user. - properties: - password: - type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules - PatchedUserSettings: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - user: - type: integer - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - PendingTask: - type: object - description: Serializer for an individual pending task object. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - title: Cluster key - description: Name of the target cluster - maxLength: 100 - lock: - type: string - format: date-time - description: Lock time - task_id: - type: string - description: Unique task ID - name: - type: string - description: Task name - func: - type: string - title: Function - description: Function name - args: - type: string - title: Arguments - description: Task arguments - kwargs: - type: string - title: Keyword Arguments - description: Task keyword arguments - required: - - args - - func - - key - - kwargs - - lock - - name - - pk - - task_id - PluginActivate: - type: object - description: Serializer for activating or deactivating a plugin. - properties: - active: - type: boolean - default: true - title: Activate Plugin - description: Activate this plugin - PluginAdminDetail: - type: object - description: Serializer for a PluginConfig with admin details. - properties: - source: - type: string - nullable: true - title: Source File - description: Path to the source file for admin integration - context: - nullable: true - description: Optional context data for the admin integration - required: - - context - - source - PluginConfig: - type: object - description: Serializer for a PluginConfig. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - description: Key of plugin - name: - type: string - nullable: true - description: Name of the plugin - maxLength: 255 - package_name: - type: string - nullable: true - description: Name of the installed package, if the plugin was installed - via PIP - maxLength: 255 - active: - type: boolean - description: Is the plugin active - meta: - type: object - additionalProperties: {} - readOnly: true - mixins: - type: object - additionalProperties: {} - readOnly: true - is_builtin: - type: boolean - description: Return True if this is a 'builtin' plugin. - readOnly: true - is_sample: - type: boolean - description: Is this plugin a sample app? - readOnly: true - is_installed: - type: boolean - description: |- - Simple check to determine if this plugin is installed. - - A plugin might not be installed if it has been removed from the system, - but the PluginConfig associated with it still exists. - readOnly: true - is_package: - type: boolean - description: Return True if this is a 'package' plugin. - readOnly: true - is_mandatory: - type: boolean - readOnly: true - required: - - is_builtin - - is_installed - - is_mandatory - - is_package - - is_sample - - key - - meta - - mixins - - pk - PluginConfigInstall: - type: object - description: Serializer for installing a new plugin. - properties: - url: - type: string - title: Source URL - description: Source for the package - this can be a custom registry or a - VCS path - packagename: - type: string - title: Package Name - description: Name for the Plugin Package - can also contain a version indicator - version: - type: string - description: Version specifier for the plugin. Leave blank for latest version. - confirm: - type: boolean - title: Confirm plugin installation - description: This will install this plugin now into the current instance. - The instance will go into maintenance. - required: - - confirm - PluginRegistryError: - type: object - description: Serializer for a plugin registry error. - properties: - stage: - type: string - name: - type: string - message: - type: string - required: - - message - - name - - stage - PluginRegistryStatus: - type: object - description: Serializer for plugin registry status. - properties: - active_plugins: - type: integer - readOnly: true - registry_errors: - type: array - items: - $ref: '#/components/schemas/PluginRegistryError' - required: - - active_plugins - - registry_errors - PluginReload: - type: object - description: Serializer for remotely forcing plugin registry reload. - properties: - full_reload: - type: boolean - default: false - description: Perform a full reload of the plugin registry - force_reload: - type: boolean - default: false - description: Force a reload of the plugin registry, even if it is already - loaded - collect_plugins: - type: boolean - default: false - description: Collect plugins and add them to the registry - PluginSetting: - type: object - description: Serializer for the PluginSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - plugin - - required - - typ - - type - - units - - value - PluginUIFeature: - type: object - description: Serializer for a plugin ui feature. - properties: - plugin_name: - type: string - feature_type: - type: string - key: - type: string - title: Feature Label - title: - type: string - title: Feature Title - description: - type: string - title: Feature Description - icon: - type: string - title: Feature Icon - options: - type: object - additionalProperties: {} - title: Feature Options - context: - type: object - additionalProperties: {} - title: Feature Context - source: - type: string - title: Feature Source (javascript) - required: - - feature_type - - key - - plugin_name - PluginUninstall: - type: object - description: Serializer for uninstalling a plugin. - properties: - delete_config: - type: boolean - default: true - title: Delete configuration - description: Delete the plugin configuration from the database - PluginUserSetting: - type: object - description: Serializer for the PluginUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - type: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - model_filters: - type: object - additionalProperties: {} - readOnly: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - units: - type: string - readOnly: true - required: - type: boolean - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - plugin: - type: string - readOnly: true - user: - type: integer - readOnly: true - description: The user for which this setting applies - required: - - choices - - confirm - - confirm_text - - description - - key - - model_filters - - name - - pk - - plugin - - required - - typ - - type - - units - - user - - value - PriorityEnum: - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - type: integer - description: |- - * `0` - None - * `1` - Very High - * `2` - High - * `3` - Normal - * `4` - Low - * `5` - Very Low - ProjectCode: - type: object - description: Serializer for the ProjectCode model. - properties: - pk: - type: integer - readOnly: true - title: ID - code: - type: string - title: Project Code - description: Unique project code - maxLength: 50 - description: - type: string - description: Project description - maxLength: 200 - responsible: - type: integer - nullable: true - description: User or group responsible for this project - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - required: - - code - - pk - PurchaseOrder: - type: object - description: Serializer for a PurchaseOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - readOnly: true - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Placed - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - readOnly: true - nullable: true - title: Completion Date - description: Date order was completed - supplier: - type: integer - nullable: true - description: Company from which the items are being ordered - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - supplier_reference: - type: string - description: Supplier order reference code - maxLength: 64 - supplier_name: - type: string - readOnly: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - destination: - type: integer - nullable: true - description: Destination for received items - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - - supplier - - supplier_name - PurchaseOrderComplete: - type: object - description: Serializer for completing a purchase order. - properties: - accept_incomplete: - type: boolean - default: false - description: Allow order to be closed with incomplete line items - PurchaseOrderExtraLine: - type: object - description: Serializer for a PurchaseOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - PurchaseOrderLineItem: - type: object - description: Serializer class for the PurchaseOrderLineItem model. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Purchase Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - minimum: 0 - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/PurchaseOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - part: - type: integer - nullable: true - title: Supplier Part - build_order: - type: integer - nullable: true - description: External Build Order to be fulfilled by this line item - overdue: - type: boolean - readOnly: true - nullable: true - received: - type: number - format: double - readOnly: true - default: 0.0 - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - auto_pricing: - type: boolean - default: false - description: Automatically calculate purchase price based on supplier part - data - destination: - type: integer - nullable: true - description: Destination for received items - total_price: - type: number - format: double - readOnly: true - merge_items: - type: boolean - writeOnly: true - default: true - description: Merge items with the same part, destination and target date - into one line item - sku: - type: string - readOnly: true - nullable: true - mpn: - type: string - readOnly: true - nullable: true - ipn: - type: string - readOnly: true - nullable: true - title: Internal Part Number - internal_part: - type: integer - readOnly: true - internal_part_name: - type: string - readOnly: true - build_order_detail: - allOf: - - $ref: '#/components/schemas/Build' - readOnly: true - nullable: true - destination_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - required: - - internal_part - - internal_part_name - - order - - part - - pk - - quantity - - received - - total_price - PurchaseOrderLineItemReceive: - type: object - description: A serializer for receiving a single purchase order line item against - a purchase order. - properties: - line_item: - type: integer - location: - type: integer - nullable: true - description: Select destination location for received items - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch_code: - type: string - default: '' - description: Enter batch code for incoming stock items - expiry_date: - type: string - format: date - nullable: true - description: Enter expiry date for incoming stock items - serial_numbers: - type: string - default: '' - description: Enter serial numbers for incoming stock items - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - packaging: - type: string - default: '' - description: Override packaging information for incoming stock items - note: - type: string - default: '' - description: Additional note for incoming stock items - barcode: - type: string - nullable: true - default: '' - description: Scanned barcode - required: - - line_item - - quantity - PurchaseOrderReceive: - type: object - description: Serializer for receiving items against a PurchaseOrder. - properties: - items: - type: array - items: - $ref: '#/components/schemas/PurchaseOrderLineItemReceive' - location: - type: integer - nullable: true - description: Select destination location for received items - required: - - items - ReferenceStatusEnum: - enum: - - BuildStatus - - DataImportStatusCode - - MachineStatus - - PurchaseOrderStatus - - RepairOrderStatus - - ReturnOrderLineStatus - - ReturnOrderStatus - - SalesOrderStatus - - StockHistoryCode - - StockStatus - - TransferOrderStatus - type: string - description: |- - * `BuildStatus` - BuildStatus - * `DataImportStatusCode` - DataImportStatusCode - * `MachineStatus` - MachineStatus - * `PurchaseOrderStatus` - PurchaseOrderStatus - * `RepairOrderStatus` - RepairOrderStatus - * `ReturnOrderLineStatus` - ReturnOrderLineStatus - * `ReturnOrderStatus` - ReturnOrderStatus - * `SalesOrderStatus` - SalesOrderStatus - * `StockHistoryCode` - StockHistoryCode - * `StockStatus` - StockStatus - * `TransferOrderStatus` - TransferOrderStatus - RepairOrder: - type: object - description: Serializer for a RepairOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - reference: - type: string - description: Repair Order Reference - maxLength: 100 - customer: - type: integer - nullable: true - description: Customer reference - description: - type: string - description: Repair order description - maxLength: 250 - symptoms: - type: string - description: Reported symptoms or issues - status: - allOf: - - $ref: '#/components/schemas/RepairOrderStatusEnum' - description: |- - Repair order status - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - minimum: 0 - maximum: 9223372036854775807 - required: - - description - - pk - - reference - RepairOrderAllocation: - type: object - description: Serializer for a RepairOrderAllocation object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: integer - title: Line Item - item: - type: integer - title: Stock Item - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Allocated stock quantity - required: - - item - - line - - pk - RepairOrderLineItem: - type: object - description: Serializer for a RepairOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - title: Repair Order - part: - type: integer - nullable: true - description: Part to be consumed for repair - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - description: Item quantity required for repair - required: - - order - - pk - RepairOrderStatusEnum: - enum: - - 10 - - 20 - - 25 - - 30 - - 40 - type: integer - description: |- - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - ReportAsset: - type: object - description: Serializer class for the ReportAsset model. - properties: - pk: - type: integer - readOnly: true - title: ID - asset: - type: string - format: uri - description: - type: string - description: Asset file description - maxLength: 250 - required: - - asset - - description - - pk - ReportPrint: - type: object - description: Serializer class for printing a report. - properties: - template: - type: integer - description: Select report template - items: - type: array - items: - type: integer - description: List of item primary keys to include in the report - required: - - items - - template - ReportSnippet: - type: object - description: Serializer class for the ReportSnippet model. - properties: - pk: - type: integer - readOnly: true - title: ID - snippet: - type: string - format: uri - description: - type: string - description: Snippet file description - maxLength: 250 - required: - - description - - pk - - snippet - ReportTemplate: - type: object - description: Serializer class for report template model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Template name - maxLength: 100 - description: - type: string - description: Template description - maxLength: 250 - model_type: - $ref: '#/components/schemas/TemplateModelTypeEnum' - template: - type: string - format: uri - filters: - type: string - description: Template query filters (comma-separated list of key=value pairs) - maxLength: 250 - filename_pattern: - type: string - description: Pattern for generating filenames - maxLength: 100 - enabled: - type: boolean - description: Template is enabled - revision: - type: integer - readOnly: true - attach_to_model: - type: boolean - title: Attach to Model on Print - description: Save report output as an attachment against linked model instance - when printing - updated: - type: string - format: date-time - nullable: true - description: Timestamp of last update - updated_by: - type: integer - nullable: true - title: Update By - description: User who last updated this object - updated_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - page_size: - allOf: - - $ref: '#/components/schemas/PageSizeEnum' - default: A4 - landscape: - type: boolean - description: Render report in landscape orientation - merge: - type: boolean - description: Render a single report against selected items - required: - - description - - model_type - - name - - pk - - revision - - template - ReturnOrder: - type: object - description: Serializer for the ReturnOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - In Progress - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - customer: - type: integer - nullable: true - description: Company from which items are being returned - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - ReturnOrderExtraLine: - type: object - description: Serializer for a ReturnOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - ReturnOrderLineItem: - type: object - description: Serializer for a ReturnOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Return Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - description: Quantity to return - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/ReturnOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - item: - type: integer - description: Select item to return from customer - received_date: - type: string - format: date - nullable: true - description: The date this return item was received - outcome: - allOf: - - $ref: '#/components/schemas/OutcomeEnum' - description: |- - Outcome for this line item - - * `10` - Pending - * `20` - Return - * `30` - Repair - * `40` - Replace - * `50` - Refund - * `60` - Reject - minimum: 0 - maximum: 9223372036854775807 - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Line price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - required: - - item - - order - - pk - - quantity - ReturnOrderLineItemReceive: - type: object - description: Serializer for receiving a single line item against a ReturnOrder. - properties: - item: - type: integer - title: Return order line item - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - required: - - item - ReturnOrderReceive: - type: object - description: Serializer for receiving items against a ReturnOrder. - properties: - items: - type: array - items: - $ref: '#/components/schemas/ReturnOrderLineItemReceive' - location: - type: integer - description: Select destination location for received items - note: - type: string - default: '' - description: Additional note for incoming stock items - required: - - items - - location - Role: - type: object - description: Serializer for a roles associated with a given user. - properties: - user: - type: integer - username: - type: string - description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ - only. - pattern: ^[\w.@+-]+$ - maxLength: 150 - roles: - type: object - additionalProperties: {} - description: Roles associated with the user. - readOnly: true - permissions: - type: object - additionalProperties: {} - description: Permissions associated with the user. - readOnly: true - nullable: true - is_staff: - type: boolean - title: Staff status - description: Designates whether the user can log into this admin site. - is_superuser: - type: boolean - title: Superuser status - description: Designates that this user has all permissions without explicitly - assigning them. - required: - - roles - - user - - username - RuleSet: - type: object - description: Serializer for a RuleSet. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - allOf: - - $ref: '#/components/schemas/NameEnum' - readOnly: true - description: |- - Permission set - - * `admin` - Admin - * `part_category` - Part Categories - * `part` - Parts - * `bom` - Bills of Material - * `stock_location` - Stock Locations - * `stock` - Stock Items - * `build` - Build Orders - * `purchase_order` - Purchase Orders - * `sales_order` - Sales Orders - * `return_order` - Return Orders - * `transfer_order` - Transfer Orders - * `repair_order` - Repair Orders - label: - type: string - description: Return the translated label for this ruleset. - readOnly: true - group: - type: integer - readOnly: true - description: Group - can_view: - type: boolean - title: View - description: Permission to view items - can_add: - type: boolean - title: Add - description: Permission to add items - can_change: - type: boolean - title: Change - description: Permissions to edit items - can_delete: - type: boolean - title: Delete - description: Permission to delete items - required: - - group - - label - - name - - pk - SalesOrder: - type: object - description: Serializer for the SalesOrder model class. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `15` - In Progress - * `20` - Shipped - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - * `50` - Lost - * `60` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - customer: - type: integer - nullable: true - description: Company to which the items are being sold - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - customer_reference: - type: string - description: Customer order reference code - maxLength: 64 - shipment_date: - type: string - format: date - readOnly: true - nullable: true - total_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - readOnly: true - nullable: true - order_currency: - type: string - nullable: true - description: |- - Currency for this order (leave blank to use company default) - - * `` - --------- - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipments_count: - type: integer - readOnly: true - nullable: true - title: Shipments - completed_shipments_count: - type: integer - readOnly: true - nullable: true - title: Completed Shipments - allocated_lines: - type: integer - readOnly: true - nullable: true - updated_at: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - barcode_hash - - created_by - - pk - - reference - - status - SalesOrderAllocation: - type: object - description: |- - Serializer for the SalesOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - shipment: - type: integer - nullable: true - description: Sales order shipment reference - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - shipment_detail: - allOf: - - $ref: '#/components/schemas/SalesOrderShipment' - readOnly: true - nullable: true - required: - - item - - line - - location - - order - - part - - pk - - quantity - SalesOrderAutoAllocation: - type: object - description: DRF serializer for auto-allocating stock items against a SalesOrder. - properties: - location: - type: integer - nullable: true - title: Source Location - description: Stock location where items are sourced (leave blank to use - any location) - exclude_location: - type: integer - nullable: true - description: Exclude stock items from this location - shipment: - type: integer - nullable: true - description: Assign allocations to this shipment - interchangeable: - type: boolean - default: true - title: Interchangeable Stock - description: Allow stock to be taken from multiple locations to fulfil a - single line item - stock_sort_by: - allOf: - - $ref: '#/components/schemas/StockSortByEnum' - default: updated - title: Stock Priority - description: |- - Preferred order in which matching stock items are consumed - - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - serialized_stock: - allOf: - - $ref: '#/components/schemas/SerializedStockEnum' - default: any - description: |- - Control whether serialized stock items are included in auto-allocation - - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - line_items: - type: array - items: - type: integer - title: Line Items - description: Limit allocation to these line items (leave blank to allocate - all lines) - SalesOrderComplete: - type: object - description: DRF serializer for manually marking a sales order as complete. - properties: - accept_incomplete: - type: boolean - default: false - description: Allow order to be closed with incomplete line items - SalesOrderExtraLine: - type: object - description: Serializer for a SalesOrderExtraLine object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - description: - type: string - description: Line item description (optional) - maxLength: 250 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - description: Target date for this line item (leave blank to use the target - date from the order) - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - required: - - order - - pk - - quantity - SalesOrderLineItem: - type: object - description: Serializer for a SalesOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Sales Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - sale_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - sale_price_currency: - type: string - title: Currency - description: |- - Sale price currency - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - shipped: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - shipped - SalesOrderSerialAllocation: - type: object - description: DRF serializer for allocation of serial numbers against a sales - order / shipment. - properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate - shipment: - type: integer - nullable: true - required: - - line_item - - quantity - - serial_numbers - SalesOrderShipment: - type: object - description: Serializer for the SalesOrderShipment class. - properties: - pk: - type: integer - readOnly: true - title: ID - order: - type: integer - description: Sales Order - allocated_items: - type: integer - readOnly: true - nullable: true - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - shipment_address: - type: integer - nullable: true - title: Address - description: Shipping address for this shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - checked_by: - type: integer - nullable: true - description: User who checked this shipment - reference: - type: string - default: '1' - title: Shipment - description: Shipment number - maxLength: 100 - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - barcode_hash: - type: string - description: Unique hash of barcode data - maxLength: 128 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - checked_by_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - customer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/SalesOrder' - readOnly: true - nullable: true - shipment_address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - required: - - order - - pk - SalesOrderShipmentAllocation: - type: object - description: DRF serializer for allocation of stock items against a sales order - / shipment. - properties: - items: - type: array - items: - $ref: '#/components/schemas/SalesOrderShipmentAllocationItem' - shipment: - type: integer - nullable: true - required: - - items - SalesOrderShipmentAllocationItem: - type: object - description: A serializer for allocating a single stock-item against a SalesOrder - shipment. - properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - line_item - - quantity - - stock_item - SalesOrderShipmentComplete: - type: object - description: Serializer for completing (shipping) a SalesOrderShipment. - properties: - shipment_date: - type: string - format: date - nullable: true - description: Date of shipment - delivery_date: - type: string - format: date - nullable: true - description: Date of delivery of shipment - tracking_number: - type: string - description: Shipment tracking information - maxLength: 100 - invoice_number: - type: string - description: Reference number for associated invoice - maxLength: 100 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - ScheduleTypeEnum: - enum: - - O - - I - - H - - D - - W - - BW - - M - - BM - - Q - - Y - - C - type: string - description: |- - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - ScheduledTask: - type: object - description: Serializer for an individual scheduled task object. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - nullable: true - description: Optional label to identify this schedule in the admin. - maxLength: 100 - func: - type: string - title: Function - description: e.g. module.tasks.function - maxLength: 256 - args: - type: string - nullable: true - title: Arguments - description: e.g. 1, 2, 'John' - kwargs: - type: string - nullable: true - title: Keyword arguments - description: e.g. x=1, y=2, name='John' - schedule_type: - allOf: - - $ref: '#/components/schemas/ScheduleTypeEnum' - description: |- - How often this task should be enqueued. - - * `O` - Once - * `I` - Minutes - * `H` - Hourly - * `D` - Daily - * `W` - Weekly - * `BW` - Biweekly - * `M` - Monthly - * `BM` - Bimonthly - * `Q` - Quarterly - * `Y` - Yearly - * `C` - Cron - repeats: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: n = n times, -1 = forever - last_run: - type: string - format: date-time - next_run: - type: string - format: date-time - nullable: true - description: When this schedule runs next (stored in UTC). - success: - type: boolean - task: - type: string - readOnly: true - nullable: true - title: Last task id - description: Id of the last task spawned from this schedule (read-only). - required: - - func - - last_run - - pk - - success - SearchResult: - type: object - description: Serializer for a search result. - properties: - id: - type: string - sku: - type: string - name: - type: string - exact: - type: boolean - description: - type: string - price: - type: string - link: - type: string - image_url: - type: string - existing_part_id: - type: integer - nullable: true - description: Return the ID of the existing part if available. - readOnly: true - required: - - description - - exact - - id - - image_url - - link - - name - - price - - sku - SelectionEntry: - type: object - description: Serializer for a selection entry. - properties: - id: - type: integer - readOnly: true - value: - type: string - description: Value of the selection list entry - maxLength: 255 - label: - type: string - description: Label for the selection list entry - maxLength: 255 - description: - type: string - description: Description of the selection list entry - maxLength: 250 - active: - type: boolean - description: Is this selection list entry active? - list: - type: integer - nullable: true - title: Selection List - description: Selection list to which this entry belongs - required: - - id - - label - - value - SelectionList: - type: object - description: Serializer for a selection list. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name of the selection list - maxLength: 100 - description: - type: string - description: Description of the selection list - maxLength: 250 - active: - type: boolean - description: Can this selection list be used? - locked: - type: boolean - description: Is this selection list locked? - source_plugin: - type: integer - nullable: true - description: Plugin which provides the selection list - source_string: - type: string - description: Optional string identifying the source used for this list - maxLength: 1000 - default: - allOf: - - $ref: '#/components/schemas/SelectionEntry' - readOnly: true - nullable: true - created: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was created - last_updated: - type: string - format: date-time - readOnly: true - description: Date and time that the selection list was last updated - choices: - type: array - items: - $ref: '#/components/schemas/SelectionEntry' - entry_count: - type: integer - readOnly: true - required: - - created - - entry_count - - last_updated - - name - - pk - SerializeStockItem: - type: object - description: |- - A DRF serializer for "serializing" a StockItem. - - (Sorry for the confusing naming...) - - Here, "serializing" means splitting out a single StockItem, - into multiple single-quantity items with an assigned serial number - - Note: The base StockItem object is provided to the serializer context - properties: - quantity: - type: integer - minimum: 0 - description: Enter number of stock items to serialize - serial_numbers: - type: string - description: Enter serial numbers for new items - destination: - type: integer - title: Location - description: Destination stock location - notes: - type: string - description: Optional note field - required: - - destination - - quantity - - serial_numbers - SerializedStockEnum: - enum: - - any - - serialized - - unserialized - type: string - description: |- - * `any` - Allow any stock (serialized or unserialized) - * `serialized` - Serialized stock only - * `unserialized` - Unserialized stock only - Settings: - type: object - description: Serializer for InfoApiSerializer. - properties: - sso_registration: - type: boolean - registration_enabled: - type: boolean - password_forgotten_enabled: - type: boolean - required: - - password_forgotten_enabled - - registration_enabled - - sso_registration - StockAdd: - type: object - description: Serializer for adding stock to stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - required: - - items - StockAdjustmentItem: - type: object - description: |- - Serializer for a single StockItem within a stock adjustment request. - - Required Fields: - - item: StockItem object - - quantity: Numerical quantity - - Optional Fields (may be used by external tools) - - status: Change StockItem status code - - packaging: Change StockItem packaging - - batch: Change StockItem batch code - - The optional fields can be used to adjust values for individual stock items - properties: - pk: - type: integer - title: stock_item - description: StockItem primary key value - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - batch: - type: string - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - status: - type: integer - description: |- - Stock item status code - - * `None` - No Change - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - packaging: - type: string - description: Packaging this stock item is stored in - maxLength: 50 - required: - - pk - - quantity - StockAssignment: - type: object - description: |- - Serializer for assigning one (or more) stock items to a customer. - - This is a manual assignment process, separate for (for example) a Sales Order - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAssignmentItem' - customer: - type: integer - description: Customer to assign stock items - notes: - type: string - description: Stock assignment notes - required: - - customer - - items - StockAssignmentItem: - type: object - description: |- - Serializer for a single StockItem with in StockAssignment request. - - Here, the particular StockItem is being assigned (manually) to a customer - - Fields: - - item: StockItem object - properties: - item: - type: integer - title: Stock Item - required: - - item - StockChangeStatus: - type: object - description: Serializer for changing status of multiple StockItem objects. - properties: - items: - type: array - items: - type: integer - title: Stock Items - title: Stock Items - description: Select stock items to change status - status: - type: integer - description: |- - Stock item status code - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the 'stock_status_retrieve' call. - default: 10 - note: - type: string - title: Notes - description: Add transaction note (optional) - required: - - items - StockCount: - type: object - description: Serializer for counting stock items. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - nullable: true - description: Set stock location for counted items (optional) - required: - - items - StockItem: - type: object - description: |- - Serializer for a StockItem. - - - Includes serialization for the linked part - - Includes serialization for the item location - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - description: Base Part - quantity: - type: number - format: double - serial: - type: string - nullable: true - title: Serial Number - description: Serial number for this item - maxLength: 100 - batch: - type: string - nullable: true - title: Batch Code - description: Batch code for this stock item - maxLength: 100 - location: - type: integer - nullable: true - title: Stock Location - description: Where is this stock item located? - belongs_to: - type: integer - nullable: true - title: Installed In - description: Is this item installed in another item? - build: - type: integer - nullable: true - title: Source Build - description: Build for this stock item - consumed_by: - type: integer - nullable: true - description: Build order which consumed this stock item - customer: - type: integer - nullable: true - description: Customer - delete_on_deplete: - type: boolean - description: Delete this Stock Item when stock is depleted - expiry_date: - type: string - format: date - nullable: true - description: Expiry date for stock item. Stock will be considered expired - after this date - in_stock: - type: boolean - readOnly: true - is_building: - type: boolean - link: - type: string - format: uri - title: External Link - description: Link to external URL - maxLength: 2000 - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - owner: - type: integer - nullable: true - description: Select Owner - packaging: - type: string - nullable: true - description: Packaging this stock item is stored in - maxLength: 50 - parent: - type: integer - readOnly: true - nullable: true - title: Parent Item - description: Parent stock item - purchase_order: - type: integer - nullable: true - title: Source Purchase Order - description: Purchase order for this stock item - purchase_order_reference: - type: string - readOnly: true - nullable: true - sales_order: - type: integer - nullable: true - title: Destination Sales Order - sales_order_reference: - type: string - readOnly: true - nullable: true - status: - allOf: - - $ref: '#/components/schemas/StockItemStatusEnum' - minimum: 0 - maximum: 9223372036854775807 - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - supplier_part: - type: integer - nullable: true - description: Select a matching supplier part for this stock item - SKU: - type: string - readOnly: true - nullable: true - title: Supplier Part Number - MPN: - type: string - readOnly: true - nullable: true - title: Manufacturer Part Number - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - creation_date: - type: string - format: date-time - readOnly: true - nullable: true - description: Date that this stock item was created - stocktake_date: - type: string - format: date - readOnly: true - nullable: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - purchase_price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - description: Purchase price of this stock item, per unit or pack - purchase_price_currency: - type: string - title: Currency - description: |- - Purchase currency of this stock item - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - use_pack_size: - type: boolean - writeOnly: true - nullable: true - description: 'Use pack size when adding: the quantity defined is the number - of packs' - serial_numbers: - type: string - writeOnly: true - nullable: true - description: Enter serial numbers for new items - allocated: - type: number - format: double - readOnly: true - nullable: true - title: Allocated Quantity - expired: - type: boolean - readOnly: true - nullable: true - installed_items: - type: integer - readOnly: true - nullable: true - child_items: - type: integer - readOnly: true - nullable: true - stale: - type: boolean - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - title: Location - location_path: - type: array - items: - $ref: '#/components/schemas/TreePath' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - supplier_part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - title: Supplier Part - tags: - type: array - items: - type: string - tests: - type: array - items: - $ref: '#/components/schemas/StockItemTestResult' - readOnly: true - nullable: true - tracking_items: - type: integer - readOnly: true - nullable: true - required: - - barcode_hash - - in_stock - - part - - pk - - quantity - StockItemSerialNumbers: - type: object - description: Serializer for extra serial number information about a stock item. - properties: - next: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - title: Next Serial Number - previous: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - title: Previous Serial Number - required: - - next - - previous - StockItemStatusEnum: - enum: - - 10 - - 50 - - 55 - - 60 - - 65 - - 70 - - 75 - - 85 - type: integer - description: |- - * `10` - OK - * `50` - Attention needed - * `55` - Damaged - * `60` - Destroyed - * `65` - Rejected - * `70` - Lost - * `75` - Quarantined - * `85` - Returned - StockItemTestResult: - type: object - description: Serializer for the StockItemTestResult model. - properties: - pk: - type: integer - readOnly: true - title: ID - stock_item: - type: integer - result: - type: boolean - description: Test result - value: - type: string - description: Test output value - maxLength: 500 - attachment: - type: string - format: uri - nullable: true - description: Test result attachment - notes: - type: string - description: Test notes - maxLength: 500 - test_station: - type: string - description: The identifier of the test station where the test was performed - maxLength: 500 - started_datetime: - type: string - format: date-time - nullable: true - title: Started - description: The timestamp of the test start - finished_datetime: - type: string - format: date-time - nullable: true - title: Finished - description: The timestamp of the test finish - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - template: - type: integer - nullable: true - title: Test template for this result - description: Template - template_detail: - allOf: - - $ref: '#/components/schemas/PartTestTemplate' - readOnly: true - nullable: true - required: - - date - - pk - - stock_item - StockLocationType: - type: object - description: Serializer for StockLocationType model. - properties: - pk: - type: integer - readOnly: true - title: ID - name: - type: string - description: Name - maxLength: 100 - description: - type: string - description: Description (optional) - maxLength: 250 - icon: - type: string - description: Default icon for all locations that have no icon set (optional) - maxLength: 100 - location_count: - type: integer - readOnly: true - nullable: true - required: - - name - - pk - StockMerge: - type: object - description: Serializer for merging two (or more) stock items together. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockMergeItem' - location: - type: integer - description: Destination stock location - notes: - type: string - description: Stock merging notes - allow_mismatched_suppliers: - type: boolean - description: Allow stock items with different supplier parts to be merged - allow_mismatched_status: - type: boolean - description: Allow stock items with different status codes to be merged - required: - - items - - location - StockMergeItem: - type: object - description: |- - Serializer for a single StockItem within the StockMergeSerializer class. - - Here, the individual StockItem is being checked for merge compatibility. - properties: - item: - type: integer - title: Stock Item - required: - - item - StockRemove: - type: object - description: Serializer for removing stock from stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - required: - - items - StockReturn: - type: object - description: Serializer class for returning stock item(s) into stock. - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - description: Destination stock location - merge: - type: boolean - default: false - title: Merge into existing stock - description: Merge returned items into existing stock items if possible - required: - - items - - location - StockSortByEnum: - enum: - - updated - - -updated - - quantity - - -quantity - - expiry_date - type: string - description: |- - * `updated` - Oldest stock first (FIFO) - * `-updated` - Newest stock first (LIFO) - * `quantity` - Smallest quantity first - * `-quantity` - Largest quantity first - * `expiry_date` - Soonest expiry date first - StockTracking: - type: object - description: Serializer for StockItemTracking model. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - nullable: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part: - type: integer - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - date: - type: string - format: date-time - readOnly: true - deltas: - readOnly: true - label: - type: string - readOnly: true - notes: - type: string - nullable: true - description: Entry notes - maxLength: 512 - tracking_type: - type: integer - readOnly: true - user: - type: integer - readOnly: true - nullable: true - user_detail: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - nullable: true - required: - - date - - deltas - - label - - pk - - tracking_type - StockTransfer: - type: object - description: Serializer for transferring (moving) stock item(s). - properties: - items: - type: array - items: - $ref: '#/components/schemas/StockAdjustmentItem' - notes: - type: string - description: Stock transaction notes - location: - type: integer - description: Destination stock location - required: - - items - - location - SupplierList: - type: object - description: Serializer for a supplier plugin. - properties: - plugin_slug: - type: string - supplier_slug: - type: string - supplier_name: - type: string - required: - - plugin_slug - - supplier_name - - supplier_slug - SupplierPart: - type: object - description: Serializer for SupplierPart object. - properties: - available: - type: number - format: double - availability_updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Date of last update of availability data - description: - type: string - nullable: true - description: Supplier part description - maxLength: 250 - in_stock: - type: number - format: double - readOnly: true - nullable: true - on_order: - type: number - format: double - readOnly: true - nullable: true - link: - type: string - format: uri - nullable: true - description: URL for external supplier part link - maxLength: 2000 - active: - type: boolean - description: Is this supplier part active? - primary: - type: boolean - description: Is this the primary supplier part for the linked Part? - manufacturer_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Manufacturer - manufacturer_part: - type: integer - nullable: true - description: Select manufacturer part - manufacturer_part_detail: - allOf: - - $ref: '#/components/schemas/ManufacturerPart' - readOnly: true - nullable: true - title: Manufacturer Part - MPN: - type: string - readOnly: true - nullable: true - note: - type: string - nullable: true - description: Notes - maxLength: 100 - pk: - type: integer - readOnly: true - title: ID - barcode_hash: - type: string - readOnly: true - description: Unique hash of barcode data - packaging: - type: string - nullable: true - description: Part packaging - maxLength: 50 - pack_quantity: - type: string - description: Total quantity supplied in a single pack. Leave empty for single - items. - maxLength: 25 - pack_quantity_native: - type: number - format: double - readOnly: true - part: - type: integer - title: Base Part - description: Select part - pretty_name: - type: string - readOnly: true - nullable: true - SKU: - type: string - description: Supplier stock keeping unit - maxLength: 100 - supplier: - type: integer - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - title: Supplier - updated: - type: string - format: date-time - readOnly: true - nullable: true - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - title: Part - tags: - type: array - items: - type: string - price_breaks: - type: array - items: - $ref: '#/components/schemas/SupplierPriceBreakBrief' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - required: - - SKU - - barcode_hash - - pack_quantity_native - - part - - pk - - supplier - SupplierPriceBreak: - type: object - description: |- - Serializer for SupplierPriceBreak object. - - Note that this inherits from the SupplierPriceBreakBriefSerializer, - and does so to prevent circular serializer import issues. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - supplier_detail: - allOf: - - $ref: '#/components/schemas/CompanyBrief' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/SupplierPart' - readOnly: true - nullable: true - required: - - part - - pk - - price - - quantity - - supplier - SupplierPriceBreakBrief: - type: object - description: |- - Brief serializer for SupplierPriceBreak object. - - Used to provide a list of price breaks against the SupplierPart object. - properties: - pk: - type: integer - readOnly: true - title: ID - part: - type: integer - quantity: - type: number - format: double - price: - type: string - format: decimal - pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ - nullable: true - price_currency: - type: string - title: Currency - description: |- - Select currency from available options - - * `AUD` - AUD - Australian Dollar - * `CAD` - CAD - Canadian Dollar - * `CNY` - CNY - Chinese Yuan - * `EUR` - EUR - Euro - * `GBP` - GBP - British Pound - * `JPY` - JPY - Japanese Yen - * `NZD` - NZD - New Zealand Dollar - * `USD` - USD - US Dollar - - Other valid currencies may be found in the 'CURRENCY_CODES' global setting. - supplier: - type: integer - readOnly: true - updated: - type: string - format: date-time - readOnly: true - nullable: true - description: Timestamp of last update - required: - - part - - pk - - price - - quantity - - supplier - TaskDetail: - type: object - description: Serializer for a background task detail. - properties: - task_id: - type: string - readOnly: true - exists: - type: boolean - readOnly: true - pending: - type: boolean - readOnly: true - complete: - type: boolean - readOnly: true - success: - type: boolean - readOnly: true - http_status: - type: integer - readOnly: true - required: - - complete - - exists - - http_status - - pending - - success - - task_id - TaskOverview: - type: object - description: Serializer for background task overview. - properties: - is_running: - type: boolean - readOnly: true - description: Boolean value to indicate if the background worker process - is running. - pending_tasks: - type: integer - readOnly: true - description: Number of active background tasks - scheduled_tasks: - type: integer - readOnly: true - description: Number of scheduled background tasks - failed_tasks: - type: integer - readOnly: true - description: Number of failed background tasks - required: - - failed_tasks - - is_running - - pending_tasks - - scheduled_tasks - TemplateModelTypeEnum: - enum: - - build - - buildline - - company - - purchaseorder - - repairorder - - returnorder - - salesorder - - salesordershipment - - transferorder - - part - - stockitem - - stocklocation - type: string - description: |- - * `build` - Build Order - * `buildline` - Build Order Line Item - * `company` - Company - * `purchaseorder` - Purchase Order - * `repairorder` - Repair Order - * `returnorder` - Return Order - * `salesorder` - Sales Order - * `salesordershipment` - Sales Order Shipment - * `transferorder` - Transfer Order - * `part` - Part - * `stockitem` - Stock Item - * `stocklocation` - Stock Location - TestEmail: - type: object - description: Serializer to send a test email. - properties: - email: - type: string - format: email - required: - - email - TransferOrder: - type: object - description: Serializer for a TransferOrder object. - properties: - pk: - type: integer - readOnly: true - title: ID - created_by: - allOf: - - $ref: '#/components/schemas/User' - readOnly: true - creation_date: - type: string - format: date - nullable: true - issue_date: - type: string - format: date - nullable: true - description: Date order was issued - start_date: - type: string - format: date - nullable: true - description: Scheduled start date for this order - target_date: - type: string - format: date - nullable: true - description: Expected date for order delivery. Order will be overdue after - this date. - description: - type: string - description: Order description (optional) - maxLength: 250 - line_items: - type: integer - readOnly: true - nullable: true - completed_lines: - type: integer - readOnly: true - nullable: true - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - project_code: - type: integer - nullable: true - description: Select project code for this order - reference: - type: string - responsible: - type: integer - nullable: true - description: User or group responsible for this order - contact: - type: integer - nullable: true - description: Point of contact for this order - address: - type: integer - nullable: true - description: Company address for this order - status: - type: integer - readOnly: true - title: Order Status - status_text: - type: string - nullable: true - readOnly: true - status_custom_key: - type: integer - readOnly: true - nullable: true - title: Custom status key - description: |- - Additional status information for this item - - * `10` - Pending - * `20` - Issued - * `25` - On Hold - * `30` - Complete - * `40` - Cancelled - - Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call. - notes: - type: string - nullable: true - description: Markdown notes (optional) - maxLength: 50000 - barcode_hash: - type: string - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - duplicate: - allOf: - - $ref: '#/components/schemas/DuplicateOrder' - writeOnly: true - title: Duplicate Order - description: Specify options for duplicating this order - address_detail: - allOf: - - $ref: '#/components/schemas/AddressBrief' - readOnly: true - nullable: true - contact_detail: - allOf: - - $ref: '#/components/schemas/Contact' - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - responsible_detail: - allOf: - - $ref: '#/components/schemas/Owner' - readOnly: true - nullable: true - parameters: - type: array - items: - $ref: '#/components/schemas/Parameter' - readOnly: true - nullable: true - take_from: - type: integer - nullable: true - title: Source Location - description: Source for transferred items - take_from_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - destination: - type: integer - nullable: true - title: Destination Location - description: Destination for transferred items - destination_detail: - allOf: - - $ref: '#/components/schemas/Location' - readOnly: true - nullable: true - consume: - type: boolean - title: Consume Stock - description: Rather than transfer the stock to the destination, "consume" - it, by removing transferred quantity from the allocated stock item - complete_date: - type: string - format: date - nullable: true - title: Completion Date - description: Date order was completed - required: - - barcode_hash - - created_by - - pk - - reference - - status - TransferOrderAllocation: - type: object - description: |- - Serializer for the TransferOrderAllocation model. - - This includes some fields from the related model objects. - properties: - pk: - type: integer - readOnly: true - title: ID - item: - type: integer - description: Select stock item to allocate - quantity: - type: number - format: double - line: - type: integer - readOnly: true - part: - type: integer - readOnly: true - order: - type: integer - readOnly: true - serial: - type: string - readOnly: true - nullable: true - location: - type: integer - readOnly: true - item_detail: - allOf: - - $ref: '#/components/schemas/StockItem' - readOnly: true - nullable: true - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - location_detail: - allOf: - - $ref: '#/components/schemas/LocationBrief' - readOnly: true - nullable: true - required: - - item - - line - - location - - order - - part - - pk - - quantity - TransferOrderAllocationItem: - type: object - description: A serializer for allocating a single stock-item against a TransferOrder - line item. - properties: - line_item: - type: integer - title: Stock Item - stock_item: - type: integer - quantity: - type: string - format: decimal - pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ - required: - - line_item - - quantity - - stock_item - TransferOrderComplete: - type: object - description: Serializer for completing a transfer order. - properties: - accept_incomplete_allocation: - type: boolean - default: false - description: Allow order to complete with incomplete allocations - TransferOrderLineItem: - type: object - description: Serializer for a TransferOrderLineItem object. - properties: - pk: - type: integer - readOnly: true - title: ID - line: - type: string - title: Line Number - description: Line number for this item (optional) - maxLength: 20 - link: - type: string - format: uri - description: Link to external page - maxLength: 2000 - notes: - type: string - description: Line item notes - maxLength: 500 - order: - type: integer - description: Transfer Order - project_code: - type: integer - nullable: true - description: Select project code for this order - quantity: - type: number - format: double - reference: - type: string - description: Line item reference - maxLength: 100 - target_date: - type: string - format: date - nullable: true - order_detail: - allOf: - - $ref: '#/components/schemas/TransferOrder' - readOnly: true - nullable: true - project_code_label: - type: string - readOnly: true - nullable: true - project_code_detail: - allOf: - - $ref: '#/components/schemas/ProjectCode' - readOnly: true - nullable: true - allocated: - type: number - format: double - readOnly: true - overdue: - type: boolean - readOnly: true - nullable: true - part: - type: integer - nullable: true - description: Part - part_detail: - allOf: - - $ref: '#/components/schemas/PartBrief' - readOnly: true - nullable: true - transferred: - type: number - format: double - readOnly: true - available_stock: - type: number - format: double - readOnly: true - available_variant_stock: - type: number - format: double - readOnly: true - building: - type: number - format: double - readOnly: true - title: In Production - on_order: - type: number - format: double - readOnly: true - required: - - allocated - - available_stock - - available_variant_stock - - building - - on_order - - order - - pk - - quantity - - transferred - TransferOrderLineItemAllocation: - type: object - description: DRF serializer for allocation of stock items against a transfer - order line item. - properties: - items: - type: array - items: - $ref: '#/components/schemas/TransferOrderAllocationItem' - required: - - items - TransferOrderSerialAllocation: - type: object - description: DRF serializer for allocation of serial numbers against a transfer - order. - properties: - line_item: - type: integer - quantity: - type: integer - minimum: 1 - serial_numbers: - type: string - description: Enter serial numbers to allocate - required: - - line_item - - quantity - - serial_numbers - TreePath: - type: object - description: Serializer field for representing a tree path. - properties: - pk: - type: integer - readOnly: true - name: - type: string - readOnly: true - icon: - type: string - readOnly: true - nullable: true - required: - - name - - pk - UnauthorizedStatus: - type: integer - enum: - - 401 - UninstallStockItem: - type: object - description: API serializers for uninstalling an installed item from a stock - item. - properties: - location: - type: integer - description: Destination location for uninstalled item - note: - type: string - title: Notes - description: Add transaction note (optional) - required: - - location - Unit: - type: object - description: Serializer for the AllUnitListResponseSerializer. - properties: - name: - type: string - is_alias: - type: boolean - compatible_units: - type: array - items: - type: string - isdimensionless: - type: boolean - required: - - compatible_units - - is_alias - - isdimensionless - - name - User: - type: object - description: Serializer for a User. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - required: - - email - - first_name - - last_name - - pk - - username - UserCreate: - type: object - description: Serializer for creating a new User. - properties: - pk: - type: integer - readOnly: true - title: ID - username: - type: string - description: Username - first_name: - type: string - description: First name of the user - last_name: - type: string - description: Last name of the user - email: - type: string - format: email - description: Email address of the user - groups: - type: array - items: - $ref: '#/components/schemas/Group' - readOnly: true - group_ids: - type: array - items: - type: integer - writeOnly: true - writeOnly: true - is_staff: - type: boolean - title: Administrator - description: Does this user have administrative permissions - is_superuser: - type: boolean - title: Superuser - description: Is this user a superuser - is_active: - type: boolean - title: Active - description: Is this user account active - profile: - allOf: - - $ref: '#/components/schemas/BriefUserProfile' - readOnly: true - required: - - email - - first_name - - groups - - last_name - - pk - - profile - - username - UserProfile: - type: object - description: Serializer for the UserProfile model. - properties: - language: - type: string - nullable: true - description: Preferred language for the user - maxLength: 10 - theme: - nullable: true - description: Settings for the web UI as JSON - do not edit manually! - widgets: - nullable: true - description: Settings for the dashboard widgets as JSON - do not edit manually! - displayname: - type: string - nullable: true - title: Display Name - description: Chosen display name for the user - maxLength: 255 - position: - type: string - nullable: true - description: Main job title or position - maxLength: 255 - status: - type: string - nullable: true - description: User status message - maxLength: 2000 - location: - type: string - nullable: true - description: User location information - maxLength: 2000 - active: - type: boolean - description: User is actively using the system - contact: - type: string - nullable: true - description: Preferred contact information for the user - maxLength: 255 - type: - allOf: - - $ref: '#/components/schemas/UserTypeEnum' - title: User Type - description: |- - Which type of user is this? - - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - organisation: - type: string - nullable: true - description: Users primary organisation/affiliation - maxLength: 255 - primary_group: - type: integer - nullable: true - description: Primary group for the user - UserSetPassword: - type: object - description: Serializer for setting a password for a user. - properties: - password: - type: string - writeOnly: true - description: Password for the user - override_warning: - type: boolean - writeOnly: true - description: Override the warning about password rules - required: - - password - UserSettings: - type: object - description: Serializer for the InvenTreeUserSetting model. - properties: - pk: - type: integer - readOnly: true - title: ID - key: - type: string - readOnly: true - value: - type: string - nullable: true - name: - type: string - readOnly: true - description: - type: string - readOnly: true - user: - type: integer - readOnly: true - type: - type: string - readOnly: true - units: - type: string - readOnly: true - choices: - type: array - items: {} - description: Returns the choices available for a given item. - readOnly: true - model_name: - type: string - readOnly: true - nullable: true - api_url: - type: string - readOnly: true - nullable: true - typ: - type: string - readOnly: true - confirm: - type: boolean - readOnly: true - description: Indicates if changing this setting requires confirmation - confirm_text: - type: string - readOnly: true - required: - - choices - - confirm - - confirm_text - - description - - key - - name - - pk - - typ - - type - - units - - user - - value - UserTypeEnum: - enum: - - bot - - internal - - external - - guest - type: string - description: |- - * `bot` - Bot - * `internal` - Internal - * `external` - External - * `guest` - Guest - Version: - type: object - description: Serializer for server version. - properties: - server: - type: string - api: - type: integer - commit_hash: - type: string - commit_date: - type: string - commit_branch: - type: string - nullable: true - python: - type: string - django: - type: string - required: - - api - - commit_branch - - commit_date - - commit_hash - - django - - python - - server - VersionInformation: - type: object - description: Serializer for a single version. - properties: - version: - type: string - date: - type: string - format: date - gh: - type: string - nullable: true - text: - type: array - items: - type: string - latest: - type: boolean - required: - - date - - gh - - latest - - text - - version - VersionView: - type: object - description: Serializer for a single version. - properties: - dev: - type: boolean - up_to_date: - type: boolean - version: - $ref: '#/components/schemas/Version' - links: - $ref: '#/components/schemas/Link' - required: - - dev - - links - - up_to_date - - version - allauth.AccessToken: - type: string - description: | - The access token. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.AccountConfiguration: - type: object - description: | - Configuration of the Django `allauth.account` app. - properties: - login_methods: - type: array - items: - $ref: '#/components/schemas/LoginMethodsEnum' - is_open_for_signup: - type: boolean - email_verification_by_code_enabled: - type: boolean - login_by_code_enabled: - type: boolean - password_reset_by_code_enabled: - type: boolean - required: - - authentication_method - - email_verification_by_code_enabled - - is_open_for_signup - - login_by_code_enabled - allauth.Authenticated: - type: object - properties: - user: - $ref: '#/components/schemas/allauth.User' - methods: - type: array - description: | - A list of methods used to authenticate. - items: - $ref: '#/components/schemas/allauth.AuthenticationMethod' - required: - - user - - methods - allauth.AuthenticatedMeta: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' - - type: object - description: | - Metadata available in an re-authentication related response. - properties: - is_authenticated: - $ref: '#/components/schemas/IsTrueEnum' - required: - - is_authenticated - allauth.AuthenticatedResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - $ref: '#/components/schemas/allauth.Authenticated' - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.AuthenticationMeta: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta' - - type: object - description: | - Metadata available in an authentication related response. - properties: - is_authenticated: - type: boolean - required: - - is_authenticated - allauth.AuthenticationMethod: - oneOf: - - type: object - title: | - Authenticated by username/email login - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - username: - $ref: '#/components/schemas/allauth.Username' - required: - - method - - at - - type: object - title: | - Authenticated after password reset - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - required: - - at - - email - - method - - type: object - title: | - Authenticated by confirming a code sent by email. - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - email: - $ref: '#/components/schemas/allauth.Email' - required: - - at - - email - - method - - type: object - title: | - Authenticated by confirming a code sent by phone. - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - at - - method - - phone - - type: object - title: | - Reauthenticated by password - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - reauthenticated: - $ref: '#/components/schemas/IsTrueEnum' - required: - - method - - reauthenticated - - at - - type: object - title: | - Authenticated by third-party provider - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - provider: - $ref: '#/components/schemas/allauth.ProviderID' - uid: - $ref: '#/components/schemas/allauth.ProviderAccountID' - required: - - method - - reauthenticated - - at - - provider - - uid - - type: object - title: | - (Re)authenticated by 2FA - properties: - method: - $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum' - at: - $ref: '#/components/schemas/allauth.Timestamp' - type: - $ref: '#/components/schemas/allauth.AuthenticatorType' - reauthenticated: - type: boolean - required: - - method - - at - - type - allauth.AuthenticationResponse: - type: object - description: | - An authentication related response. - properties: - status: - $ref: '#/components/schemas/UnauthorizedStatus' - data: - type: object - properties: - flows: - type: array - items: - $ref: '#/components/schemas/allauth.Flow' - required: - - flows - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.AuthenticatorCode: - type: string - description: | - An authenticator code. - example: '314159' - allauth.AuthenticatorID: - type: integer - description: | - Authenticator ID. - example: 123 - allauth.AuthenticatorList: - type: array - items: - oneOf: - - $ref: '#/components/schemas/allauth.TOTPAuthenticator' - - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' - - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator' - allauth.AuthenticatorType: - type: string - enum: - - recovery_codes - - totp - - webauthn - description: | - The type of authenticator. - allauth.BaseAuthenticationMeta: - type: object - properties: - session_token: - type: string - description: | - The session token (`app` clients only). - example: ufwcig0zen9skyd545jc0fkq813ghar2 - access_token: - type: string - description: | - The access token (`app` clients only). - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW - allauth.BaseAuthenticator: - type: object - properties: - last_used_at: - $ref: '#/components/schemas/allauth.OptionalTimestamp' - created_at: - $ref: '#/components/schemas/allauth.Timestamp' - required: - - created_at - - last_used_at - allauth.BaseSignup: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - phone: - $ref: '#/components/schemas/allauth.Phone' - username: - $ref: '#/components/schemas/allauth.Username' - allauth.ClientID: - type: string - description: | - The client ID (in case of OAuth2 or OpenID Connect based providers) - example: 123.apps.googleusercontent.com - allauth.Code: - type: string - description: | - An one-time code. - example: NQ3TM5 - allauth.ConfigurationResponse: - type: object - properties: - data: - type: object - properties: - account: - $ref: '#/components/schemas/allauth.AccountConfiguration' - socialaccount: - $ref: '#/components/schemas/allauth.SocialAccountConfiguration' - mfa: - $ref: '#/components/schemas/allauth.MFAConfiguration' - usersessions: - $ref: '#/components/schemas/allauth.UserSessionsConfiguration' - required: - - account - status: - $ref: '#/components/schemas/allauth.StatusOK' - required: - - status - - data - example: - status: 200 - data: - account: - authentication_method: email - socialaccount: - providers: - - id: google - name: Google - flows: - - provider_redirect - - provider_token - client_id: 123.apps.googleusercontent.com - openid_configuration_url: https://accounts.google.com/.well-known/openid-configuration - mfa: - supported_types: - - recovery_codes - - totp - usersessions: - track_activity: false - allauth.ConfirmLoginCode: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.Code' - required: - - code - allauth.ConflictResponse: - type: object - properties: - status: - $ref: '#/components/schemas/Allauth.ConflictResponseStatusEnum' - required: - - status - allauth.Email: - type: string - description: | - The email address. - example: email@domain.org - allauth.EmailAddress: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - primary: - type: boolean - example: true - verified: - type: boolean - example: false - required: - - email - - primary - - verified - allauth.EmailVerificationInfo: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - user: - $ref: '#/components/schemas/allauth.User' - required: - - email - - user - meta: - type: object - properties: - is_authenticating: - type: boolean - required: - - is_authenticating - required: - - status - - data - - meta - allauth.EndSessions: - type: object - properties: - sessions: - description: | - The IDs of the sessions that are to be ended. - type: array - items: - type: integer - example: 123 - required: - - sessions - allauth.ErrorResponse: - type: object - properties: - status: - allOf: - - $ref: '#/components/schemas/Allauth.ErrorResponseStatusEnum' - example: 400 - errors: - type: array - items: - type: object - properties: - code: - type: string - example: invalid - description: | - An error code. - param: - type: string - example: email - description: | - The name of the input parameter that was incorrect. - message: - type: string - example: Enter a valid email address. - description: | - A human readable error message. - required: - - code - - message - allauth.Flow: - type: object - properties: - id: - $ref: '#/components/schemas/IdEnum' - provider: - $ref: '#/components/schemas/allauth.Provider' - is_pending: - $ref: '#/components/schemas/IsTrueEnum' - types: - type: array - description: Matches `settings.MFA_SUPPORTED_TYPES`. - items: - $ref: '#/components/schemas/allauth.AuthenticatorType' - required: - - id - allauth.ForbiddenResponse: - type: object - properties: - status: - $ref: '#/components/schemas/Allauth.ForbiddenResponseStatusEnum' - required: - - status - allauth.Login: - allOf: - - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - - anyOf: - - title: Login by username - properties: - username: - $ref: '#/components/schemas/allauth.Username' - required: - - username - - title: Login by email - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - - title: Login by phone - properties: - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - phone - allauth.MFAAuthenticate: - type: object - properties: - code: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - code - allauth.MFAConfiguration: - type: object - description: | - Configuration of the Django `allauth.mfa` app. - properties: - supported_types: - type: array - description: | - Matches `settings.MFA_SUPPORTED_TYPES`. - items: - $ref: '#/components/schemas/allauth.AuthenticatorType' - required: - - supported_types - allauth.MFATrust: - type: object - properties: - trust: - type: boolean - required: - - trust - allauth.OptionalTimestamp: - nullable: true - $ref: '#/components/schemas/allauth.Timestamp' - allauth.PasskeySignup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - allauth.Password: - type: string - description: | - The password. - example: Alohomora! - allauth.Phone: - type: string - description: | - The phone number. - example: '+314159265359' - allauth.PhoneNumber: - type: object - description: | - A phone number. - properties: - phone: - type: string - example: '+314159265359' - verified: - type: boolean - required: - - phone - - verified - allauth.PhoneNumberChangeResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusAccepted' - data: - type: array - items: - $ref: '#/components/schemas/allauth.PhoneNumber' - required: - - status - - data - example: - status: 202 - data: - - phone: '+314159265359' - verified: false - allauth.PhoneNumbersResponse: - type: object - properties: - status: - $ref: '#/components/schemas/allauth.StatusOK' - data: - type: array - items: - $ref: '#/components/schemas/allauth.PhoneNumber' - required: - - status - - data - allauth.Process: - type: string - description: | - The process to be executed when the user successfully - authenticates. When set to `login`, the user will be logged into the - account to which the provider account is connected, or if no such - account exists, a signup will occur. If set to `connect`, the provider - account will be connected to the list of provider accounts for the - currently authenticated user. - enum: - - login - - connect - example: login - allauth.Provider: - type: object - properties: - id: - type: string - example: google - description: | - The provider ID. - name: - type: string - description: | - The name of the provider. - example: Google - client_id: - type: string - description: | - The client ID (in case of OAuth2 or OpenID Connect based providers) - example: 123.apps.googleusercontent.com - openid_configuration_url: - type: string - description: | - The OIDC discovery or well-known URL (in case of OAuth2 or OpenID Connect based providers) - example: https://accounts.google.com/.well-known/openid-configuration - flows: - type: array - description: | - The authentication flows the provider integration supports. - items: - $ref: '#/components/schemas/FlowsEnum' - required: - - id - - name - - flows - allauth.ProviderAccount: - type: object - properties: - uid: - $ref: '#/components/schemas/allauth.ProviderAccountID' - display: - type: string - description: | - A name derived from the third-party provider account data. - example: Wizzkid - provider: - $ref: '#/components/schemas/allauth.Provider' - required: - - uid - - provider - - display - allauth.ProviderAccountID: - type: string - description: | - The provider specific account ID. - example: goo12345 - allauth.ProviderID: - type: string - description: | - The provider ID. - example: google - allauth.ProviderList: - type: array - items: - $ref: '#/components/schemas/allauth.Provider' - allauth.ProviderRedirect: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - callback_url: - type: string - description: | - The URL to return to after the redirect flow is complete. - - Note that this is not to be mistaken with the callback URL that you - configure over at the OAuth provider during the OAuth app/client - setup. The flow is as follows: - - 1. Your frontend redirects to the headless provider redirect - endpoint in a synchronous (non-XHR) manner, informing allauth - (by means of `callback_url`) where to redirect to after the - provider handshake is completed. - - 2. Headless will redirect to the (OAuth) identity provider to - initiate the handshake, passing along a different callback URL - to the provider: one that points to an allauth backend URL. - This is the URL that you need to have setup at your OAuth - app/client configuration. Note that this must be a backend URL - as providers can use POST requests to perform their callbacks, - which is something a frontend would not be able to handle. - - 3. After the authorization at the provider is completed, the - provider redirects to the *backend* allauth callback URL, which - will then redirect back to the *frontend* callback URL. - - 4. Your frontend is now expected to fetch the current session to - determine what the next course of action is. The user could be - authenticated at this point, or another flow is pending - (e.g. email verification, or, provider signup). In case of - errors a `?error=` is passed to the frontend callback URL. - example: https://app.project.org/account/provider/callback - process: - $ref: '#/components/schemas/allauth.Process' - required: - - provider - - process - - callback_url - allauth.ProviderSignup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - allauth.ProviderToken: - type: object - properties: - provider: - $ref: '#/components/schemas/allauth.ProviderID' - process: - $ref: '#/components/schemas/allauth.Process' - token: - description: | - The token. - type: object - properties: - client_id: - $ref: '#/components/schemas/allauth.ClientID' - id_token: - type: string - description: | - The ID token. - example: eyJhbGciOiJI - access_token: - type: string - description: | - The access token. - example: 36POk6yJV_adQs - required: - - client_id - required: - - provider - - process - - token - allauth.Reauthenticate: - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - allauth.ReauthenticationRequired: - properties: - flows: - type: array - items: - $ref: '#/components/schemas/allauth.Flow' - user: - $ref: '#/components/schemas/allauth.User' - methods: - type: array - description: | - A list of methods used to authenticate. - items: - $ref: '#/components/schemas/allauth.AuthenticationMethod' - required: - - flows - - user - - methods - type: object - allauth.ReauthenticationResponse: - type: object - description: | - A response indicating reauthentication is required. - properties: - status: - $ref: '#/components/schemas/UnauthorizedStatus' - data: - $ref: '#/components/schemas/allauth.ReauthenticationRequired' - meta: - $ref: '#/components/schemas/allauth.AuthenticatedMeta' - required: - - status - - data - - meta - allauth.RecoveryCodesAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - allOf: - - $ref: '#/components/schemas/Allauth.RecoveryCodesAuthenticatorTypeEnum' - description: | - The authenticator type. - total_code_count: - type: integer - description: | - The total number of recovery codes that initially were available. - example: 10 - unused_code_count: - type: integer - description: | - The number of recovery codes that are unused. - example: 7 - required: - - type - - total_code_count - - unused_code_count - allauth.RefreshToken: - type: string - description: | - The refresh token. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30 - allauth.RequestLoginCode: - type: object - anyOf: - - title: Request login code (phone) - properties: - phone: - $ref: '#/components/schemas/allauth.Phone' - required: - - phone - - title: Request login code (email) - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.RequestPassword: - type: object - properties: - email: - $ref: '#/components/schemas/allauth.Email' - required: - - email - allauth.ResetPassword: - type: object - properties: - key: - type: string - description: The password reset key - example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 - password: - $ref: '#/components/schemas/allauth.Password' - required: - - key - - password - allauth.SensitiveRecoveryCodesAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator' - - type: object - properties: - unused_codes: - type: array - description: | - The list of unused codes. - items: - $ref: '#/components/schemas/allauth.AuthenticatorCode' - required: - - unused_codes - allauth.Session: - type: object - properties: - user_agent: - type: string - example: Mozilla Firefox - ip: - type: string - example: 127.2.3.192 - created_at: - $ref: '#/components/schemas/allauth.Timestamp' - is_current: - type: boolean - id: - type: integer - example: 123 - last_seen_at: - $ref: '#/components/schemas/allauth.Timestamp' - required: - - user_agent - - ip - - created_at - - is_current - - id - allauth.SessionGoneResponse: - type: object - description: | - The session is expired or invalid. - properties: - status: - $ref: '#/components/schemas/Allauth.SessionGoneResponseStatusEnum' - data: - type: object - meta: - $ref: '#/components/schemas/allauth.AuthenticationMeta' - required: - - status - - data - - meta - allauth.Signup: - allOf: - - $ref: '#/components/schemas/allauth.BaseSignup' - - type: object - properties: - password: - $ref: '#/components/schemas/allauth.Password' - required: - - password - allauth.SocialAccountConfiguration: - type: object - description: | - Configuration of the Django `allauth.socialaccount` app. - properties: - providers: - $ref: '#/components/schemas/allauth.ProviderList' - required: - - providers - allauth.StatusAccepted: - type: integer - enum: - - 202 - allauth.StatusOK: - type: integer - enum: - - 200 - allauth.TOTPAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - $ref: '#/components/schemas/Allauth.TOTPAuthenticatorTypeEnum' - required: - - type - allauth.Timestamp: - type: number - description: | - An epoch based timestamp (trivial to parse using: `new Date(value)*1000`) - example: 1711555057.065702 - allauth.User: - type: object - properties: - id: - description: | - The user ID. - oneOf: - - type: integer - example: 123 - - type: string - example: 89d3f9a0-51a5-49dd-8b97-7536641958e9 - display: - type: string - description: | - The display name for the user. - example: Magic Wizard - has_usable_password: - type: boolean - description: | - Whether or not the account has a password set. - example: true - email: - $ref: '#/components/schemas/allauth.Email' - username: - $ref: '#/components/schemas/allauth.Username' - allauth.UserSessionsConfiguration: - type: object - description: | - Configuration of the Django `allauth.usersessions` app. - properties: - track_activity: - type: boolean - description: | - Matches `settings.USERSESSIONS_TRACK_ACTIVITY`. - required: - - track_activity - allauth.Username: - type: string - description: | - The username. - example: wizard - allauth.VerifyEmail: - type: object - properties: - key: - type: string - description: The email verification key - example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333 - required: - - key - allauth.VerifyPhone: - type: object - properties: - code: - type: string - description: The phone verification code - example: 4S3H82 - required: - - code - allauth.WebAuthnAuthenticator: - allOf: - - $ref: '#/components/schemas/allauth.BaseAuthenticator' - - type: object - properties: - type: - $ref: '#/components/schemas/Allauth.WebAuthnAuthenticatorTypeEnum' - id: - $ref: '#/components/schemas/allauth.AuthenticatorID' - name: - type: string - example: Master key - is_passwordless: - type: boolean - description: | - Whether or not this authenticator represents a passkey. Absent if it is not specified. - required: - - type - - id - - name - allauth.WebAuthnCredential: - type: object - example: - credential: - type: public-key - id: -J4JNfPfnLyRSMK4R... - rawId: -J4JNfPfnLyRSMK4R... - authenticatorAttachment: cross-platform - response: - clientDataJSON: eyJjaGFsbGVuZ2UiOi... - authenticatorData: SZYN5YgO... - signature: MEUCIE-7sqILygPqGbrRZ4j2nqeqUU... - userHandle: Mg... - clientExtensionResults: {} - allauth.WebAuthnCredentialCreationOptions: - type: object - properties: - creation_options: - type: object - example: - status: 200 - data: - request_options: - publicKey: - challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o - rpId: localhost - allowCredentials: [] - userVerification: preferred - required: - - creation_options - allauth.WebAuthnCredentialRequestOptions: - type: object - properties: - request_options: - type: object - example: - status: 200 - data: - request_options: - publicKey: - challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o - rpId: localhost - allowCredentials: [] - userVerification: preferred - required: - - request_options - securitySchemes: - basicAuth: - type: http - scheme: basic - cookieAuth: - type: apiKey - in: cookie - name: sessionid - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: /o/authorize/ - tokenUrl: /o/token/ - refreshUrl: /o/revoke_token/ - scopes: - g:read: General Read scope - openid: OpenID Connect scope - a:staff: User Role Staff - a:superuser: User Role Superuser - r:view:admin: GET for Role Admin - r:view:part_category: GET for Role Part Categories - r:view:part: GET for Role Parts - r:view:stock_location: GET for Role Stock Locations - r:view:stock: GET for Role Stock Items - r:view:bom: GET for Role Bills of Material - r:view:build: GET for Role Build Orders - r:view:purchase_order: GET for Role Purchase Orders - r:view:sales_order: GET for Role Sales Orders - r:view:return_order: GET for Role Return Orders - r:view:transfer_order: GET for Role Transfer Orders - r:view:repair_order: GET for Role Repair Orders - r:add:admin: POST for Role Admin - r:add:part_category: POST for Role Part Categories - r:add:part: POST for Role Parts - r:add:stock_location: POST for Role Stock Locations - r:add:stock: POST for Role Stock Items - r:add:bom: POST for Role Bills of Material - r:add:build: POST for Role Build Orders - r:add:purchase_order: POST for Role Purchase Orders - r:add:sales_order: POST for Role Sales Orders - r:add:return_order: POST for Role Return Orders - r:add:transfer_order: POST for Role Transfer Orders - r:add:repair_order: POST for Role Repair Orders - r:change:admin: PUT / PATCH for Role Admin - r:change:part_category: PUT / PATCH for Role Part Categories - r:change:part: PUT / PATCH for Role Parts - r:change:stock_location: PUT / PATCH for Role Stock Locations - r:change:stock: PUT / PATCH for Role Stock Items - r:change:bom: PUT / PATCH for Role Bills of Material - r:change:build: PUT / PATCH for Role Build Orders - r:change:purchase_order: PUT / PATCH for Role Purchase Orders - r:change:sales_order: PUT / PATCH for Role Sales Orders - r:change:return_order: PUT / PATCH for Role Return Orders - r:change:transfer_order: PUT / PATCH for Role Transfer Orders - r:change:repair_order: PUT / PATCH for Role Repair Orders - r:delete:admin: DELETE for Role Admin - r:delete:part_category: DELETE for Role Part Categories - r:delete:part: DELETE for Role Parts - r:delete:stock_location: DELETE for Role Stock Locations - r:delete:stock: DELETE for Role Stock Items - r:delete:bom: DELETE for Role Bills of Material - r:delete:build: DELETE for Role Build Orders - r:delete:purchase_order: DELETE for Role Purchase Orders - r:delete:sales_order: DELETE for Role Sales Orders - r:delete:return_order: DELETE for Role Return Orders - r:delete:transfer_order: DELETE for Role Transfer Orders - r:delete:repair_order: DELETE for Role Repair Orders - clientCredentials: - tokenUrl: /o/token/ - refreshUrl: /o/revoke_token/ - scopes: - g:read: General Read scope - openid: OpenID Connect scope - a:staff: User Role Staff - a:superuser: User Role Superuser - r:view:admin: GET for Role Admin - r:view:part_category: GET for Role Part Categories - r:view:part: GET for Role Parts - r:view:stock_location: GET for Role Stock Locations - r:view:stock: GET for Role Stock Items - r:view:bom: GET for Role Bills of Material - r:view:build: GET for Role Build Orders - r:view:purchase_order: GET for Role Purchase Orders - r:view:sales_order: GET for Role Sales Orders - r:view:return_order: GET for Role Return Orders - r:view:transfer_order: GET for Role Transfer Orders - r:view:repair_order: GET for Role Repair Orders - r:add:admin: POST for Role Admin - r:add:part_category: POST for Role Part Categories - r:add:part: POST for Role Parts - r:add:stock_location: POST for Role Stock Locations - r:add:stock: POST for Role Stock Items - r:add:bom: POST for Role Bills of Material - r:add:build: POST for Role Build Orders - r:add:purchase_order: POST for Role Purchase Orders - r:add:sales_order: POST for Role Sales Orders - r:add:return_order: POST for Role Return Orders - r:add:transfer_order: POST for Role Transfer Orders - r:add:repair_order: POST for Role Repair Orders - r:change:admin: PUT / PATCH for Role Admin - r:change:part_category: PUT / PATCH for Role Part Categories - r:change:part: PUT / PATCH for Role Parts - r:change:stock_location: PUT / PATCH for Role Stock Locations - r:change:stock: PUT / PATCH for Role Stock Items - r:change:bom: PUT / PATCH for Role Bills of Material - r:change:build: PUT / PATCH for Role Build Orders - r:change:purchase_order: PUT / PATCH for Role Purchase Orders - r:change:sales_order: PUT / PATCH for Role Sales Orders - r:change:return_order: PUT / PATCH for Role Return Orders - r:change:transfer_order: PUT / PATCH for Role Transfer Orders - r:change:repair_order: PUT / PATCH for Role Repair Orders - r:delete:admin: DELETE for Role Admin - r:delete:part_category: DELETE for Role Part Categories - r:delete:part: DELETE for Role Parts - r:delete:stock_location: DELETE for Role Stock Locations - r:delete:stock: DELETE for Role Stock Items - r:delete:bom: DELETE for Role Bills of Material - r:delete:build: DELETE for Role Build Orders - r:delete:purchase_order: DELETE for Role Purchase Orders - r:delete:sales_order: DELETE for Role Sales Orders - r:delete:return_order: DELETE for Role Return Orders - r:delete:transfer_order: DELETE for Role Transfer Orders - r:delete:repair_order: DELETE for Role Repair Orders - tokenAuth: - type: apiKey - in: header - name: Authorization - description: Token-based authentication with required prefix "Token" -servers: -- url: http://localhost:8000 -externalDocs: - description: More information about InvenTree in the official docs - url: https://docs.inventree.org From bb88f19ed676e0ed4bd46761db725d49ef91871a Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 16:43:53 +0530 Subject: [PATCH 18/27] Fix: Resolve migration graph conflict by merging multiple 0120 leaf nodes --- .../order/migrations/0121_merge_20260604_1637.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/backend/InvenTree/order/migrations/0121_merge_20260604_1637.py diff --git a/src/backend/InvenTree/order/migrations/0121_merge_20260604_1637.py b/src/backend/InvenTree/order/migrations/0121_merge_20260604_1637.py new file mode 100644 index 000000000000..5d107e02b544 --- /dev/null +++ b/src/backend/InvenTree/order/migrations/0121_merge_20260604_1637.py @@ -0,0 +1,14 @@ +# Generated by Django 5.2.14 on 2026-06-04 11:07 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0120_purchaseorder_tags_returnorder_tags_salesorder_tags_and_more'), + ('order', '0120_repairorder_repairorderlineitem_and_more'), + ] + + operations = [ + ] From 527092d773b46d43d4b906d91ac0146f03a8513f Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 16:44:28 +0530 Subject: [PATCH 19/27] Feature: Implement React UI scaffolding for Repair Orders including Fixed Asset linking --- src/frontend/lib/enums/ApiEndpoints.tsx | 9 +- src/frontend/lib/enums/ModelInformation.tsx | 28 +- src/frontend/lib/enums/ModelType.tsx | 6 +- src/frontend/lib/index.ts | 1 - src/frontend/lib/types/Filters.tsx | 3 - src/frontend/lib/types/Forms.tsx | 3 +- src/frontend/package-lock.json | 9515 +++++++++++++++++ .../components/forms/fields/ApiFormField.tsx | 5 - .../components/forms/fields/BooleanField.tsx | 4 +- .../src/components/render/Generic.tsx | 6 - .../src/components/render/Instance.tsx | 12 +- src/frontend/src/components/render/Order.tsx | 60 + src/frontend/src/defaults/actions.tsx | 11 + src/frontend/src/defaults/backendMappings.tsx | 2 + src/frontend/src/defaults/links.tsx | 4 +- src/frontend/src/forms/BuildForms.tsx | 2 - src/frontend/src/forms/CompanyForms.tsx | 4 - src/frontend/src/forms/PartForms.tsx | 2 - src/frontend/src/forms/PurchaseOrderForms.tsx | 2 - src/frontend/src/forms/RepairOrderForms.tsx | 73 + src/frontend/src/forms/ReturnOrderForms.tsx | 2 - src/frontend/src/forms/SalesOrderForms.tsx | 3 - src/frontend/src/forms/StockForms.tsx | 2 - src/frontend/src/forms/TransferOrderForms.tsx | 2 - src/frontend/src/functions/icons.tsx | 2 + src/frontend/src/pages/build/BuildDetail.tsx | 30 +- .../src/pages/company/CompanyDetail.tsx | 43 +- .../pages/company/ManufacturerPartDetail.tsx | 36 +- .../src/pages/company/SupplierPartDetail.tsx | 36 +- src/frontend/src/pages/part/PartDetail.tsx | 6 +- .../pages/purchasing/PurchaseOrderDetail.tsx | 30 +- .../src/pages/sales/RepairOrderDetail.tsx | 407 + .../src/pages/sales/ReturnOrderDetail.tsx | 30 +- src/frontend/src/pages/sales/SalesIndex.tsx | 63 +- .../src/pages/sales/SalesOrderDetail.tsx | 30 +- .../pages/sales/SalesOrderShipmentDetail.tsx | 42 +- .../src/pages/stock/LocationDetail.tsx | 24 +- src/frontend/src/pages/stock/StockDetail.tsx | 35 +- .../src/pages/stock/TransferOrderDetail.tsx | 24 +- src/frontend/src/router.tsx | 5 + src/frontend/src/tables/Filter.tsx | 23 - .../src/tables/FilterSelectDrawer.tsx | 89 +- .../src/tables/build/BuildOrderFilters.tsx | 4 +- .../src/tables/company/CompanyTable.tsx | 4 +- .../src/tables/part/PartTableFilters.tsx | 7 +- .../purchasing/ManufacturerPartTable.tsx | 4 +- .../purchasing/PurchaseOrderFilters.tsx | 4 +- .../tables/purchasing/SupplierPartTable.tsx | 4 +- .../src/tables/sales/RepairOrderFilters.tsx | 39 + .../tables/sales/RepairOrderLineItemTable.tsx | 159 + .../sales/RepairOrderParametricTable.tsx | 51 + .../src/tables/sales/RepairOrderTable.tsx | 121 + .../src/tables/sales/ReturnOrderFilters.tsx | 4 +- .../src/tables/sales/SalesOrderFilters.tsx | 4 +- .../tables/sales/SalesOrderShipmentTable.tsx | 7 +- .../src/tables/stock/StockItemTable.tsx | 4 +- .../src/tables/stock/TransferOrderTable.tsx | 63 +- src/frontend/tests/pages/pui_build.spec.ts | 45 - src/frontend/tests/pages/pui_sales.spec.ts | 23 - src/frontend/yarn.lock | 2128 ++-- 60 files changed, 11572 insertions(+), 1819 deletions(-) create mode 100644 src/frontend/package-lock.json create mode 100644 src/frontend/src/forms/RepairOrderForms.tsx create mode 100644 src/frontend/src/pages/sales/RepairOrderDetail.tsx create mode 100644 src/frontend/src/tables/sales/RepairOrderFilters.tsx create mode 100644 src/frontend/src/tables/sales/RepairOrderLineItemTable.tsx create mode 100644 src/frontend/src/tables/sales/RepairOrderParametricTable.tsx create mode 100644 src/frontend/src/tables/sales/RepairOrderTable.tsx diff --git a/src/frontend/lib/enums/ApiEndpoints.tsx b/src/frontend/lib/enums/ApiEndpoints.tsx index 972b45e60c6b..db9e2fd0b23b 100644 --- a/src/frontend/lib/enums/ApiEndpoints.tsx +++ b/src/frontend/lib/enums/ApiEndpoints.tsx @@ -200,6 +200,14 @@ export enum ApiEndpoints { return_order_line_list = 'order/ro-line/', return_order_extra_line_list = 'order/ro-extra-line/', + repair_order_list = 'order/repair/', + repair_order_issue = 'order/repair/:id/issue/', + repair_order_hold = 'order/repair/:id/hold/', + repair_order_cancel = 'order/repair/:id/cancel/', + repair_order_complete = 'order/repair/:id/complete/', + repair_order_line_list = 'order/repair-line/', + repair_order_allocation_list = 'order/repair-allocation/', + transfer_order_list = 'order/transfer-order/', transfer_order_issue = 'order/transfer-order/:id/issue/', transfer_order_hold = 'order/transfer-order/:id/hold/', @@ -259,7 +267,6 @@ export enum ApiEndpoints { config_list = 'admin/config/', parameter_list = 'parameter/', parameter_template_list = 'parameter/template/', - tag_list = 'tag/', // Internal system things system_internal_trace_end = 'system-internal/observability/end' diff --git a/src/frontend/lib/enums/ModelInformation.tsx b/src/frontend/lib/enums/ModelInformation.tsx index 9c14e42da920..629bd99f659e 100644 --- a/src/frontend/lib/enums/ModelInformation.tsx +++ b/src/frontend/lib/enums/ModelInformation.tsx @@ -208,6 +208,28 @@ export const ModelInformationDict: ModelDict = { api_endpoint: ApiEndpoints.return_order_line_list, icon: 'return_orders' }, + repairorder: { + label: () => t`Repair Order`, + label_multiple: () => t`Repair Orders`, + url_overview: '/sales/index/repairorders', + url_detail: '/sales/repair-order/:pk/', + api_endpoint: ApiEndpoints.repair_order_list, + admin_url: '/order/repairorder/', + supports_barcode: true, + icon: 'repair_orders' + }, + repairorderlineitem: { + label: () => t`Repair Order Line Item`, + label_multiple: () => t`Repair Order Line Items`, + api_endpoint: ApiEndpoints.repair_order_line_list, + icon: 'repair_orders' + }, + repairorderallocation: { + label: () => t`Repair Order Allocation`, + label_multiple: () => t`Repair Order Allocations`, + api_endpoint: ApiEndpoints.repair_order_allocation_list, + icon: 'repair_orders' + }, transferorder: { label: () => t`Transfer Order`, label_multiple: () => t`Transfer Orders`, @@ -319,11 +341,5 @@ export const ModelInformationDict: ModelDict = { url_overview: '/settings/admin/errors', url_detail: '/settings/admin/errors/:pk/', icon: 'exclamation' - }, - tag: { - label: () => t`Tag`, - label_multiple: () => t`Tags`, - api_endpoint: ApiEndpoints.tag_list, - icon: 'tag' } }; diff --git a/src/frontend/lib/enums/ModelType.tsx b/src/frontend/lib/enums/ModelType.tsx index 76642756e281..36307891b038 100644 --- a/src/frontend/lib/enums/ModelType.tsx +++ b/src/frontend/lib/enums/ModelType.tsx @@ -24,6 +24,9 @@ export enum ModelType { salesordershipment = 'salesordershipment', returnorder = 'returnorder', returnorderlineitem = 'returnorderlineitem', + repairorder = 'repairorder', + repairorderlineitem = 'repairorderlineitem', + repairorderallocation = 'repairorderallocation', transferorder = 'transferorder', transferorderlineitem = 'transferorderlineitem', importsession = 'importsession', @@ -38,8 +41,7 @@ export enum ModelType { contenttype = 'contenttype', selectionlist = 'selectionlist', selectionentry = 'selectionentry', - error = 'error', - tag = 'tag' + error = 'error' } export enum PluginPanelKey { diff --git a/src/frontend/lib/index.ts b/src/frontend/lib/index.ts index 0dfb4f474294..3642e341baf9 100644 --- a/src/frontend/lib/index.ts +++ b/src/frontend/lib/index.ts @@ -110,7 +110,6 @@ export { ProgressBar } from './components/ProgressBar'; export { PassFailButton, YesNoButton } from './components/YesNoButton'; export { SearchInput } from './components/SearchInput'; export { TableColumnSelect } from './components/TableColumnSelect'; -export { default as TagsList } from './components/TagsList'; export { default as InvenTreeTable } from './components/InvenTreeTable'; export { RowViewAction, diff --git a/src/frontend/lib/types/Filters.tsx b/src/frontend/lib/types/Filters.tsx index afc07c79d9e3..53d5a563cadc 100644 --- a/src/frontend/lib/types/Filters.tsx +++ b/src/frontend/lib/types/Filters.tsx @@ -41,7 +41,6 @@ export type TableFilter = { name: string; label?: string; description?: string; - placeholder?: string; type?: TableFilterType; choices?: TableFilterChoice[]; choiceFunction?: () => TableFilterChoice[]; @@ -53,8 +52,6 @@ export type TableFilter = { apiFilter?: Record; model?: ModelType; modelRenderer?: (instance: any) => string; - transform?: (item: any) => TableFilterChoice; - multi?: boolean; }; /* diff --git a/src/frontend/lib/types/Forms.tsx b/src/frontend/lib/types/Forms.tsx index 03acfb0ad9fe..b918205b97ae 100644 --- a/src/frontend/lib/types/Forms.tsx +++ b/src/frontend/lib/types/Forms.tsx @@ -99,8 +99,7 @@ export type ApiFormFieldType = { | 'file upload' | 'nested object' | 'dependent field' - | 'table' - | 'tags'; + | 'table'; api_url?: string; pk_field?: string; model?: ModelType; diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json new file mode 100644 index 000000000000..264fa0a14e28 --- /dev/null +++ b/src/frontend/package-lock.json @@ -0,0 +1,9515 @@ +{ + "name": "@inventreedb/ui", + "version": "1.4.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@inventreedb/ui", + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.20.1", + "@codemirror/lang-liquid": "^6.3.2", + "@codemirror/language": "^6.12.2", + "@codemirror/lint": "^6.9.5", + "@codemirror/search": "^6.6.0", + "@codemirror/state": "^6.6.0", + "@codemirror/theme-one-dark": "^6.1.3", + "@codemirror/view": "^6.40.0", + "@emotion/react": "^11.13.3", + "@fortawesome/fontawesome-svg-core": "^7.0.0", + "@fortawesome/free-regular-svg-icons": "^7.0.0", + "@fortawesome/free-solid-svg-icons": "^7.0.0", + "@fortawesome/react-fontawesome": "^3.0.1", + "@fullcalendar/core": "^6.1.15", + "@fullcalendar/daygrid": "^6.1.15", + "@fullcalendar/interaction": "^6.1.15", + "@fullcalendar/react": "^6.1.15", + "@github/webauthn-json": "^2.1.1", + "@lingui/core": "^5.9.2", + "@lingui/react": "^5.9.2", + "@mantine/carousel": "^9.2.1", + "@mantine/charts": "^9.2.1", + "@mantine/core": "^9.2.1", + "@mantine/dates": "^9.2.1", + "@mantine/dropzone": "^9.2.1", + "@mantine/form": "^9.2.1", + "@mantine/hooks": "^9.2.1", + "@mantine/modals": "^9.2.1", + "@mantine/notifications": "^9.2.1", + "@mantine/spotlight": "^9.2.1", + "@mantine/vanilla-extract": "^9.2.1", + "@messageformat/date-skeleton": "^1.1.0", + "@sentry/react": "^10.43.0", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-query": "^5.56.2", + "@uiw/codemirror-theme-vscode": "^4.25.8", + "@uiw/react-codemirror": "^4.25.8", + "@uiw/react-split": "^5.9.4", + "@vanilla-extract/css": "^1.18.0", + "axios": "^1.13.6", + "clsx": "^2.1.1", + "codemirror": "^6.0.2", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", + "easymde": "^2.20.0", + "embla-carousel": "^8.5.2", + "embla-carousel-react": "^8.5.2", + "fuse.js": "^7.0.0", + "html5-qrcode": "^2.3.8", + "mantine-contextmenu": "^9.2.1", + "mantine-datatable": "^9.2.0", + "qrcode": "^1.5.4", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "react-grid-layout": "1.4.4", + "react-hook-form": "^7.62.0", + "react-is": "^19.2.4", + "react-router-dom": "^6.26.2", + "react-select": "^5.9.0", + "react-simplemde-editor": "^5.2.0", + "react-window": "1.8.11", + "recharts": "^3.1.2", + "styled-components": "^6.1.14", + "undici": "^6.24.0", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@babel/core": "^7.29.0", + "@babel/preset-react": "^7.28.5", + "@babel/preset-typescript": "^7.28.5", + "@babel/runtime": "^7.28.6", + "@codecov/vite-plugin": "^1.9.1", + "@lingui/babel-plugin-lingui-macro": "^5.9.2", + "@lingui/cli": "^5.9.2", + "@lingui/macro": "^5.9.2", + "@playwright/test": "^1.16.0", + "@types/node": "^25.5.0", + "@types/qrcode": "^1.5.5", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@types/react-grid-layout": "^1.3.5", + "@types/react-router-dom": "^5.3.3", + "@types/react-window": "^1.8.8", + "@vanilla-extract/vite-plugin": "^5.1.4", + "@vitejs/plugin-react": "^5.2.0", + "babel-plugin-macros": "^3.1.0", + "nyc": "^18.0.0", + "otpauth": "^9.4.1", + "path": "^0.12.7", + "rollup": "^4.59.0", + "rollup-plugin-license": "^3.7.0", + "typescript": "^5.9.3", + "vite": "^6.4.2", + "vite-plugin-babel-macros": "^1.0.6", + "vite-plugin-dts": "^4.5.4", + "vite-plugin-externals": "^0.6.2", + "vite-plugin-istanbul": "^8.0.0" + } + }, + "node_modules/@actions/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", + "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/exec": "^1.1.1", + "@actions/http-client": "^2.0.1" + } + }, + "node_modules/@actions/exec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/io": "^1.0.1" + } + }, + "node_modules/@actions/github": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", + "integrity": "sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.2.2", + "@octokit/plugin-rest-endpoint-methods": "^10.4.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "undici": "^5.28.5" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", + "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@actions/io": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", + "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codecov/bundler-plugin-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.9.1.tgz", + "integrity": "sha512-dt3ic7gMswz4p/qdkYPVJwXlLiLsz55rBBn2I7mr0HTG8pCoLRqnANJIwo5WrqGBZgPyVSMPBqBra6VxLWfDyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/github": "^6.0.0", + "chalk": "4.1.2", + "semver": "^7.5.4", + "unplugin": "^1.10.1", + "zod": "^3.22.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@codecov/bundler-plugin-core/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@codecov/vite-plugin": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@codecov/vite-plugin/-/vite-plugin-1.9.1.tgz", + "integrity": "sha512-S6Yne7comVulJ1jD3T7rCfYFHPR0zUjAYoLjUDPXNJCUrdzWJdf/ak/UepE7TicqQG+yBa6eb5WusqcPgg+1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@codecov/bundler-plugin-core": "^1.9.1", + "unplugin": "^1.10.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "vite": "4.x || 5.x || 6.x" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", + "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.3.tgz", + "integrity": "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.6.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", + "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.1.7" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz", + "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.12" + } + }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", + "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-liquid": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.2.tgz", + "integrity": "sha512-6PDVU3ZnfeYyz1at1E/ttorErZvZFXXt1OPhtfe1EZJ2V2iDFa0CwPqPgG5F7NXN0yONGoBogKmFAafKTqlwIw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.1" + } + }, + "node_modules/@codemirror/language": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.3.tgz", + "integrity": "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.9.5", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", + "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.35.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", + "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.6.0.tgz", + "integrity": "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", + "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.40.0.tgz", + "integrity": "sha512-WA0zdU7xfF10+5I3HhUUq3kqOx3KjqmtQ9lqZjfK7jtYk4G72YW9rezcSywpaUMCWOMlq+6E0pO1IWg1TNIhtg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.6.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.19", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.19.tgz", + "integrity": "sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.8", + "@floating-ui/utils": "^0.2.11", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.2.0.tgz", + "integrity": "sha512-IpR0bER9FY25p+e7BmFH25MZKEwFHTfRAfhOyJubgiDnoJNsSvJ7nigLraHtp4VOG/cy8D7uiV0dLkHOne5Fhw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.2.0.tgz", + "integrity": "sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.2.0.tgz", + "integrity": "sha512-iycmlN51EULlQ4D/UU9WZnHiN0CvjJ2TuuCrAh+1MVdzD+4ViKYH2deNAll4XAAYlZa8WAefHR5taSK8hYmSMw==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.2.0.tgz", + "integrity": "sha512-YTVITFGN0/24PxzXrwqCgnyd7njDuzp5ZvaCx5nq/jg55kUYd94Nj8UTchBdBofi/L0nwRfjGOg0E41d2u9T1w==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-3.3.0.tgz", + "integrity": "sha512-EHmHeTf8WgO29sdY3iX/7ekE3gNUdlc2RW6mm/FzELlHFKfTrA9S4MlyquRR+RRCRCn8+jXfLFpLGB2l7wCWyw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~6 || ~7", + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@fullcalendar/core": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", + "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", + "license": "MIT", + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz", + "integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz", + "integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/react": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.20.tgz", + "integrity": "sha512-1w0pZtceaUdfAnxMSCGHCQalhi+mR1jOe76sXzyAXpcPz/Lf0zHSdcGK/U2XpZlnQgQtBZW+d+QBnnzVQKCxAA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20", + "react": "^16.7.0 || ^17 || ^18 || ^19", + "react-dom": "^16.7.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/@github/webauthn-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@github/webauthn-json/-/webauthn-json-2.1.1.tgz", + "integrity": "sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==", + "deprecated": "Deprecated: Modern browsers support built-in WebAuthn JSON methods. Please use native browser methods instead. For more information, visit https://github.com/github/webauthn-json", + "license": "MIT", + "bin": { + "webauthn-json": "dist/bin/main.js" + } + }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", + "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", + "license": "MIT" + }, + "node_modules/@lezer/css": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.3.tgz", + "integrity": "sha512-RzBo8r+/6QJeow7aPHIpGVIH59xTcJXp399820gZoMo9noQDRVpJLheIBUicYwKcsbOYoBRoLZlf2720dG/4Tg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/html": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", + "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/javascript": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", + "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lingui/babel-plugin-extract-messages": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-5.9.3.tgz", + "integrity": "sha512-zm6QHDILmhj8olgLL2zHQn18yFA5mf4hX7QzCr1OOI/e815I0IkecCYue1Ych+y+B+V0eLriiW8AcfpDRCQFFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/babel-plugin-lingui-macro": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-5.9.3.tgz", + "integrity": "sha512-fLMhBarRsuqBGOq2YuEoqOjEAV2VNezz/+f/Dn0vLFHF/kAjnFwTHb8pL8DRSIMsWG16mPrGnLpdROZBmJlFtA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/runtime": "^7.20.13", + "@babel/types": "^7.20.7", + "@lingui/conf": "5.9.3", + "@lingui/core": "5.9.3", + "@lingui/message-utils": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/cli": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-5.9.3.tgz", + "integrity": "sha512-KEE0J4eGlfpiLZ+l019qjraWfqfh5mUmQSJeTFw5PulO4v50zvxw5tDX8stpBzJ3QtgUQZlrMUh0OTGdURaAMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.0", + "@babel/generator": "^7.21.1", + "@babel/parser": "^7.22.0", + "@babel/runtime": "^7.21.0", + "@babel/types": "^7.21.2", + "@lingui/babel-plugin-extract-messages": "5.9.3", + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "@lingui/conf": "5.9.3", + "@lingui/core": "5.9.3", + "@lingui/format-po": "5.9.3", + "@lingui/message-utils": "5.9.3", + "chokidar": "3.5.1", + "cli-table": "^0.3.11", + "commander": "^10.0.0", + "convert-source-map": "^2.0.0", + "date-fns": "^3.6.0", + "esbuild": "^0.25.1", + "glob": "^11.0.0", + "micromatch": "^4.0.7", + "ms": "^2.1.3", + "normalize-path": "^3.0.0", + "ora": "^5.1.0", + "picocolors": "^1.1.1", + "pofile": "^1.1.4", + "pseudolocale": "^2.0.0", + "source-map": "^0.7.6", + "threads": "^1.7.0" + }, + "bin": { + "lingui": "dist/lingui.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/cli/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@lingui/conf": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-5.9.3.tgz", + "integrity": "sha512-hVEoYHmO2A3XmFX4A5RuBgcoVBoM7Xgoqejeq25XELvesJj2s2T15F47TA5n3/S7iTqngd6n/8KxBli9TYwgqQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "cosmiconfig": "^8.0.0", + "jest-validate": "^29.4.3", + "jiti": "^2.5.1", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/core": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/core/-/core-5.9.3.tgz", + "integrity": "sha512-3b8LnDjx8POdQ6q6UKBe2DHynyQFCO66vm8/UPQnvlQowUk4Xdu5bK6oet11D9/vrSznrDDS+Qb5JVcNBUImgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@lingui/message-utils": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/format-po": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-5.9.3.tgz", + "integrity": "sha512-+LMnhWl7EmXrdOv10gopE1g8w8vtPY5Fxk72OORrGQFVMGBIioz4BEnKrNdV1ek2M+GxoMZtnUs17KrJN5Jv9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lingui/conf": "5.9.3", + "@lingui/message-utils": "5.9.3", + "date-fns": "^3.6.0", + "pofile": "^1.1.4" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/macro": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-5.9.3.tgz", + "integrity": "sha512-xWqJ+hpp5T+xmE++VYlcfMxrF48LpY5Ak9N/luibY9d0AqvyYZiiv7Xaq7E2eK69v9CJWx+6eXA6uPhC8gHY+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lingui/core": "5.9.3", + "@lingui/react": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/message-utils": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.9.3.tgz", + "integrity": "sha512-oAK7HA7lcQrzaEaM6G1T5RwwxJxaSKfG/IFIxpZIl49TSFQv+s9YPNgHnVi+d4DmterpXNxy9ZZ+NtckJx6u7g==", + "license": "MIT", + "dependencies": { + "@messageformat/parser": "^5.0.0", + "js-sha256": "^0.10.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/react": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/react/-/react-5.9.3.tgz", + "integrity": "sha512-aje78l3zGGZ3C75fiGhDVKyVALHfiKlYFjcOlZpgXY/JAVfFuZX+6wUGG9x1A8k7BfxrDy/ofHIBahPvNAqoKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@lingui/core": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3", + "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@mantine/carousel": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-9.2.1.tgz", + "integrity": "sha512-b0ZBDnKhzztEFWNWbbFpPMqaV/4k/lclX8KB0PfU+qhu3Fa6wjS1VIn4XLZu9N3vgkzPkNXwDzpcwFShA9Uvqw==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "embla-carousel": ">=8.0.0", + "embla-carousel-react": ">=8.0.0", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/charts": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-9.2.1.tgz", + "integrity": "sha512-AVP0VEfcsbWwLBeU8rbEsN2gz3GebQECTreRq5AJ0Z5V1eWmTO7XFkRP9C5C6oHnkY4Vppa1x8cRYgyTsc/YbQ==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "recharts": ">=3.2.1" + } + }, + "node_modules/@mantine/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-9.2.1.tgz", + "integrity": "sha512-CicPg9i2dM2pGp1jj+dMiR/63OFDsPjgJke4v5+0nbfJ+C7gn4C+7ltrp4RIETDMZHcj0fFuDRG0qtbiyBxvWA==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.19", + "clsx": "^2.1.1", + "react-number-format": "^5.4.5", + "react-remove-scroll": "^2.7.2", + "type-fest": "^5.6.0" + }, + "peerDependencies": { + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/dates": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-9.2.1.tgz", + "integrity": "sha512-cyRC8bnZ6W+SzQf/RM+/eDeWhZTZF148z+OcgqiERdkAujh0q88Ddybv/Hshv1EOf0rCe6oiHSZWxIxmUf7KAg==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "dayjs": ">=1.0.0", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/dropzone": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-9.2.1.tgz", + "integrity": "sha512-rgebEz2bUubqA5jQpsh0SZ9/4DJFnUSF+a4p8uzAVlgNfo6aU/r+I4lEsD8gzLKuxrfN0TgkwR1qmAjLWIy0yQ==", + "license": "MIT", + "dependencies": { + "react-dropzone": "15.0.0" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/form": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-9.2.1.tgz", + "integrity": "sha512-PV0dcbmsKhZkn3Ryztqp8Kb1N16v2nWXO71p4utTmN7E/lHWHO1ccj7Y72sIteWJo1YeNHzzkssaYRSnxgOvYA==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "fast-deep-equal": "^3.1.3", + "klona": "^2.0.6" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/hooks": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-9.2.1.tgz", + "integrity": "sha512-IX/ztVG9eWmQTRsN7G8odyW4JckNvN8qv5A2ULzXyazjtAKLuaUpuMz0c6XhRp10J0g4bVfV3rhrTgWeImqxqg==", + "license": "MIT", + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/modals": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-9.2.1.tgz", + "integrity": "sha512-YvZ85ZtMg6arFserkmmP18gJRD9ztLLT3vz8UrkwCdVwTGGr14X93hhS0UtR5X96ANXUzC8fU/S2ncQmNqw+NQ==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/notifications": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-9.2.1.tgz", + "integrity": "sha512-H6lSsKUPdWPYcXFeOcqqcegUl72Iua9yD369s/gchfDvI+PrL4IM5UuWNHTeABJ1eb9FbTOw8B5RDSMZjTZNSA==", + "license": "MIT", + "dependencies": { + "@mantine/store": "9.2.1", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/spotlight": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-9.2.1.tgz", + "integrity": "sha512-D6/BJ8/ftUBwiSFGTtYUM/LqlBk40XZqZFlmEFRM8chDPzEId1O+5FU7mj8KapPR9zRgoAcdT4LMI6JaLp0c0A==", + "license": "MIT", + "dependencies": { + "@mantine/store": "9.2.1" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/store": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-9.2.1.tgz", + "integrity": "sha512-sBTHt9ilfSZAeXQlqFkm8nRm22RunhevxuOUtdSwS9HhuMuS8T27dRRgbdKH2oEFUbaccdQSy5bHbmGbEgVO8w==", + "license": "MIT", + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/vanilla-extract": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/vanilla-extract/-/vanilla-extract-9.2.1.tgz", + "integrity": "sha512-5cNesX5kdmClWCMFqxDIVZF2JRCne2OrIj5UE3tuyGJAY3IGkchBnAf/bEx3c5QDSXxq4+6y97hs5gQBgODePA==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", + "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", + "license": "MIT" + }, + "node_modules/@messageformat/parser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", + "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "license": "MIT", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.58.7", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.58.7.tgz", + "integrity": "sha512-yK6OycD46gIzLRpj6ueVUWPk1ACSpkN1LBo05gY1qPTylbWyUCanXfH7+VgkI5LJrJoRSQR5F04XuCffCXLOBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.33.8", + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1", + "@rushstack/rig-package": "0.7.3", + "@rushstack/terminal": "0.24.0", + "@rushstack/ts-command-line": "5.3.9", + "diff": "~8.0.2", + "minimatch": "10.2.3", + "resolve": "~1.22.1", + "semver": "~7.7.4", + "source-map": "~0.6.1", + "typescript": "5.9.3" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.33.8", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.8.tgz", + "integrity": "sha512-aIcoQggPyer3B6Ze3usz0YWC/oBwUHfRH5ETUsr+oT2BRA6SfTJl7IKPcPZkX4UR+PohowzW4uMxsvjrn8vm+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", + "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.1.tgz", + "integrity": "sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.16.0", + "ajv": "~8.18.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", + "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", + "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@playwright/test": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", + "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", + "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz", + "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz", + "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz", + "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz", + "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz", + "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz", + "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz", + "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz", + "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz", + "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz", + "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz", + "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz", + "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz", + "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz", + "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz", + "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz", + "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz", + "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz", + "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz", + "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz", + "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz", + "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz", + "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz", + "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz", + "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz", + "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.23.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.23.1.tgz", + "integrity": "sha512-wlKmIKIYCKuCASbITvOxLZXepPbwXvrv7S6ig6XNWFchSyhL/E2txmVXspHY49Wu2dzf7nI27a2k/yV5BA3EiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.18.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~11.3.0", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.7.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/problem-matcher": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz", + "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.3.tgz", + "integrity": "sha512-aAA518n6wxxjCfnTAOjQnm7ngNE0FVHxHAw2pxKlIhxrMn0XQjGcXKF0oKWpjBgJOmsaJpVob/v+zr3zxgPWuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jju": "~1.4.0", + "resolve": "~1.22.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.24.0.tgz", + "integrity": "sha512-8ZQS4MMaGsv27EXCBiH7WMPkRZrffeDoIevs6z9TM5dzqiY6+Hn4evfK/G+gvgBTjfvfkHIZPQQmalmI2sM4TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.23.1", + "@rushstack/problem-matcher": "0.2.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.9.tgz", + "integrity": "sha512-GIHqU+sRGQ3LGWAZu1O+9Yh++qwtyNIIGuNbcWHJjBTm2qRez0cwINUHZ+pQLR8UuzZDcMajrDaNbUYoaL/XtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.24.0", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@sentry-internal/browser-utils": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.46.0.tgz", + "integrity": "sha512-WB1gBT9G13V02ekZ6NpUhoI1aGHV2eNfjEPthkU2bGBvFpQKnstwzjg7waIRGR7cu+YSW2Q6UI6aQLgBeOPD1g==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.46.0.tgz", + "integrity": "sha512-c4pI/z9nZCQXe9GYEw/hE/YTY9AxGBp8/wgKI+T8zylrN35SGHaXv63szzE1WbI8lacBY8lBF7rstq9bQVCaHw==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.46.0.tgz", + "integrity": "sha512-JBsWeXG6bRbxBFK8GzWymWGOB9QE7Kl57BeF3jzgdHTuHSWZ2mRnAmb1K05T4LU+gVygk6yW0KmdC8Py9Qzg9A==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.46.0.tgz", + "integrity": "sha512-ub314MWUsekVCuoH0/HJbbimlI24SkV745UW2pj9xRbxOAEf1wjkmIzxKrMDbTgJGuEunug02XZVdJFJUzOcDw==", + "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/browser": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.46.0.tgz", + "integrity": "sha512-80DmGlTk5Z2/OxVOzLNxwolMyouuAYKqG8KUcoyintZqHbF6kO1RulI610HmyUt3OagKeBCqt9S7w0VIfCRL+Q==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.46.0", + "@sentry-internal/feedback": "10.46.0", + "@sentry-internal/replay": "10.46.0", + "@sentry-internal/replay-canvas": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/core": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.46.0.tgz", + "integrity": "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/react": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.46.0.tgz", + "integrity": "sha512-Rb1S+9OuUPVwsz7GWnQ6Kgf3azbsseUymIegg3JZHNcW/fM1nPpaljzTBnuineia113DH0pgMBcdrrZDLaosFQ==", + "license": "MIT", + "dependencies": { + "@sentry/browser": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@tabler/icons": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.40.0.tgz", + "integrity": "sha512-V/Q4VgNPKubRTiLdmWjV/zscYcj5IIk+euicUtaVVqF6luSC9rDngYWgST5/yh3Mrg/mYUwRv1YVTk71Jp0twQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.40.0.tgz", + "integrity": "sha512-oO5+6QCnna4a//mYubx4euZfECtzQZFDGsDMIdzZUhbdyBCT+3bRVFBPueGIcemWld4Vb/0UQ39C/cmGfGylAg==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "3.40.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + }, + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", + "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", + "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.95.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/codemirror": { + "version": "5.60.17", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.17.tgz", + "integrity": "sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==", + "license": "MIT", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/marked": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/qrcode": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.6.tgz", + "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/react-grid-layout": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.6.tgz", + "integrity": "sha512-Cw7+sb3yyjtmxwwJiXtEXcu5h4cgs+sCGkHwHXsFmPyV30bf14LeD/fa2LwQovuD2HWxCcjIdNhDlcYGj95qGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.8.tgz", + "integrity": "sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@uiw/codemirror-extensions-basic-setup": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.9.tgz", + "integrity": "sha512-QFAqr+pu6lDmNpAlecODcF49TlsrZ0bj15zPzfhiqSDl+Um3EsDLFLppixC7kFLn+rdDM2LTvVjn5CPvefpRgw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/autocomplete": ">=6.0.0", + "@codemirror/commands": ">=6.0.0", + "@codemirror/language": ">=6.0.0", + "@codemirror/lint": ">=6.0.0", + "@codemirror/search": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/codemirror-theme-vscode": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.25.9.tgz", + "integrity": "sha512-9KTnScHTSk97yGnyNYvDm6QZuBCdbO1OzMQ5bHtoBSPSVtH0LjY3bS6CXsBagb22v8OLPx/XwrBYOjKFp409CQ==", + "license": "MIT", + "dependencies": { + "@uiw/codemirror-themes": "4.25.9" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/@uiw/codemirror-themes": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.25.9.tgz", + "integrity": "sha512-DAHKb/L9ELwjY4nCf/MP/mIllHOn4GQe7RR4x8AMJuNeh9nGRRoo1uPxrxMmUL/bKqe6kDmDbIZ2AlhlqyIJuw==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/language": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/react-codemirror": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.9.tgz", + "integrity": "sha512-HftqCBUYShAOH0pGi1CHP8vfm5L8fQ3+0j0VI6lQD6QpK+UBu3J7nxfEN5O/BXMilMNf9ZyFJRvRcuMMOLHMng==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@codemirror/commands": "^6.1.0", + "@codemirror/state": "^6.1.1", + "@codemirror/theme-one-dark": "^6.0.0", + "@uiw/codemirror-extensions-basic-setup": "4.25.9", + "codemirror": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.11.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/theme-one-dark": ">=6.0.0", + "@codemirror/view": ">=6.0.0", + "codemirror": ">=6.0.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@uiw/react-split": { + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/@uiw/react-split/-/react-split-5.9.4.tgz", + "integrity": "sha512-gZbMMAV9xFDJQ3aKAzMXVvQfrCFWPILvxFGM2DSdIvhKwjSWP+yTl8fNI246Nu3XR4iHyB4Cohh9JJZEbfIXjQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@vanilla-extract/babel-plugin-debug-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.2.2.tgz", + "integrity": "sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.9" + } + }, + "node_modules/@vanilla-extract/compiler": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/compiler/-/compiler-0.6.0.tgz", + "integrity": "sha512-FlZM8s/h1obGHdYSTo05iIXUr6hsNvoE/okv/e9Sq7GN+niofhUKyuZPSwZNVYMK49xxeWNH9mopOlGRRPV4mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vanilla-extract/css": "^1.20.0", + "@vanilla-extract/integration": "^8.0.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vite-node": "^3.2.2 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vanilla-extract/css": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.20.0.tgz", + "integrity": "sha512-yKuajXFlghIjRZmEfy95z6MYj+mzJPoD3nbNLVAUB8Np6I1P9g5vBlznQPD+0A46osCn0za/wIvp/cg8HU3aig==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.9", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.2.3", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "lru-cache": "^10.4.3", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/css/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/@vanilla-extract/integration": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-8.0.9.tgz", + "integrity": "sha512-NP+CSo5IYHDmkMMy5vAxY4R9i2+CAg4sxgvVaxuHiuY9q30i6dNUTujNNKZGW2urEkd4HVVI6NggeIyYjbGPwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/plugin-syntax-typescript": "^7.23.3", + "@vanilla-extract/babel-plugin-debug-ids": "^1.2.2", + "@vanilla-extract/css": "^1.19.1", + "dedent": "^1.5.3", + "esbuild": "npm:esbuild@>=0.17.6 <0.28.0", + "eval": "0.1.8", + "find-up": "^5.0.0", + "javascript-stringify": "^2.0.1", + "mlly": "^1.4.2" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.9.tgz", + "integrity": "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==", + "license": "MIT" + }, + "node_modules/@vanilla-extract/vite-plugin": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-5.2.1.tgz", + "integrity": "sha512-1dmCgmTmls/c4G+t453vZIzZ+82ftr+JC2J48C1drVkiwtZ7DscYSIko9Ci0CyDptBLWz5EO9fWnqzfHnns8tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vanilla-extract/compiler": "^0.6.0", + "@vanilla-extract/integration": "^8.0.9" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", + "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.29.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-rc.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.18.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz", + "integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.31", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz", + "integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.31", + "@vue/shared": "3.5.31" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", + "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.4.9", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz", + "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/alien-signals": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", + "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "devOptional": true, + "license": "Python-2.0" + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/attr-accept": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dev": true, + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==", + "license": "MIT", + "dependencies": { + "typo-js": "*" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/commenting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", + "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/dayjs": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dompurify": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", + "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/easymde": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/easymde/-/easymde-2.20.0.tgz", + "integrity": "sha512-V1Z5f92TfR42Na852OWnIZMbM7zotWQYTddNaLYZFVKj7APBbyZ3FYJ27gBw2grMW3R6Qdv9J8n5Ij7XRSIgXQ==", + "license": "MIT", + "dependencies": { + "@types/codemirror": "^5.60.10", + "@types/marked": "^4.0.7", + "codemirror": "^5.65.15", + "codemirror-spell-checker": "1.1.2", + "marked": "^4.1.0" + } + }, + "node_modules/easymde/node_modules/codemirror": { + "version": "5.65.21", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.21.tgz", + "integrity": "sha512-6teYk0bA0nR3QP0ihGMoxuKzpl5W80FpnHpBJpgy66NK3cZv5b/d/HY8PnRvfSsCG1MTfr92u2WUl+wT0E40mQ==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.361", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", + "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/embla-carousel-react": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", + "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", + "license": "MIT", + "dependencies": { + "embla-carousel": "8.6.0", + "embla-carousel-reactive-utils": "8.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/embla-carousel-reactive-utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", + "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-toolkit": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.45.1.tgz", + "integrity": "sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/file-selector": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "license": "MIT", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", + "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html5-qrcode": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.3.8.tgz", + "integrity": "sha512-jsr4vafJhwoLVEDW3n1KvPnCCXWaQfRng0/EEYk1vNcQGcG/htAdhJX0be8YyqMoSz7+hZvOZSTAepsabiuhiQ==", + "license": "Apache-2.0" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-observable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", + "integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-3.0.0.tgz", + "integrity": "sha512-P7nLXRRlo7Sqinty6lNa7+4o9jBUYGpqtejqCOZKfgXlRoxY/QArflcB86YO500Ahj4pDJEG34JjMRbQgePLnQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^6.1.3", + "uuid": "^8.3.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-sha256": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.10.1.tgz", + "integrity": "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "devOptional": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/local-pkg/node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/local-pkg/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mantine-contextmenu": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/mantine-contextmenu/-/mantine-contextmenu-9.2.1.tgz", + "integrity": "sha512-oqFPT9qOQBPgf2eSuiujGQp38QgV0WsIIMxQkPfkjVc8FWAKcnXv7OGxGN1ctRrcMqUbsS34rjI0SvNdmFwG8A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/icflorescu" + }, + "peerDependencies": { + "@mantine/core": ">=9", + "@mantine/hooks": ">=9", + "clsx": ">=2", + "react": ">=19", + "react-dom": ">=19" + } + }, + "node_modules/mantine-datatable": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mantine-datatable/-/mantine-datatable-9.2.0.tgz", + "integrity": "sha512-TK6SZ6dH/PQUedfhkJuSLMcd4P4m5L6kMJWfAF9cS4wBeoAtBWGpLs+n/E8yI6w1rYAtLsGQvFA6S9Xnfw0JFw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/icflorescu" + }, + "peerDependencies": { + "@mantine/core": ">=9.0", + "@mantine/hooks": ">=9.0", + "clsx": ">=2", + "react": ">=19", + "react-dom": ">=19" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz", + "integrity": "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==", + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moo": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz", + "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==", + "license": "BSD-3-Clause" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-18.0.0.tgz", + "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^3.3.0", + "get-package-type": "^0.1.0", + "glob": "^13.0.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^6.0.2", + "istanbul-lib-processinfo": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^6.1.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^3.0.0", + "test-exclude": "^8.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/observable-fns": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz", + "integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/otpauth": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.5.0.tgz", + "integrity": "sha512-Ldhc6UYl4baR5toGr8nfKC+L/b8/RgHKoIixAebgoNGzUUCET02g04rMEZ2ZsPfeVQhMHcuaOgb28nwMr81zCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.0.1" + }, + "funding": { + "url": "https://github.com/hectorm/otpauth?sponsor=1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/package-name-regex": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", + "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/dword-design" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.0.tgz", + "integrity": "sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/playwright": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pofile": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/pofile/-/pofile-1.1.4.tgz", + "integrity": "sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/pseudolocale": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pseudolocale/-/pseudolocale-2.2.0.tgz", + "integrity": "sha512-O+D2eU7fO9wVLqrohvt9V/9fwMadnJQ4jxwiK+LeNEqhMx8JYx4xQHkArDCJFAdPPOp/pQq6z5L37eBvAoc8jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "pseudolocale": "dist/cli.mjs" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-draggable": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", + "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-dropzone": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-15.0.0.tgz", + "integrity": "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==", + "license": "MIT", + "dependencies": { + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/react-grid-layout": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz", + "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "fast-equals": "^4.0.3", + "prop-types": "^15.8.1", + "react-draggable": "^4.4.5", + "react-resizable": "^3.0.5", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.72.0.tgz", + "integrity": "sha512-V4v6jubaf6JAurEaVnT9aUPKFbNtDgohj5CIgVGyPHvT9wRx5OZHVjz31GsxnPNI278XMu+ruFz+wGOscHaLKw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", + "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", + "license": "MIT" + }, + "node_modules/react-number-format": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.5.tgz", + "integrity": "sha512-y8O2yHHj3w0aE9XO8d2BCcUOOdQTRSVq+WIuMlLVucAm5XNjJAy+BoOJiuQMldVYVOKTMyvVNfnbl2Oqp+YxGw==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-resizable": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.1.3.tgz", + "integrity": "sha512-liJBNayhX7qA4tBJiBD321FDhJxgGTJ07uzH5zSORXoE8h7PyEZ8mLqmosST7ppf6C4zUsbd2gzDMmBCfFp9Lw==", + "license": "MIT", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.5.0" + }, + "peerDependencies": { + "react": ">= 16.3", + "react-dom": ">= 16.3" + } + }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-select": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.2.tgz", + "integrity": "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-simplemde-editor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-simplemde-editor/-/react-simplemde-editor-5.2.0.tgz", + "integrity": "sha512-GkTg1MlQHVK2Rks++7sjuQr/GVS/xm6y+HchZ4GPBWrhcgLieh4CjK04GTKbsfYorSRYKa0n37rtNSJmOzEDkQ==", + "license": "MIT", + "dependencies": { + "@types/codemirror": "~5.60.5" + }, + "peerDependencies": { + "easymde": ">= 2.0.0 < 3.0.0", + "react": ">=16.8.2", + "react-dom": ">=16.8.2" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-window": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-window/node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.8.1.tgz", + "integrity": "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "^1.9.0 || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^10.1.1", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.1.1", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/rimraf": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", + "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.0", + "@rollup/rollup-android-arm64": "4.60.0", + "@rollup/rollup-darwin-arm64": "4.60.0", + "@rollup/rollup-darwin-x64": "4.60.0", + "@rollup/rollup-freebsd-arm64": "4.60.0", + "@rollup/rollup-freebsd-x64": "4.60.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", + "@rollup/rollup-linux-arm-musleabihf": "4.60.0", + "@rollup/rollup-linux-arm64-gnu": "4.60.0", + "@rollup/rollup-linux-arm64-musl": "4.60.0", + "@rollup/rollup-linux-loong64-gnu": "4.60.0", + "@rollup/rollup-linux-loong64-musl": "4.60.0", + "@rollup/rollup-linux-ppc64-gnu": "4.60.0", + "@rollup/rollup-linux-ppc64-musl": "4.60.0", + "@rollup/rollup-linux-riscv64-gnu": "4.60.0", + "@rollup/rollup-linux-riscv64-musl": "4.60.0", + "@rollup/rollup-linux-s390x-gnu": "4.60.0", + "@rollup/rollup-linux-x64-gnu": "4.60.0", + "@rollup/rollup-linux-x64-musl": "4.60.0", + "@rollup/rollup-openbsd-x64": "4.60.0", + "@rollup/rollup-openharmony-arm64": "4.60.0", + "@rollup/rollup-win32-arm64-msvc": "4.60.0", + "@rollup/rollup-win32-ia32-msvc": "4.60.0", + "@rollup/rollup-win32-x64-gnu": "4.60.0", + "@rollup/rollup-win32-x64-msvc": "4.60.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-license": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.7.1.tgz", + "integrity": "sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commenting": "^1.1.0", + "fdir": "^6.4.3", + "lodash": "^4.17.21", + "magic-string": "^0.30.0", + "moment": "^2.30.1", + "package-name-regex": "^2.0.6", + "spdx-expression-validate": "^2.0.0", + "spdx-satisfies": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/rollup-plugin-license/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-license/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" + }, + "node_modules/spawn-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-3.0.0.tgz", + "integrity": "sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "cross-spawn": "^7.0.6", + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^6.1.3", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/spawn-wrap/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-expression-validate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", + "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)", + "dependencies": { + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)" + }, + "node_modules/spdx-satisfies": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", + "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT" + }, + "node_modules/styled-components": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.4.2.tgz", + "integrity": "sha512-xZBhBJsMtGqb+aKcwKgaT+BtuFums9VynX2JRvXJGTx5UfZzN12rk5r4nVdhXYvRw+hE7yiYxVrOqJZaK2+Txg==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.4.0", + "css-to-react-native": "3.2.0", + "csstype": "3.2.3", + "stylis": "4.3.6" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "css-to-react-native": ">= 3.2.0", + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-native": ">= 0.68.0" + }, + "peerDependenciesMeta": { + "css-to-react-native": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT" + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-8.0.0.tgz", + "integrity": "sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^13.0.6", + "minimatch": "^10.2.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/threads": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz", + "integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.1.0", + "debug": "^4.2.0", + "is-observable": "^2.1.0", + "observable-fns": "^0.6.1" + }, + "funding": { + "url": "https://github.com/andywer/threads.js?sponsor=1" + }, + "optionalDependencies": { + "tiny-worker": ">= 2" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-worker": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", + "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "esm": "^3.2.25" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typo-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.3.1.tgz", + "integrity": "sha512-elJkpCL6Z77Ghw0Lv0lGnhBAjSTOQ5FhiVOCfOuxhaoTT2xtLVbqikYItK5HHchzPbHEUFAcjOH669T2ZzeCbg==", + "license": "BSD-3-Clause" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", + "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", + "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-6.0.0.tgz", + "integrity": "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^7.0.0", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^8.0.0" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vite-plugin-babel-macros": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-babel-macros/-/vite-plugin-babel-macros-1.0.6.tgz", + "integrity": "sha512-7cCT8jtu5UjpE46pH7RyVltWw5FbhDAtQliZ6QGqRNR5RUZKdAsB0CDjuF+VBoDpnl0KuESPu22SoNqXRYYWyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.17.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7", + "@types/babel__core": "^7.1.18", + "babel-plugin-macros": "^3.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "vite": ">=2" + } + }, + "node_modules/vite-plugin-dts": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz", + "integrity": "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor": "^7.50.1", + "@rollup/pluginutils": "^5.1.4", + "@volar/typescript": "^2.4.11", + "@vue/language-core": "2.2.0", + "compare-versions": "^6.1.1", + "debug": "^4.4.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite-plugin-externals": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/vite-plugin-externals/-/vite-plugin-externals-0.6.2.tgz", + "integrity": "sha512-R5oVY8xDJjLXLTs2XDYzvYbc/RTZuIwOx2xcFbYf+/VXB6eJuatDgt8jzQ7kZ+IrgwQhe6tU8U2fTyy72C25CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.4.0", + "es-module-lexer": "^0.4.1", + "fs-extra": "^10.0.0", + "magic-string": "^0.25.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-externals/node_modules/es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-externals/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-externals/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/vite-plugin-istanbul": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-istanbul/-/vite-plugin-istanbul-8.0.0.tgz", + "integrity": "sha512-r6L7cg2iwPqNnY/rWFyemWeDTIKRZjekEWS90e2FsTjDYH4UdTS6hvW1nEX1B++PKPCnqCaj5BJTDn5Cy5jYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.29.1", + "@istanbuljs/load-nyc-config": "^1.1.0", + "@types/babel__generator": "7.27.0", + "espree": "^11.2.0", + "istanbul-lib-instrument": "^6.0.3", + "picocolors": "^1.1.1", + "source-map": "^0.7.6", + "test-exclude": "^8.0.0" + }, + "peerDependencies": { + "vite": ">=4" + } + }, + "node_modules/vite-plugin-istanbul/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zustand": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz", + "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +} diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index adffd6063e66..32acc3bdad6a 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -17,7 +17,6 @@ import { NestedObjectField } from './NestedObjectField'; import NumberField from './NumberField'; import { RelatedModelField } from './RelatedModelField'; import { TableField } from './TableField'; -import TagsField from './TagsField'; import TextField from './TextField'; /** @@ -250,10 +249,6 @@ export function ApiFormField({ control={controller} /> ); - case 'tags': - return ( - - ); default: return ( diff --git a/src/frontend/src/components/forms/fields/BooleanField.tsx b/src/frontend/src/components/forms/fields/BooleanField.tsx index e293d82b3c62..c05b04f39333 100644 --- a/src/frontend/src/components/forms/fields/BooleanField.tsx +++ b/src/frontend/src/components/forms/fields/BooleanField.tsx @@ -34,13 +34,13 @@ export function BooleanField({ // Coerce the value to a (stringified) boolean value const booleanValue: boolean = useMemo(() => { - return isTrue(value ?? definition.default ?? false); + return isTrue(value); }, [value]); return ( ; } -export function RenderTag({ - instance -}: Readonly): ReactNode { - return instance && ; -} - export function RenderImportSession({ instance }: { diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 8e8353781e78..6a10f8e45b1d 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -55,13 +55,15 @@ import { RenderParameterTemplate, RenderProjectCode, RenderSelectionEntry, - RenderSelectionList, - RenderTag + RenderSelectionList } from './Generic'; import { RenderPurchaseOrder, RenderReturnOrder, RenderReturnOrderLineItem, + RenderRepairOrder, + RenderRepairOrderLineItem, + RenderRepairOrderAllocation, RenderSalesOrder, RenderSalesOrderShipment, RenderTransferOrder, @@ -99,6 +101,9 @@ export const RendererLookup: ModelRendererDict = { [ModelType.purchaseorderlineitem]: RenderPurchaseOrder, [ModelType.returnorder]: RenderReturnOrder, [ModelType.returnorderlineitem]: RenderReturnOrderLineItem, + [ModelType.repairorder]: RenderRepairOrder, + [ModelType.repairorderlineitem]: RenderRepairOrderLineItem, + [ModelType.repairorderallocation]: RenderRepairOrderAllocation, [ModelType.salesorder]: RenderSalesOrder, [ModelType.salesordershipment]: RenderSalesOrderShipment, [ModelType.transferorder]: RenderTransferOrder, @@ -117,8 +122,7 @@ export const RendererLookup: ModelRendererDict = { [ModelType.contenttype]: RenderContentType, [ModelType.selectionlist]: RenderSelectionList, [ModelType.selectionentry]: RenderSelectionEntry, - [ModelType.error]: RenderError, - [ModelType.tag]: RenderTag + [ModelType.error]: RenderError }; /** diff --git a/src/frontend/src/components/render/Order.tsx b/src/frontend/src/components/render/Order.tsx index c9475d7dea83..49d533d36d90 100644 --- a/src/frontend/src/components/render/Order.tsx +++ b/src/frontend/src/components/render/Order.tsx @@ -80,6 +80,66 @@ export function RenderReturnOrderLineItem( ); } +/** + * Inline rendering of a single RepairOrder instance + */ +export function RenderRepairOrder( + props: Readonly +): ReactNode { + const { instance } = props; + const customer = instance?.customer_detail || {}; + + return ( + + ); +} + +export function RenderRepairOrderLineItem( + props: Readonly +): ReactNode { + const { instance } = props; + + return ( + + ); +} + +export function RenderRepairOrderAllocation({ + instance +}: Readonly<{ + instance: any; +}>): ReactNode { + const order = instance.order_detail || {}; + + return ( + {`${t`Allocation`} ${instance.pk}`}} + /> + ); +} + /** * Inline rendering of a single SalesOrder instance */ diff --git a/src/frontend/src/defaults/actions.tsx b/src/frontend/src/defaults/actions.tsx index fb0af4ef78c7..6bab43c5ccc2 100644 --- a/src/frontend/src/defaults/actions.tsx +++ b/src/frontend/src/defaults/actions.tsx @@ -146,6 +146,17 @@ export function getActions(navigate: NavigateFunction) { leftSection: }); + globalSettings.isSet('REPAIRORDER_ENABLED') && + user?.hasViewRole(UserRoles.repair_order) && + _actions.push({ + id: 'repair-orders', + label: t`Repair Orders`, + description: t`Go to Repair Orders`, + onClick: () => + navigate(ModelInformationDict['repairorder'].url_overview!), + leftSection: + }); + globalSettings.isSet('BARCODE_ENABLE') && _actions.push({ id: 'scan', diff --git a/src/frontend/src/defaults/backendMappings.tsx b/src/frontend/src/defaults/backendMappings.tsx index 058ad80dbf1a..49040e246c2c 100644 --- a/src/frontend/src/defaults/backendMappings.tsx +++ b/src/frontend/src/defaults/backendMappings.tsx @@ -11,6 +11,8 @@ export const statusCodeList: Record = { PurchaseOrderStatus: ModelType.purchaseorder, ReturnOrderStatus: ModelType.returnorder, ReturnOrderLineStatus: ModelType.returnorderlineitem, + RepairOrderStatus: ModelType.repairorder, + RepairOrderLineStatus: ModelType.repairorderlineitem, TransferOrderStatus: ModelType.transferorder, TransferOrderLineStatus: ModelType.transferorderlineitem, SalesOrderStatus: ModelType.salesorder, diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx index caae4d34c654..587403aef01e 100644 --- a/src/frontend/src/defaults/links.tsx +++ b/src/frontend/src/defaults/links.tsx @@ -71,7 +71,9 @@ export function getNavTabs(user: UserStateProps): NavTab[] { visible: user.hasViewRole(UserRoles.sales_order) || (globalSettings.isSet('RETURNORDER_ENABLED') && - user.hasViewRole(UserRoles.return_order)) + user.hasViewRole(UserRoles.return_order)) || + (globalSettings.isSet('REPAIRORDER_ENABLED') && + user.hasViewRole(UserRoles.repair_order)) } ]; diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index c1ad97068453..0deea93e13b0 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -36,7 +36,6 @@ import { } from '../hooks/UseGenerator'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; /** * Field set for BuildOrder forms @@ -125,7 +124,6 @@ export function useBuildOrderFields({ }, value: destination }, - tags: TagsField({}), link: { icon: }, diff --git a/src/frontend/src/forms/CompanyForms.tsx b/src/frontend/src/forms/CompanyForms.tsx index 14d3b6218f88..9cefd6147f9a 100644 --- a/src/frontend/src/forms/CompanyForms.tsx +++ b/src/frontend/src/forms/CompanyForms.tsx @@ -13,7 +13,6 @@ import { IconPhone } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; -import { TagsField } from './CommonFields'; /** * Field set for SupplierPart instance @@ -83,7 +82,6 @@ export function useSupplierPartFields({ icon: }, description: {}, - tags: TagsField({}), link: { icon: }, @@ -119,7 +117,6 @@ export function useManufacturerPartFields() { }, MPN: {}, description: {}, - tags: TagsField({}), link: {} }; @@ -146,7 +143,6 @@ export function companyFields(): ApiFormFieldSet { email: { icon: }, - tags: TagsField({}), tax_id: {}, is_supplier: {}, is_manufacturer: {}, diff --git a/src/frontend/src/forms/PartForms.tsx b/src/frontend/src/forms/PartForms.tsx index 311b64b18f94..35836e94ab12 100644 --- a/src/frontend/src/forms/PartForms.tsx +++ b/src/frontend/src/forms/PartForms.tsx @@ -3,7 +3,6 @@ import { t } from '@lingui/core/macro'; import { IconBuildingStore, IconCopy, IconPackages } from '@tabler/icons-react'; import { useEffect, useMemo, useState } from 'react'; import { useGlobalSettingsState } from '../states/SettingsStates'; -import { TagsField } from './CommonFields'; /** * Construct a set of fields for creating / editing a Part instance @@ -55,7 +54,6 @@ export function usePartFields({ } }, keywords: {}, - tags: TagsField({}), units: {}, link: {}, default_location: { diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx index 4faf5756ad23..d12916a49bec 100644 --- a/src/frontend/src/forms/PurchaseOrderForms.tsx +++ b/src/frontend/src/forms/PurchaseOrderForms.tsx @@ -57,7 +57,6 @@ import { useSerialNumberGenerator } from '../hooks/UseGenerator'; import { useGlobalSettingsState } from '../states/SettingsStates'; -import { TagsField } from './CommonFields'; /* * Construct a set of fields for creating / editing a PurchaseOrderLineItem instance */ @@ -288,7 +287,6 @@ export function usePurchaseOrderFields({ structural: false } }, - tags: TagsField({}), link: {}, contact: { icon: , diff --git a/src/frontend/src/forms/RepairOrderForms.tsx b/src/frontend/src/forms/RepairOrderForms.tsx new file mode 100644 index 000000000000..822f61f1e6ce --- /dev/null +++ b/src/frontend/src/forms/RepairOrderForms.tsx @@ -0,0 +1,73 @@ +import { t } from '@lingui/core/macro'; +import { useMemo } from 'react'; + +import type { + ApiFormAdjustFilterType, + ApiFormFieldSet +} from '@lib/types/Forms'; + +export function useRepairOrderFields({ + duplicateOrderId +}: { + duplicateOrderId?: number; +}): ApiFormFieldSet { + return useMemo(() => { + const fields: ApiFormFieldSet = { + reference: {}, + description: {}, + customer: { + disabled: duplicateOrderId != undefined, + filters: { + is_customer: true, + active: true + } + }, + asset: { + filters: { + is_building: false + } + }, + symptoms: {} + }; + + // Order duplication fields + if (!!duplicateOrderId) { + fields.duplicate = { + children: { + order_id: { + hidden: true, + value: duplicateOrderId + }, + copy_lines: { + value: true + } + } + }; + } + + return fields; + }, [duplicateOrderId]); +} + +export function useRepairOrderLineItemFields({ + orderId, + create +}: { + orderId: number; + create?: boolean; +}) { + return useMemo(() => { + return { + order: { + disabled: true, + value: orderId + }, + part: { + filters: { + active: true + } + }, + quantity: {} + }; + }, [create, orderId]); +} diff --git a/src/frontend/src/forms/ReturnOrderForms.tsx b/src/frontend/src/forms/ReturnOrderForms.tsx index ea919f5da72f..2f5be88aa88d 100644 --- a/src/frontend/src/forms/ReturnOrderForms.tsx +++ b/src/frontend/src/forms/ReturnOrderForms.tsx @@ -23,7 +23,6 @@ import { Thumbnail } from '../components/images/Thumbnail'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { StatusFilterOptions } from '../tables/Filter'; -import { TagsField } from './CommonFields'; export function useReturnOrderFields({ duplicateOrderId @@ -53,7 +52,6 @@ export function useReturnOrderFields({ icon: }, link: {}, - tags: TagsField({}), contact: { icon: , adjustFilters: (value: ApiFormAdjustFilterType) => { diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 125ca7f89495..ecfe82993c4f 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -31,7 +31,6 @@ import { useCreateApiFormModal, useEditApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { useUserState } from '../states/UserState'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; export function useSalesOrderFields({ duplicateOrderId @@ -65,7 +64,6 @@ export function useSalesOrderFields({ target_date: { icon: }, - tags: TagsField({}), link: {}, contact: { icon: , @@ -539,7 +537,6 @@ export function useSalesOrderShipmentFields({ }, tracking_number: {}, invoice_number: {}, - tags: TagsField({}), link: {} }; }, [customerId, pending]); diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index 99255cf0d5e5..fe209f11c9d1 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -61,7 +61,6 @@ import { import useStatusCodes from '../hooks/UseStatusCodes'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { StatusFilterOptions } from '../tables/Filter'; -import { TagsField } from './CommonFields'; /** * Construct a set of fields for creating / editing a StockItem instance @@ -273,7 +272,6 @@ export function useStockFields({ packaging: { icon: }, - tags: TagsField({}), link: { icon: }, diff --git a/src/frontend/src/forms/TransferOrderForms.tsx b/src/frontend/src/forms/TransferOrderForms.tsx index 3935d89b923c..a7e3c8be3f50 100644 --- a/src/frontend/src/forms/TransferOrderForms.tsx +++ b/src/frontend/src/forms/TransferOrderForms.tsx @@ -10,7 +10,6 @@ import type { TableFieldRowProps } from '../components/forms/fields/TableField'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; export function useTransferOrderFields({ duplicateOrderId @@ -37,7 +36,6 @@ export function useTransferOrderFields({ } }, consume: {}, - tags: TagsField({}), link: {}, responsible: { filters: { diff --git a/src/frontend/src/functions/icons.tsx b/src/frontend/src/functions/icons.tsx index bdc1826e8947..c5fcfe6c88a6 100644 --- a/src/frontend/src/functions/icons.tsx +++ b/src/frontend/src/functions/icons.tsx @@ -97,6 +97,7 @@ import { IconTag, IconTax, IconTestPipe, + IconToggleRight, IconTool, IconTools, IconTransfer, @@ -159,6 +160,7 @@ const icons: InvenTreeIconType = { customers: IconBuildingStore, purchase_orders: IconShoppingCart, return_orders: IconTruckReturn, + repair_orders: IconTool, transfer_orders: IconTransfer, sales_orders: IconTruckDelivery, scheduling: IconCalendarStats, diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index f249332eb991..7460634ccbf9 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -21,7 +21,6 @@ import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import { getDetailUrl } from '@lib/functions/Navigation'; -import { TagsList } from '@lib/index'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; @@ -229,8 +228,7 @@ export default function BuildDetail() { endpoint: ApiEndpoints.build_order_list, pk: id, params: { - part_detail: true, - tags: true + part_detail: true }, refetchOnMount: true }); @@ -440,20 +438,17 @@ export default function BuildDetail() { return ( - - - - - - - - - + + + + + + @@ -617,7 +612,6 @@ export default function BuildDetail() { title: t`Edit Build Order`, modalId: 'edit-build-order', fields: editBuildOrderFields, - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: refreshInstance }); diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index 2b779d41122f..b23b8c19fd72 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -18,7 +18,6 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; -import { TagsList } from '@lib/index'; import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; @@ -79,9 +78,7 @@ export default function CompanyDetail(props: Readonly) { } = useInstance({ endpoint: ApiEndpoints.company_list, pk: id, - params: { - tags: true - }, + params: {}, refetchOnMount: true }); @@ -156,26 +153,23 @@ export default function CompanyDetail(props: Readonly) { return ( - - - - - - - - - + + + + + + ); @@ -294,7 +288,6 @@ export default function CompanyDetail(props: Readonly) { pk: company?.pk, title: t`Edit Company`, fields: companyFields(), - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: refreshInstance }); diff --git a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx index 33b00ba4703e..66e1a1a347d6 100644 --- a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx +++ b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx @@ -8,7 +8,6 @@ import { import { useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; -import TagsList from '@lib/components/TagsList'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; @@ -60,8 +59,7 @@ export default function ManufacturerPartDetail() { hasPrimaryKey: true, params: { part_detail: true, - manufacturer_detail: true, - tags: true + manufacturer_detail: true } }); @@ -135,23 +133,20 @@ export default function ManufacturerPartDetail() { return ( - - - - - - - - - + + + + + + ); @@ -216,7 +211,6 @@ export default function ManufacturerPartDetail() { pk: manufacturerPart?.pk, title: t`Edit Manufacturer Part`, fields: editManufacturerPartFields, - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: refreshInstance }); diff --git a/src/frontend/src/pages/company/SupplierPartDetail.tsx b/src/frontend/src/pages/company/SupplierPartDetail.tsx index 4f16295460cf..c61f4eaf3267 100644 --- a/src/frontend/src/pages/company/SupplierPartDetail.tsx +++ b/src/frontend/src/pages/company/SupplierPartDetail.tsx @@ -9,7 +9,6 @@ import { import { type ReactNode, useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; -import TagsList from '@lib/components/TagsList'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; @@ -68,8 +67,7 @@ export default function SupplierPartDetail() { params: { part_detail: true, supplier_detail: true, - manufacturer_detail: true, - tags: true + manufacturer_detail: true } }); @@ -223,23 +221,20 @@ export default function SupplierPartDetail() { return ( - - - - - - - - - + + + + + + @@ -344,7 +339,6 @@ export default function SupplierPartDetail() { pk: supplierPart?.pk, title: t`Edit Supplier Part`, fields: supplierPartFields, - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: refreshInstance }); diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 5182a1c249d3..c53588a4a15c 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -41,7 +41,6 @@ import { type ReactNode, useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import Select from 'react-select'; -import TagsList from '@lib/components/TagsList'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; @@ -191,8 +190,7 @@ export default function PartDetail() { endpoint: ApiEndpoints.part_list, pk: id, params: { - path_detail: true, - tags: true + path_detail: true }, refetchOnMount: true }); @@ -614,7 +612,6 @@ export default function PartDetail() { - {enableRevisionSelection && ( @@ -1001,7 +998,6 @@ export default function PartDetail() { pk: part.pk, title: t`Edit Part`, fields: partFields, - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: refreshInstance }); diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx index 99099bad1ac2..db4fa6107fbf 100644 --- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx +++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx @@ -9,7 +9,6 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; -import { TagsList } from '@lib/index'; import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; @@ -66,8 +65,7 @@ export default function PurchaseOrderDetail() { endpoint: ApiEndpoints.purchase_order_list, pk: id, params: { - supplier_detail: true, - tags: true + supplier_detail: true }, refetchOnMount: true }); @@ -91,7 +89,6 @@ export default function PurchaseOrderDetail() { pk: id, title: t`Edit Purchase Order`, fields: purchaseOrderFields, - queryParams: new URLSearchParams({ tags: 'true' }), onFormSuccess: () => { refreshInstance(); } @@ -321,20 +318,17 @@ export default function PurchaseOrderDetail() { return ( - - - - - - - - - + + + + + + diff --git a/src/frontend/src/pages/sales/RepairOrderDetail.tsx b/src/frontend/src/pages/sales/RepairOrderDetail.tsx new file mode 100644 index 000000000000..f51bb93f9059 --- /dev/null +++ b/src/frontend/src/pages/sales/RepairOrderDetail.tsx @@ -0,0 +1,407 @@ +import { t } from '@lingui/core/macro'; +import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; +import { IconInfoCircle, IconList } from '@tabler/icons-react'; +import { type ReactNode, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; + +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import type { PanelType } from '@lib/types/Panel'; +import AdminButton from '../../components/buttons/AdminButton'; +import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; +import { PrintingActions } from '../../components/buttons/PrintingActions'; +import { + type DetailsField, + DetailsTable +} from '../../components/details/Details'; +import { DetailsImage } from '../../components/details/DetailsImage'; +import { ItemDetailsGrid } from '../../components/details/ItemDetails'; +import { + BarcodeActionDropdown, + CancelItemAction, + DuplicateItemAction, + EditItemAction, + HoldItemAction, + OptionsActionDropdown +} from '../../components/items/ActionDropdown'; +import InstanceDetail from '../../components/nav/InstanceDetail'; +import { PageDetail } from '../../components/nav/PageDetail'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; +import ParametersPanel from '../../components/panels/ParametersPanel'; +import { StatusRenderer } from '../../components/render/StatusRenderer'; +import { useRepairOrderFields } from '../../forms/RepairOrderForms'; +import { + useCreateApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useInstance } from '../../hooks/UseInstance'; +import useStatusCodes from '../../hooks/UseStatusCodes'; +import { useGlobalSettingsState } from '../../states/SettingsStates'; +import { useUserState } from '../../states/UserState'; +import RepairOrderLineItemTable from '../../tables/sales/RepairOrderLineItemTable'; + +export default function RepairOrderDetail() { + const { id } = useParams(); + const user = useUserState(); + const globalSettings = useGlobalSettingsState(); + + const { + instance: order, + instanceQuery, + refreshInstance + } = useInstance({ + endpoint: ApiEndpoints.repair_order_list, + pk: id, + params: { + customer_detail: true, + asset_detail: true + } + }); + + const roStatus = useStatusCodes({ modelType: ModelType.repairorder }); + + const orderOpen = useMemo(() => { + return ( + order.status == roStatus.PENDING || + order.status == roStatus.IN_PROGRESS || + order.status == roStatus.ON_HOLD + ); + }, [order, roStatus]); + + const lineItemsEditable: boolean = useMemo(() => { + return orderOpen || globalSettings.isSet('RETURNORDER_EDIT_COMPLETED_ORDERS'); + }, [orderOpen, globalSettings]); + + const detailsPanel = useMemo(() => { + if (instanceQuery.isFetching) { + return ; + } + + const tl: DetailsField[] = [ + { + type: 'text', + name: 'reference', + label: t`Reference`, + copy: true + }, + { + type: 'link', + name: 'customer', + icon: 'customers', + label: t`Customer`, + model: ModelType.company + }, + { + type: 'link', + name: 'asset', + icon: 'part', + label: t`Fixed Asset`, + model: ModelType.stockitem + }, + { + type: 'text', + name: 'description', + label: t`Description`, + copy: true + }, + { + type: 'text', + name: 'symptoms', + label: t`Symptoms`, + copy: true, + hidden: !order.symptoms + }, + { + type: 'status', + name: 'status', + label: t`Status`, + model: ModelType.repairorder + }, + { + type: 'status', + name: 'status_custom_key', + label: t`Custom Status`, + model: ModelType.repairorder, + icon: 'status', + hidden: + !order.status_custom_key || order.status_custom_key == order.status + } + ]; + + const tr: DetailsField[] = [ + { + type: 'text', + name: 'line_items', + label: t`Line Items`, + icon: 'list' + } + ]; + + return ( + + + + + + + + + + ); + }, [order, instanceQuery]); + + const orderPanels: PanelType[] = useMemo(() => { + return [ + { + name: 'detail', + label: t`Order Details`, + icon: , + content: detailsPanel + }, + { + name: 'line-items', + label: t`Line Items`, + icon: , + content: ( + + + + {t`Line Items`} + + + + + + + ) + }, + ParametersPanel({ + model_type: ModelType.repairorder, + model_id: order.pk + }), + AttachmentPanel({ + model_type: ModelType.repairorder, + model_id: order.pk + }), + NotesPanel({ + model_type: ModelType.repairorder, + model_id: order.pk, + has_note: !!order.notes + }) + ]; + }, [order, id, user, lineItemsEditable]); + + const orderBadges: ReactNode[] = useMemo(() => { + return instanceQuery.isLoading + ? [] + : [ + + ]; + }, [order, instanceQuery]); + + const repairOrderFields = useRepairOrderFields({}); + + const duplicateRepairOrderFields = useRepairOrderFields({ + duplicateOrderId: order.pk + }); + + const editRepairOrder = useEditApiFormModal({ + url: ApiEndpoints.repair_order_list, + pk: order.pk, + title: t`Edit Repair Order`, + fields: repairOrderFields, + onFormSuccess: () => { + refreshInstance(); + } + }); + + const duplicateRepairOrderInitialData = useMemo(() => { + const data = { ...order }; + delete data.reference; + return data; + }, [order]); + + const duplicateRepairOrder = useCreateApiFormModal({ + url: ApiEndpoints.repair_order_list, + title: t`Add Repair Order`, + fields: duplicateRepairOrderFields, + initialData: duplicateRepairOrderInitialData, + modelType: ModelType.repairorder, + follow: true + }); + + const issueOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.repair_order_issue, order.pk), + title: t`Issue Repair Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Issue this order`, + successMessage: t`Order issued` + }); + + const cancelOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.repair_order_cancel, order.pk), + title: t`Cancel Repair Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Cancel this order`, + successMessage: t`Order cancelled` + }); + + const holdOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.repair_order_hold, order.pk), + title: t`Hold Repair Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Place this order on hold`, + successMessage: t`Order placed on hold` + }); + + const completeOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.repair_order_complete, order.pk), + title: t`Complete Repair Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Mark this order as complete`, + successMessage: t`Order completed` + }); + + const orderActions = useMemo(() => { + const canEdit: boolean = user.hasChangeRole(UserRoles.repair_order); + + const canIssue: boolean = + canEdit && + (order.status == roStatus.PENDING || order.status == roStatus.ON_HOLD); + + const canHold: boolean = + canEdit && + (order.status == roStatus.PENDING || + order.status == roStatus.IN_PROGRESS); + + const canCancel: boolean = + canEdit && + (order.status == roStatus.PENDING || + order.status == roStatus.IN_PROGRESS || + order.status == roStatus.ON_HOLD); + + const canComplete: boolean = + canEdit && order.status == roStatus.IN_PROGRESS; + + return [ + )} {layouts && loaded && availableWidgets.loaded ? ( - <> - {widgetLabels.length == 0 ? ( - <> -
- - } - > - {t`Use the menu to add widgets to the dashboard`} - - -
- {showSampleDashboard && ( - <> - - {WidgetGrid( - defaultLayouts, - () => {}, - editing, - defaultWidgets, - removing, - () => {} - )} - - )} - - ) : ( - WidgetGrid( - layouts, - onLayoutChange, - editing, - widgets, - removing, - removeWidget - ) - )} - + widgetLabels.length == 0 ? ( + <> +
+ + } + > + {t`Use the menu to add widgets to the dashboard`} + + +
+ {showSampleDashboard && ( + <> + + {WidgetGrid( + defaultLayouts, + () => {}, + editing, + defaultWidgets, + removing, + () => {} + )} + + )} + + ) : ( + WidgetGrid( + layouts, + onLayoutChange, + editing, + widgets, + removing, + removeWidget + ) + ) ) : (
diff --git a/src/frontend/src/components/dashboard/DashboardMenu.tsx b/src/frontend/src/components/dashboard/DashboardMenu.tsx index f961cca4ce2f..5d3a809f4597 100644 --- a/src/frontend/src/components/dashboard/DashboardMenu.tsx +++ b/src/frontend/src/components/dashboard/DashboardMenu.tsx @@ -1,3 +1,4 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -16,8 +17,6 @@ import { IconLayoutGridRemove } from '@tabler/icons-react'; import { useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import useInstanceName from '../../hooks/UseInstanceName'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/components/dashboard/DashboardWidget.tsx b/src/frontend/src/components/dashboard/DashboardWidget.tsx index b6809bcc087b..97fd0a8171d9 100644 --- a/src/frontend/src/components/dashboard/DashboardWidget.tsx +++ b/src/frontend/src/components/dashboard/DashboardWidget.tsx @@ -1,11 +1,9 @@ -import { t } from '@lingui/core/macro'; -import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core'; -import { IconX } from '@tabler/icons-react'; - import { Boundary } from '@lib/components/Boundary'; - import type { ModelType } from '@lib/index'; import type { InvenTreeIconType } from '@lib/types/Icons'; +import { t } from '@lingui/core/macro'; +import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core'; +import { IconX } from '@tabler/icons-react'; import type { JSX } from 'react'; /** diff --git a/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx index b4ad089471ff..74e5561aaf53 100644 --- a/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx +++ b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx @@ -1,3 +1,4 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -14,8 +15,6 @@ import { import { useDebouncedValue } from '@mantine/hooks'; import { IconBackspace } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import { InvenTreeIcon } from '../../functions/icons'; import { useDashboardItems } from '../../hooks/UseDashboardItems'; diff --git a/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx index 76ada27f8d0f..11f119817ee2 100644 --- a/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx +++ b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx @@ -1,6 +1,5 @@ -import { t } from '@lingui/core/macro'; - import { ModelType } from '@lib/enums/ModelType'; +import { t } from '@lingui/core/macro'; import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; import type { DashboardWidgetProps } from './DashboardWidget'; diff --git a/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx index 06d451e1f2ba..b7f7e90ae705 100644 --- a/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Group } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import { ColorToggle } from '../../items/ColorToggle'; import type { DashboardWidgetProps } from '../DashboardWidget'; diff --git a/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx index 4f083d627e04..9f36e6a66377 100644 --- a/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx @@ -1,8 +1,7 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; import { useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import { DocumentationLinks } from '../../../defaults/links'; import { GettingStartedCarousel } from '../../items/GettingStartedCarousel'; import type { MenuLinkItem } from '../../items/MenuLinks'; diff --git a/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx index 7f94231b4b57..333541f8a17b 100644 --- a/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import { LanguageSelect } from '../../items/LanguageSelect'; import type { DashboardWidgetProps } from '../DashboardWidget'; diff --git a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx index 5dab794dcebf..9e9e10a85372 100644 --- a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx @@ -1,3 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -13,10 +16,6 @@ import { import { IconMailCheck } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; import { api } from '../../../App'; import { formatDate } from '../../../defaults/formatters'; import { useUserState } from '../../../states/UserState'; diff --git a/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx index bee2c7b431f2..5ac6ce6fbca1 100644 --- a/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx @@ -1,16 +1,15 @@ -import { ActionIcon, Anchor, Group, RollingNumber } from '@mantine/core'; -import { IconExclamationCircle } from '@tabler/icons-react'; -import { useQuery } from '@tanstack/react-query'; -import { type ReactNode, useCallback, useMemo } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { StylishText } from '@lib/components/StylishText'; import { ModelInformationDict } from '@lib/enums/ModelInformation'; import type { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import { navigateToLink } from '@lib/functions/Navigation'; import type { InvenTreeIconType } from '@lib/types/Icons'; +import { ActionIcon, Anchor, Group, RollingNumber } from '@mantine/core'; import { useDocumentVisibility } from '@mantine/hooks'; +import { IconExclamationCircle } from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; +import { type ReactNode, useCallback, useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; import { useApi } from '../../../contexts/ApiContext'; import { InvenTreeIcon } from '../../../functions/icons'; import { useUserState } from '../../../states/UserState'; diff --git a/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx index 527041c50aba..3be47106ce68 100644 --- a/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx @@ -1,12 +1,11 @@ -import { Anchor, Group } from '@mantine/core'; -import { type ReactNode, useCallback } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { StylishText } from '@lib/components/StylishText'; import { ModelInformationDict } from '@lib/enums/ModelInformation'; import type { ModelType } from '@lib/enums/ModelType'; import { navigateToLink } from '@lib/functions/Navigation'; import type { InvenTreeIconType } from '@lib/types/Icons'; +import { Anchor, Group } from '@mantine/core'; +import { type ReactNode, useCallback } from 'react'; +import { useNavigate } from 'react-router-dom'; import { InvenTreeIcon } from '../../../functions/icons'; import type { DashboardWidgetProps } from '../DashboardWidget'; diff --git a/src/frontend/src/components/dashboard/widgets/StocktakeDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/StocktakeDashboardWidget.tsx index b4e3ae9c6084..a537b46c1fdf 100644 --- a/src/frontend/src/components/dashboard/widgets/StocktakeDashboardWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/StocktakeDashboardWidget.tsx @@ -1,4 +1,4 @@ -import { ApiEndpoints, UserRoles, apiUrl } from '@lib/index'; +import { ApiEndpoints, apiUrl, UserRoles } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Button, Stack } from '@mantine/core'; import { IconClipboardList } from '@tabler/icons-react'; diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index d221ea543d50..a896712987b6 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -1,3 +1,16 @@ +import { CopyButton } from '@lib/components/CopyButton'; +import { ProgressBar } from '@lib/components/ProgressBar'; +import { StylishText } from '@lib/components/StylishText'; +import { YesNoButton } from '@lib/components/YesNoButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { + getBaseUrl, + getDetailUrl, + navigateToLink +} from '@lib/functions/Navigation'; +import type { InvenTreeIconType } from '@lib/types/Icons'; import { t } from '@lingui/core/macro'; import { Anchor, @@ -16,17 +29,6 @@ import { useQuery } from '@tanstack/react-query'; import { getValueAtPath } from 'mantine-datatable'; import { useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { CopyButton } from '@lib/components/CopyButton'; -import { ProgressBar } from '@lib/components/ProgressBar'; -import { StylishText } from '@lib/components/StylishText'; -import { YesNoButton } from '@lib/components/YesNoButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import { getBaseUrl, getDetailUrl } from '@lib/functions/Navigation'; -import { navigateToLink } from '@lib/functions/Navigation'; -import type { InvenTreeIconType } from '@lib/types/Icons'; import { useApi } from '../../contexts/ApiContext'; import { formatDate, formatDecimal } from '../../defaults/formatters'; import { InvenTreeIcon } from '../../functions/icons'; @@ -225,7 +227,7 @@ function NameBadge({ // Rendering a user's name for the badge function _render_name() { - if (!data || !data.pk) { + if (!data?.pk) { return ''; } else if (type === 'user' && settings.isSet('DISPLAY_FULL_NAMES')) { if (data.first_name || data.last_name) { @@ -407,7 +409,7 @@ function TableAnchorValue(props: Readonly) { let make_link = props.field_data?.link ?? true; // Construct the "return value" for the fetched data - let value = undefined; + let value; if (props.field_data.model_formatter) { value = props.field_data.model_formatter(data) ?? value; @@ -417,7 +419,7 @@ function TableAnchorValue(props: Readonly) { value = data?.name; } - let color: MantineColor | undefined = undefined; + let color: MantineColor | undefined; if (value === undefined) { value = data?.name ?? props.field_data?.backup_value ?? t`No name defined`; diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx index 9941ee87deee..6217dd921cc8 100644 --- a/src/frontend/src/components/details/DetailsImage.tsx +++ b/src/frontend/src/components/details/DetailsImage.tsx @@ -1,3 +1,7 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { StylishText } from '@lib/components/StylishText'; +import type { UserRoles } from '@lib/enums/Roles'; +import { cancelEvent } from '@lib/functions/Events'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -8,8 +12,8 @@ import { Image, Overlay, Paper, - Text, rem, + Text, useMantineColorScheme } from '@mantine/core'; import { @@ -19,13 +23,8 @@ import { } from '@mantine/dropzone'; import { useHover } from '@mantine/hooks'; import { modals } from '@mantine/modals'; -import { useEffect, useMemo, useState } from 'react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { StylishText } from '@lib/components/StylishText'; -import type { UserRoles } from '@lib/enums/Roles'; -import { cancelEvent } from '@lib/functions/Events'; import { showNotification } from '@mantine/notifications'; +import { useEffect, useMemo, useState } from 'react'; import { api } from '../../App'; import { InvenTreeIcon } from '../../functions/icons'; import { showApiErrorMessage } from '../../functions/notifications'; @@ -432,41 +431,37 @@ export function DetailsImage(props: Readonly) { }; return ( - <> - - + + - <> - - {props.appRole && - permissions.hasChangeRole(props.appRole) && - hasOverlay && - hovered && ( - - - - )} - - - - + onClick={expandImage} + /> + {props.appRole && + permissions.hasChangeRole(props.appRole) && + hasOverlay && + hovered && ( + + + + )} + + ); } diff --git a/src/frontend/src/components/editors/NotesEditor.tsx b/src/frontend/src/components/editors/NotesEditor.tsx index 7f1920ac9a62..2ce3daf1c1a4 100644 --- a/src/frontend/src/components/editors/NotesEditor.tsx +++ b/src/frontend/src/components/editors/NotesEditor.tsx @@ -4,13 +4,13 @@ import { useQuery } from '@tanstack/react-query'; import DOMPurify from 'dompurify'; import EasyMDE, { type default as SimpleMde } from 'easymde'; import 'easymde/dist/easymde.min.css'; -import { useCallback, useEffect, useMemo, useState } from 'react'; -import SimpleMDE from 'react-simplemde-editor'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelInformationDict } from '@lib/enums/ModelInformation'; import type { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import SimpleMDE from 'react-simplemde-editor'; import { useApi } from '../../contexts/ApiContext'; /* diff --git a/src/frontend/src/components/editors/TemplateEditor/CodeEditor/CodeEditor.tsx b/src/frontend/src/components/editors/TemplateEditor/CodeEditor/CodeEditor.tsx index bc0ce2b73745..8b5d73aaf00d 100644 --- a/src/frontend/src/components/editors/TemplateEditor/CodeEditor/CodeEditor.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/CodeEditor/CodeEditor.tsx @@ -100,7 +100,7 @@ const tooltips = hoverTooltip((view, pos, side) => { pos: start, end, above: true, - create(view) { + create(_view) { return { dom: renderHelp(tagsMap[text]) }; } }; @@ -125,34 +125,36 @@ const extensions = [ }) ]; -export const CodeEditorComponent: EditorComponent = forwardRef((props, ref) => { - const editor = useRef(null); - const [code, setCode] = useState(''); - const { setContainer } = useCodeMirror({ - container: editor.current, - extensions, - value: code, - onChange: (value) => setCode(value), - theme: vscodeDark - }); +export const CodeEditorComponent: EditorComponent = forwardRef( + (_props, ref) => { + const editor = useRef(null); + const [code, setCode] = useState(''); + const { setContainer } = useCodeMirror({ + container: editor.current, + extensions, + value: code, + onChange: (value) => setCode(value), + theme: vscodeDark + }); - useImperativeHandle(ref, () => ({ - setCode: (code) => setCode(code), - getCode: () => code - })); + useImperativeHandle(ref, () => ({ + setCode: (code) => setCode(code), + getCode: () => code + })); - useEffect(() => { - if (editor.current) { - setContainer(editor.current); - } - }, [editor.current]); + useEffect(() => { + if (editor.current) { + setContainer(editor.current); + } + }, [editor.current]); - return ( -
-
-
- ); -}); + return ( +
+
+
+ ); + } +); diff --git a/src/frontend/src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx b/src/frontend/src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx index 3f4bf9951f54..68f6072b02bc 100644 --- a/src/frontend/src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx @@ -1,14 +1,13 @@ -import { Trans } from '@lingui/react/macro'; -import { forwardRef, useImperativeHandle, useState } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; +import { forwardRef, useImperativeHandle, useState } from 'react'; import { api } from '../../../../App'; import type { PreviewAreaComponent } from '../TemplateEditor'; export const PdfPreviewComponent: PreviewAreaComponent = forwardRef( - (props, ref) => { + (_props, ref) => { const [pdfUrl, setPdfUrl] = useState(''); useImperativeHandle(ref, () => ({ diff --git a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx index 786b4803da59..7a23f420acbe 100644 --- a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx @@ -1,3 +1,7 @@ +import { Boundary } from '@lib/components/Boundary'; +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { Alert, @@ -24,11 +28,6 @@ import { import Split from '@uiw/react-split'; import type React from 'react'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; - -import { Boundary } from '@lib/components/Boundary'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; import { api } from '../../../App'; import type { TemplateI } from '../../../tables/settings/TemplateTable'; import { SplitButton } from '../../buttons/SplitButton'; @@ -288,7 +287,7 @@ export function TemplateEditor(props: Readonly) { }} > - {editors.map((Editor, index) => { + {editors.map((Editor, _index) => { return ( {isLoggingIn ? ( + ) : classicLoginMode ? ( + Log In ) : ( - <> - {classicLoginMode ? ( - Log In - ) : ( - Send Email - )} - + Send Email )} diff --git a/src/frontend/src/components/forms/InstanceOptions.tsx b/src/frontend/src/components/forms/InstanceOptions.tsx index bc8107312dad..3b286663c50f 100644 --- a/src/frontend/src/components/forms/InstanceOptions.tsx +++ b/src/frontend/src/components/forms/InstanceOptions.tsx @@ -1,3 +1,5 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import type { HostList } from '@lib/types/Server'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -19,9 +21,6 @@ import { IconServer, IconServerSpark } from '@tabler/icons-react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import type { HostList } from '@lib/types/Server'; import { useShallow } from 'zustand/react/shallow'; import { translateHostName } from '../../defaults/defaultHostList'; import { Wrapper } from '../../pages/Auth/Layout'; diff --git a/src/frontend/src/components/forms/KeepFormOpenSwitch.tsx b/src/frontend/src/components/forms/KeepFormOpenSwitch.tsx index 1c4d75b2c91a..357ccf386a78 100644 --- a/src/frontend/src/components/forms/KeepFormOpenSwitch.tsx +++ b/src/frontend/src/components/forms/KeepFormOpenSwitch.tsx @@ -3,7 +3,9 @@ import { useEffect, useState } from 'react'; export function KeepFormOpenSwitch({ onChange -}: { onChange?: (v: boolean) => void }) { +}: { + onChange?: (v: boolean) => void; +}) { const [keepOpen, setKeepOpen] = useState(false); useEffect(() => { diff --git a/src/frontend/src/components/forms/StandaloneField.tsx b/src/frontend/src/components/forms/StandaloneField.tsx index 0e5d498b1cd5..f2306191a4ae 100644 --- a/src/frontend/src/components/forms/StandaloneField.tsx +++ b/src/frontend/src/components/forms/StandaloneField.tsx @@ -1,7 +1,6 @@ +import type { ApiFormFieldType } from '@lib/types/Forms'; import { useEffect, useMemo } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; - -import type { ApiFormFieldType } from '@lib/types/Forms'; import { ApiFormField } from './fields/ApiFormField'; export function StandaloneField({ diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index 32acc3bdad6a..3e651ded3429 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -1,11 +1,10 @@ +import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Alert, FileInput, Stack } from '@mantine/core'; import { useId } from '@mantine/hooks'; +import { IconFileUpload } from '@tabler/icons-react'; import { useCallback, useEffect, useMemo } from 'react'; import { type Control, type FieldValues, useController } from 'react-hook-form'; - -import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; -import { IconFileUpload } from '@tabler/icons-react'; import type { NavigateFunction } from 'react-router-dom'; import DateTimeField from '../DateTimeField'; import { BooleanField } from './BooleanField'; diff --git a/src/frontend/src/components/forms/fields/DependentField.tsx b/src/frontend/src/components/forms/fields/DependentField.tsx index 60fa9497e4d4..13cc60f095a0 100644 --- a/src/frontend/src/components/forms/fields/DependentField.tsx +++ b/src/frontend/src/components/forms/fields/DependentField.tsx @@ -1,11 +1,10 @@ +import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { useEffect, useMemo } from 'react'; import { type Control, type FieldValues, useFormContext } from 'react-hook-form'; - -import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { useApi } from '../../../contexts/ApiContext'; import { constructField, diff --git a/src/frontend/src/components/forms/fields/IconField.tsx b/src/frontend/src/components/forms/fields/IconField.tsx index 980b5087336a..0fae6fd90781 100644 --- a/src/frontend/src/components/forms/fields/IconField.tsx +++ b/src/frontend/src/components/forms/fields/IconField.tsx @@ -1,3 +1,4 @@ +import type { ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -20,8 +21,6 @@ import Fuse from 'fuse.js'; import { startTransition, useEffect, useMemo, useRef, useState } from 'react'; import type { FieldValues, UseControllerReturn } from 'react-hook-form'; import { FixedSizeGrid as Grid } from 'react-window'; - -import type { ApiFormFieldType } from '@lib/types/Forms'; import { useShallow } from 'zustand/react/shallow'; import { useIconState } from '../../../states/IconState'; import { ApiIcon } from '../../items/ApiIcon'; diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx index bb88471c0cd0..49c361fff2fc 100644 --- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx +++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx @@ -1,12 +1,20 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { + ModelInformationDict, + type TranslatableModelInformationInterface +} from '@lib/enums/ModelInformation'; +import { apiUrl } from '@lib/functions/Api'; +import type { ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { + darken, Group, Input, - darken, useMantineColorScheme, useMantineTheme } from '@mantine/core'; import { useDebouncedValue, useId } from '@mantine/hooks'; +import { IconPlus } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { type ReactNode, @@ -22,17 +30,8 @@ import { type UseFormReturn, useFormContext } from 'react-hook-form'; -import Select from 'react-select'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { - ModelInformationDict, - type TranslatableModelInformationInterface -} from '@lib/enums/ModelInformation'; -import { apiUrl } from '@lib/functions/Api'; -import type { ApiFormFieldType } from '@lib/types/Forms'; -import { IconPlus } from '@tabler/icons-react'; import type { NavigateFunction } from 'react-router-dom'; +import Select from 'react-select'; import { useApi } from '../../../contexts/ApiContext'; import { useCreateApiFormModal } from '../../../hooks/UseForm'; import { @@ -174,7 +173,7 @@ export function RelatedModelField({ // Determine whether a barcode field should be added const addBarcodeField: boolean = useMemo(() => { - if (!modelInfo || !modelInfo.supports_barcode) { + if (!modelInfo?.supports_barcode) { return false; } @@ -191,7 +190,7 @@ export function RelatedModelField({ // Callback function to handle barcode scan results const onBarcodeScan = useCallback( - (barcode: string, response: any) => { + (_barcode: string, response: any) => { // Fetch model information from the response const modelData = response?.[definition.model ?? ''] ?? null; diff --git a/src/frontend/src/components/forms/fields/TableField.tsx b/src/frontend/src/components/forms/fields/TableField.tsx index 5d209b1fee14..cc70ff53db08 100644 --- a/src/frontend/src/components/forms/fields/TableField.tsx +++ b/src/frontend/src/components/forms/fields/TableField.tsx @@ -1,13 +1,12 @@ +import { AddItemButton } from '@lib/components/AddItemButton'; +import { identifierString } from '@lib/functions/Conversion'; +import type { ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { Alert, Container, Group, Stack, Table, Text } from '@mantine/core'; import { IconExclamationCircle } from '@tabler/icons-react'; import { type ReactNode, useCallback, useEffect, useMemo } from 'react'; import type { FieldValues, UseControllerReturn } from 'react-hook-form'; - -import { AddItemButton } from '@lib/components/AddItemButton'; -import { identifierString } from '@lib/functions/Conversion'; -import type { ApiFormFieldType } from '@lib/types/Forms'; import { InvenTreeIcon } from '../../../functions/icons'; import { StandaloneField } from '../StandaloneField'; diff --git a/src/frontend/src/components/forms/fields/TagsField.tsx b/src/frontend/src/components/forms/fields/TagsField.tsx index 2777fe47584c..4aad35a23396 100644 --- a/src/frontend/src/components/forms/fields/TagsField.tsx +++ b/src/frontend/src/components/forms/fields/TagsField.tsx @@ -1,12 +1,11 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import type { ApiFormFieldType } from '@lib/types/Forms'; import { TagsInput } from '@mantine/core'; import { useDebouncedValue } from '@mantine/hooks'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useEffect, useMemo, useState } from 'react'; import type { FieldValues, UseControllerReturn } from 'react-hook-form'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import type { ApiFormFieldType } from '@lib/types/Forms'; import { api } from '../../../App'; export default function TagsField({ diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 2d3e0d094f3d..70294776b842 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -1,8 +1,7 @@ +import type { ThumbnailProps } from '@lib/types/Rendering'; import { t } from '@lingui/core/macro'; import { Anchor, Group, HoverCard, Image } from '@mantine/core'; import { useMemo } from 'react'; - -import type { ThumbnailProps } from '@lib/types/Rendering'; import { ApiImage } from './ApiImage'; /* diff --git a/src/frontend/src/components/importer/ImportDataSelector.tsx b/src/frontend/src/components/importer/ImportDataSelector.tsx index 82aadf2d5cfd..4261083d9b2f 100644 --- a/src/frontend/src/components/importer/ImportDataSelector.tsx +++ b/src/frontend/src/components/importer/ImportDataSelector.tsx @@ -1,14 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Group, HoverCard, Paper, Space, Stack, Text } from '@mantine/core'; -import { notifications } from '@mantine/notifications'; -import { - IconArrowRight, - IconCircleCheck, - IconCircleDashedCheck, - IconExclamationCircle -} from '@tabler/icons-react'; -import { type ReactNode, useCallback, useMemo, useState } from 'react'; - import { ActionButton } from '@lib/components/ActionButton'; import { ProgressBar } from '@lib/components/ProgressBar'; import { @@ -24,6 +13,16 @@ import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Group, HoverCard, Paper, Space, Stack, Text } from '@mantine/core'; +import { notifications } from '@mantine/notifications'; +import { + IconArrowRight, + IconCircleCheck, + IconCircleDashedCheck, + IconExclamationCircle +} from '@tabler/icons-react'; +import { type ReactNode, useCallback, useMemo, useState } from 'react'; import { useApi } from '../../contexts/ApiContext'; import { useDeleteApiFormModal, diff --git a/src/frontend/src/components/importer/ImporterColumnSelector.tsx b/src/frontend/src/components/importer/ImporterColumnSelector.tsx index 83b420e812d5..973aacce75a7 100644 --- a/src/frontend/src/components/importer/ImporterColumnSelector.tsx +++ b/src/frontend/src/components/importer/ImporterColumnSelector.tsx @@ -1,3 +1,6 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Alert, @@ -10,13 +13,9 @@ import { Table, Text } from '@mantine/core'; +import { useDebouncedValue } from '@mantine/hooks'; import { IconCheck } from '@tabler/icons-react'; import { useCallback, useEffect, useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; -import { useDebouncedValue } from '@mantine/hooks'; import { useApi } from '../../contexts/ApiContext'; import type { ImportSessionState } from '../../hooks/UseImportSession'; import { StandaloneField } from '../forms/StandaloneField'; diff --git a/src/frontend/src/components/importer/ImporterDrawer.tsx b/src/frontend/src/components/importer/ImporterDrawer.tsx index 9581e1ecef8b..74042bb1da78 100644 --- a/src/frontend/src/components/importer/ImporterDrawer.tsx +++ b/src/frontend/src/components/importer/ImporterDrawer.tsx @@ -1,3 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ModelType } from '@lib/enums/ModelType'; +import type { ApiFormFieldSet } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Alert, @@ -12,10 +15,6 @@ import { } from '@mantine/core'; import { IconCheck, IconExclamationCircle } from '@tabler/icons-react'; import { type ReactNode, useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ModelType } from '@lib/enums/ModelType'; -import type { ApiFormFieldSet } from '@lib/index'; import { useImportSession } from '../../hooks/UseImportSession'; import useStatusCodes from '../../hooks/UseStatusCodes'; import ImporterDataSelector from './ImportDataSelector'; diff --git a/src/frontend/src/components/importer/ImporterStatus.tsx b/src/frontend/src/components/importer/ImporterStatus.tsx index ac18326409fe..f7137b9b988e 100644 --- a/src/frontend/src/components/importer/ImporterStatus.tsx +++ b/src/frontend/src/components/importer/ImporterStatus.tsx @@ -1,10 +1,9 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ModelType } from '@lib/enums/ModelType'; import { t } from '@lingui/core/macro'; import { Center, Loader, Stack } from '@mantine/core'; import { useInterval } from '@mantine/hooks'; import { useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ModelType } from '@lib/enums/ModelType'; import type { ImportSessionState } from '../../hooks/UseImportSession'; import { getStatusCodeLabel } from '../render/StatusRenderer'; diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index 111eae6305fc..e1de3219c7eb 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -1,3 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; +import type { ModelType } from '@lib/enums/ModelType'; +import { identifierString } from '@lib/functions/Conversion'; import { t } from '@lingui/core/macro'; import { Button, @@ -19,10 +22,6 @@ import { IconUnlink } from '@tabler/icons-react'; import { type ReactNode, useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import type { ModelType } from '@lib/enums/ModelType'; -import { identifierString } from '@lib/functions/Conversion'; import { InvenTreeIcon } from '../../functions/icons'; import { InvenTreeQRCode, QRCodeLink, QRCodeUnlink } from '../barcodes/QRCode'; diff --git a/src/frontend/src/components/items/ColorToggle.tsx b/src/frontend/src/components/items/ColorToggle.tsx index f19373006397..0ec2bf76e86d 100644 --- a/src/frontend/src/components/items/ColorToggle.tsx +++ b/src/frontend/src/components/items/ColorToggle.tsx @@ -1,3 +1,4 @@ +import { t } from '@lingui/core/macro'; import { ActionIcon, Group, @@ -5,8 +6,6 @@ import { useMantineColorScheme } from '@mantine/core'; import { IconMoonStars, IconSun } from '@tabler/icons-react'; - -import { t } from '@lingui/core/macro'; import { vars } from '../../theme'; export function ColorToggle() { diff --git a/src/frontend/src/components/items/ErrorItem.tsx b/src/frontend/src/components/items/ErrorItem.tsx index d832e093f6af..6e67e440e1e5 100644 --- a/src/frontend/src/components/items/ErrorItem.tsx +++ b/src/frontend/src/components/items/ErrorItem.tsx @@ -8,10 +8,8 @@ export function ErrorItem({ const error_message = error?.message || error?.toString() || t`Unknown error`; return ( - <> - - {error_message} - - + + {error_message} + ); } diff --git a/src/frontend/src/components/items/GettingStartedCarousel.tsx b/src/frontend/src/components/items/GettingStartedCarousel.tsx index 350f17ab9f62..3a6d2a8334e6 100644 --- a/src/frontend/src/components/items/GettingStartedCarousel.tsx +++ b/src/frontend/src/components/items/GettingStartedCarousel.tsx @@ -1,8 +1,7 @@ +import { StylishText } from '@lib/components/StylishText'; import { Trans } from '@lingui/react/macro'; import { Carousel } from '@mantine/carousel'; import { Anchor, Button, Paper, Text } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import * as classes from './GettingStartedCarousel.css'; import type { MenuLinkItem } from './MenuLinks'; diff --git a/src/frontend/src/components/items/InfoItem.tsx b/src/frontend/src/components/items/InfoItem.tsx index 0c9b3caf2d84..91131635c540 100644 --- a/src/frontend/src/components/items/InfoItem.tsx +++ b/src/frontend/src/components/items/InfoItem.tsx @@ -1,10 +1,9 @@ +import { DetailDrawerLink } from '@lib/components/nav/DetailDrawer'; +import { YesNoButton } from '@lib/components/YesNoButton'; import { Trans } from '@lingui/react/macro'; import { Code, Flex, Group, Text } from '@mantine/core'; import { Link, type To } from 'react-router-dom'; -import { YesNoButton } from '@lib/components/YesNoButton'; -import { DetailDrawerLink } from '@lib/components/nav/DetailDrawer'; - export function InfoItem({ name, children, diff --git a/src/frontend/src/components/items/InvenTreeLogo.tsx b/src/frontend/src/components/items/InvenTreeLogo.tsx index b03f321980df..a4478399ba12 100644 --- a/src/frontend/src/components/items/InvenTreeLogo.tsx +++ b/src/frontend/src/components/items/InvenTreeLogo.tsx @@ -1,6 +1,6 @@ import { t } from '@lingui/core/macro'; import { ActionIcon } from '@mantine/core'; -import { type ReactNode, forwardRef } from 'react'; +import { forwardRef, type ReactNode } from 'react'; import { NavLink } from 'react-router-dom'; import { useShallow } from 'zustand/react/shallow'; diff --git a/src/frontend/src/components/items/LanguageSelect.tsx b/src/frontend/src/components/items/LanguageSelect.tsx index a975859bbfce..881bd173d34f 100644 --- a/src/frontend/src/components/items/LanguageSelect.tsx +++ b/src/frontend/src/components/items/LanguageSelect.tsx @@ -1,7 +1,6 @@ +import { t } from '@lingui/core/macro'; import { Select } from '@mantine/core'; import { useEffect, useState } from 'react'; - -import { t } from '@lingui/core/macro'; import { useShallow } from 'zustand/react/shallow'; import { activateLocale, diff --git a/src/frontend/src/components/items/LanguageToggle.tsx b/src/frontend/src/components/items/LanguageToggle.tsx index 046c2d644aca..e3c28bd1d0b4 100644 --- a/src/frontend/src/components/items/LanguageToggle.tsx +++ b/src/frontend/src/components/items/LanguageToggle.tsx @@ -1,8 +1,7 @@ +import { t } from '@lingui/core/macro'; import { ActionIcon, Group, Tooltip } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { IconLanguage } from '@tabler/icons-react'; - -import { t } from '@lingui/core/macro'; import { LanguageSelect } from './LanguageSelect'; export function LanguageToggle() { diff --git a/src/frontend/src/components/items/MenuLinks.tsx b/src/frontend/src/components/items/MenuLinks.tsx index 3a8c8a1e2197..94adb3ee63a0 100644 --- a/src/frontend/src/components/items/MenuLinks.tsx +++ b/src/frontend/src/components/items/MenuLinks.tsx @@ -1,3 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; +import { navigateToLink } from '@lib/functions/Navigation'; +import type { InvenTreeIconType } from '@lib/types/Icons'; import { Anchor, Divider, @@ -10,10 +13,6 @@ import { } from '@mantine/core'; import { type JSX, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { StylishText } from '@lib/components/StylishText'; -import { navigateToLink } from '@lib/functions/Navigation'; -import type { InvenTreeIconType } from '@lib/types/Icons'; import { InvenTreeIcon } from '../../functions/icons'; export interface MenuLinkItem { @@ -49,66 +48,64 @@ export function MenuLinks({ } return ( - <> - - - {title} - - - {visibleLinks.map((item) => ( - - ))} - - - + + + {title} + + + {visibleLinks.map((item) => ( + + ))} + + ); } diff --git a/src/frontend/src/components/items/RoleTable.tsx b/src/frontend/src/components/items/RoleTable.tsx index 9fc2c2800334..84ea6aba8cd1 100644 --- a/src/frontend/src/components/items/RoleTable.tsx +++ b/src/frontend/src/components/items/RoleTable.tsx @@ -125,108 +125,106 @@ export function RoleTable({ }; return ( - <> - - - - - - - Role - - - - - View - - - - - Change - - - - - Add - - - - - Delete - - + +
+ + + + + Role + + + + + View + + + + + Change + + + + + Add + + + + + Delete + + + + + + {sortedRulesets.map((rule) => ( + + + + {rule.label} + {rule.edited && *} + + + + onToggle(rule, 'can_view')} + /> + + + onToggle(rule, 'can_change')} + /> + + + onToggle(rule, 'can_add')} + /> + + + onToggle(rule, 'can_delete')} + /> + - - - {sortedRulesets.map((rule) => ( - - - - {rule.label} - {rule.edited && *} - - - - onToggle(rule, 'can_view')} - /> - - - onToggle(rule, 'can_change')} - /> - - - onToggle(rule, 'can_add')} - /> - - - onToggle(rule, 'can_delete')} - /> - - - ))} - -
- {editable && ( - - - - - - - - - )} -
- + ))} + + + {editable && ( + + + + + + + + + )} + ); } diff --git a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx index 4233c12d1a1b..ccb0e4acd6ad 100644 --- a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx +++ b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx @@ -1,3 +1,7 @@ +import { CopyButton } from '@lib/components/CopyButton'; +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -12,17 +16,11 @@ import { } from '@mantine/core'; import type { ContextModalProps } from '@mantine/modals'; import { useQuery } from '@tanstack/react-query'; - -import { CopyButton } from '@lib/components/CopyButton'; -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; +import type { JSX } from 'react'; import { useShallow } from 'zustand/react/shallow'; import { api } from '../../App'; import { generateUrl } from '../../functions/urls'; import { useServerApiState } from '../../states/ServerApiState'; - -import type { JSX } from 'react'; import { OnlyStaff } from '../items/OnlyStaff'; type AboutLookupRef = { diff --git a/src/frontend/src/components/modals/LicenseModal.tsx b/src/frontend/src/components/modals/LicenseModal.tsx index 162517813825..460f4cafe47b 100644 --- a/src/frontend/src/components/modals/LicenseModal.tsx +++ b/src/frontend/src/components/modals/LicenseModal.tsx @@ -1,3 +1,5 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -13,9 +15,6 @@ import { } from '@mantine/core'; import { useQuery } from '@tanstack/react-query'; import { useEffect, useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; import { api } from '../../App'; export function LicenceView(entries: Readonly) { diff --git a/src/frontend/src/components/modals/QrModal.tsx b/src/frontend/src/components/modals/QrModal.tsx index 4ca4e978a352..774ed3859c1a 100644 --- a/src/frontend/src/components/modals/QrModal.tsx +++ b/src/frontend/src/components/modals/QrModal.tsx @@ -1,4 +1,3 @@ -import {} from '@mantine/core'; import type { ContextModalProps } from '@mantine/modals'; import { lazy } from 'react'; import type { NavigateFunction } from 'react-router-dom'; @@ -19,7 +18,7 @@ export function QrModal({ function close() { context.closeModal(id); } - function navigate() { + function _navigate() { context.closeModal(id); } diff --git a/src/frontend/src/components/nav/Alerts.tsx b/src/frontend/src/components/nav/Alerts.tsx index b69f58e19cf9..6fe6fc91d3da 100644 --- a/src/frontend/src/components/nav/Alerts.tsx +++ b/src/frontend/src/components/nav/Alerts.tsx @@ -1,15 +1,14 @@ +import type { SettingsStateProps } from '@lib/types/Settings'; +import { t } from '@lingui/core/macro'; import { ActionIcon, Alert, Group, Menu, Stack, Tooltip } from '@mantine/core'; import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; - -import type { SettingsStateProps } from '@lib/types/Settings'; -import { t } from '@lingui/core/macro'; import { useShallow } from 'zustand/react/shallow'; import { docLinks } from '../../defaults/links'; import { useServerApiState } from '../../states/ServerApiState'; import { useGlobalSettingsState } from '../../states/SettingsStates'; -import { useUserState } from '../../states/UserState'; import type { ServerAPIProps } from '../../states/states'; +import { useUserState } from '../../states/UserState'; interface AlertInfo { key: string; @@ -79,7 +78,10 @@ export function Alerts() { export function ServerAlert({ alert, closeAlert -}: { alert: ExtendedAlertInfo; closeAlert?: (key: string) => void }) { +}: { + alert: ExtendedAlertInfo; + closeAlert?: (key: string) => void; +}) { return ( - - - - - {username() ? ( - - {username()} - - ) : ( - - )} - - - - - - - Settings - + + + + + {username() ? ( + + {username()} + + ) : ( + + )} + + + + + + + Settings + + } + component={Link} + to='/settings/user' + > + User Settings + + {user?.is_staff && ( } + leftSection={} component={Link} - to='/settings/user' + to='/settings/system' > - User Settings + System Settings - {user?.is_staff && ( - } - component={Link} - to='/settings/system' - > - System Settings - - )} - {user?.is_staff && ( - } - component={Link} - to='/settings/admin' - > - Admin Center - - )} - {user?.is_staff && } + )} + {user?.is_staff && ( : - } - c={ - colorScheme === 'dark' - ? vars.colors.yellow[4] - : vars.colors.blue[6] - } - > - Change Color Mode - - aboutInvenTree()} - leftSection={} - > - About InvenTree - - - } - onClick={() => { - doLogout(navigate); - }} + leftSection={} + component={Link} + to='/settings/admin' > - Logout + Admin Center - - - + )} + {user?.is_staff && } + : } + c={ + colorScheme === 'dark' ? vars.colors.yellow[4] : vars.colors.blue[6] + } + > + Change Color Mode + + aboutInvenTree()} + leftSection={} + > + About InvenTree + + + } + onClick={() => { + doLogout(navigate); + }} + > + Logout + + + ); } diff --git a/src/frontend/src/components/nav/NavigationDrawer.tsx b/src/frontend/src/components/nav/NavigationDrawer.tsx index c7a8d3f057e6..97f6c591b96b 100644 --- a/src/frontend/src/components/nav/NavigationDrawer.tsx +++ b/src/frontend/src/components/nav/NavigationDrawer.tsx @@ -1,11 +1,10 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; import { t } from '@lingui/core/macro'; import { Container, Drawer, Flex, Group, Space } from '@mantine/core'; import { useViewportSize } from '@mantine/hooks'; import { useEffect, useMemo, useRef, useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; import { AboutLinks, DocumentationLinks } from '../../defaults/links'; import useInstanceName from '../../hooks/UseInstanceName'; import * as classes from '../../main.css'; @@ -44,7 +43,7 @@ function DrawerContent({ closeFunc }: Readonly<{ closeFunc?: () => void }>) { const globalSettings = useGlobalSettingsState(); - const [scrollHeight, setScrollHeight] = useState(0); + const [_scrollHeight, setScrollHeight] = useState(0); const ref = useRef(null); const { height } = useViewportSize(); diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx index edca9924c53a..9d32c25d57c3 100644 --- a/src/frontend/src/components/nav/NavigationTree.tsx +++ b/src/frontend/src/components/nav/NavigationTree.tsx @@ -1,3 +1,13 @@ +import { StylishText } from '@lib/components/StylishText'; +import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import type { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { + eventModified, + getDetailUrl, + navigateToLink +} from '@lib/functions/Navigation'; +import { t } from '@lingui/core/macro'; import { ActionIcon, Alert, @@ -22,17 +32,6 @@ import { import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { StylishText } from '@lib/components/StylishText'; -import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import type { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import { - eventModified, - getDetailUrl, - navigateToLink -} from '@lib/functions/Navigation'; -import { t } from '@lingui/core/macro'; import { useApi } from '../../contexts/ApiContext'; import { ApiIcon } from '../items/ApiIcon'; @@ -95,7 +94,7 @@ export default function NavigationTree({ const nodes: Record = {}; const tree: TreeNodeData[] = []; - if (!query || !query?.data?.length) { + if (!query?.data?.length) { return []; } diff --git a/src/frontend/src/components/nav/NotificationDrawer.tsx b/src/frontend/src/components/nav/NotificationDrawer.tsx index 097726470099..1a184a512d0d 100644 --- a/src/frontend/src/components/nav/NotificationDrawer.tsx +++ b/src/frontend/src/components/nav/NotificationDrawer.tsx @@ -1,3 +1,14 @@ +import { Boundary } from '@lib/components/Boundary'; +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import type { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { + getBaseUrl, + getDetailUrl, + navigateToLink +} from '@lib/functions/Navigation'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -22,16 +33,6 @@ import { import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { Boundary } from '@lib/components/Boundary'; -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import type { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import { getBaseUrl } from '@lib/functions/Navigation'; -import { navigateToLink } from '@lib/functions/Navigation'; import { api } from '../../App'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx index 65754bdd98c1..924634b1ba34 100644 --- a/src/frontend/src/components/nav/PageDetail.tsx +++ b/src/frontend/src/components/nav/PageDetail.tsx @@ -1,8 +1,7 @@ -import { Group, Paper, Space, Stack, Text } from '@mantine/core'; -import { useHotkeys } from '@mantine/hooks'; - import { StylishText } from '@lib/components/StylishText'; import { shortenString } from '@lib/functions/String'; +import { Group, Paper, Space, Stack, Text } from '@mantine/core'; +import { useHotkeys } from '@mantine/hooks'; import { Fragment, type ReactNode, useMemo } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { usePluginUIFeature } from '../../hooks/UsePluginUIFeature'; diff --git a/src/frontend/src/components/nav/SearchDrawer.tsx b/src/frontend/src/components/nav/SearchDrawer.tsx index cb2066a90345..58f8fe6fa312 100644 --- a/src/frontend/src/components/nav/SearchDrawer.tsx +++ b/src/frontend/src/components/nav/SearchDrawer.tsx @@ -1,3 +1,15 @@ +import { Boundary } from '@lib/components/Boundary'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { cancelEvent } from '@lib/functions/Events'; +import { + eventModified, + getDetailUrl, + navigateToLink +} from '@lib/functions/Navigation'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -19,6 +31,7 @@ import { Tooltip } from '@mantine/core'; import { useDebouncedValue } from '@mantine/hooks'; +import { showNotification } from '@mantine/notifications'; import { IconAlertCircle, IconBackspace, @@ -32,20 +45,6 @@ import { import { useQuery } from '@tanstack/react-query'; import { Fragment, useCallback, useEffect, useMemo, useState } from 'react'; import { type NavigateFunction, useNavigate } from 'react-router-dom'; - -import { Boundary } from '@lib/components/Boundary'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { cancelEvent } from '@lib/functions/Events'; -import { - eventModified, - getDetailUrl, - navigateToLink -} from '@lib/functions/Navigation'; -import { showNotification } from '@mantine/notifications'; import { api } from '../../App'; import { useUserSettingsState } from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/components/nav/SettingsHeader.tsx b/src/frontend/src/components/nav/SettingsHeader.tsx index d5a1b914d2b9..33c8babf9e2a 100644 --- a/src/frontend/src/components/nav/SettingsHeader.tsx +++ b/src/frontend/src/components/nav/SettingsHeader.tsx @@ -1,9 +1,8 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Group, SegmentedControl, Stack, Text } from '@mantine/core'; import type { ReactNode } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { StylishText } from '@lib/components/StylishText'; import { useUserState } from '../../states/UserState'; interface SettingsHeaderInterface { diff --git a/src/frontend/src/components/panels/AttachmentPanel.tsx b/src/frontend/src/components/panels/AttachmentPanel.tsx index 8102581de065..83ed8576e9a3 100644 --- a/src/frontend/src/components/panels/AttachmentPanel.tsx +++ b/src/frontend/src/components/panels/AttachmentPanel.tsx @@ -1,10 +1,9 @@ -import { t } from '@lingui/core/macro'; -import { Skeleton } from '@mantine/core'; -import { IconPaperclip } from '@tabler/icons-react'; - import type { ModelType } from '@lib/enums/ModelType'; import { ApiEndpoints, apiUrl } from '@lib/index'; import type { PanelType } from '@lib/types/Panel'; +import { t } from '@lingui/core/macro'; +import { Skeleton } from '@mantine/core'; +import { IconPaperclip } from '@tabler/icons-react'; import { api } from '../../App'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; diff --git a/src/frontend/src/components/panels/NotesPanel.tsx b/src/frontend/src/components/panels/NotesPanel.tsx index 66696384bb24..1c6b90d5ddc4 100644 --- a/src/frontend/src/components/panels/NotesPanel.tsx +++ b/src/frontend/src/components/panels/NotesPanel.tsx @@ -1,9 +1,8 @@ +import type { ModelType } from '@lib/enums/ModelType'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Skeleton } from '@mantine/core'; import { IconNotes } from '@tabler/icons-react'; - -import type { ModelType } from '@lib/enums/ModelType'; -import type { PanelType } from '@lib/types/Panel'; import { lazy } from 'react'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/components/panels/PanelGroup.tsx b/src/frontend/src/components/panels/PanelGroup.tsx index c07249f3035f..3445e913d7a0 100644 --- a/src/frontend/src/components/panels/PanelGroup.tsx +++ b/src/frontend/src/components/panels/PanelGroup.tsx @@ -1,3 +1,19 @@ +import { Boundary } from '@lib/components/Boundary'; +import { StylishText } from '@lib/components/StylishText'; +import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; +import { identifierString } from '@lib/functions/Conversion'; +import { cancelEvent } from '@lib/functions/Events'; +import { + eventModified, + getBaseUrl, + navigateToLink +} from '@lib/functions/Navigation'; +import type { + PanelGroupType, + PanelIndicatorType, + PanelType +} from '@lib/types/Panel'; +import { t } from '@lingui/core/macro'; import { ActionIcon, Box, @@ -13,10 +29,12 @@ import { Tooltip, UnstyledButton } from '@mantine/core'; +import { useDocumentVisibility, useWindowEvent } from '@mantine/hooks'; import { IconLayoutSidebarLeftCollapse, IconLayoutSidebarRightCollapse } from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; import { type ReactNode, useCallback, @@ -32,22 +50,6 @@ import { useNavigate, useParams } from 'react-router-dom'; - -import { Boundary } from '@lib/components/Boundary'; -import { StylishText } from '@lib/components/StylishText'; -import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; -import { identifierString } from '@lib/functions/Conversion'; -import { cancelEvent } from '@lib/functions/Events'; -import { eventModified, getBaseUrl } from '@lib/functions/Navigation'; -import { navigateToLink } from '@lib/functions/Navigation'; -import type { - PanelGroupType, - PanelIndicatorType, - PanelType -} from '@lib/types/Panel'; -import { t } from '@lingui/core/macro'; -import { useDocumentVisibility, useWindowEvent } from '@mantine/hooks'; -import { useQuery } from '@tanstack/react-query'; import { useShallow } from 'zustand/react/shallow'; import { generateUrl } from '../../functions/urls'; import { usePluginPanels } from '../../hooks/UsePluginPanels'; diff --git a/src/frontend/src/components/plugins/PluginContext.tsx b/src/frontend/src/components/plugins/PluginContext.tsx index e6790c4c4954..97ad1819a600 100644 --- a/src/frontend/src/components/plugins/PluginContext.tsx +++ b/src/frontend/src/components/plugins/PluginContext.tsx @@ -1,15 +1,3 @@ -import { useMantineColorScheme, useMantineTheme } from '@mantine/core'; -import { useMemo } from 'react'; -import { useNavigate } from 'react-router-dom'; -import { useShallow } from 'zustand/react/shallow'; -import { api, queryClient } from '../../App'; -import { useLocalState } from '../../states/LocalState'; -import { - useGlobalSettingsState, - useUserSettingsState -} from '../../states/SettingsStates'; -import { useUserState } from '../../states/UserState'; - import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { INVENTREE_MANTINE_VERSION, @@ -19,7 +7,12 @@ import { } from '@lib/types/Plugins'; import type { InvenTreeTableRenderProps } from '@lib/types/Tables'; import { i18n } from '@lingui/core'; +import { useMantineColorScheme, useMantineTheme } from '@mantine/core'; import { useContextMenu } from 'mantine-contextmenu'; +import { useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { useShallow } from 'zustand/react/shallow'; +import { api, queryClient } from '../../App'; import { defaultLocale } from '../../contexts/LanguageContext'; import { useAddStockItem, @@ -40,18 +33,27 @@ import { } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; import { - type ImporterOpenOptions, closeGlobalImporter, getGlobalImporterState, + type ImporterOpenOptions, openGlobalImporter } from '../../states/ImporterState'; +import { useLocalState } from '../../states/LocalState'; import { usePluginState } from '../../states/PluginState'; import { useServerApiState } from '../../states/ServerApiState'; +import { + useGlobalSettingsState, + useUserSettingsState +} from '../../states/SettingsStates'; +import { useUserState } from '../../states/UserState'; import { InvenTreeTableInternal } from '../../tables/InvenTreeTable'; import { EditApiForm } from '../forms/ApiForm'; import { Thumbnail } from '../images/Thumbnail'; -import { RenderInstance, RenderRemoteInstance } from '../render/Instance'; -import { RenderInlineModel } from '../render/Instance'; +import { + RenderInlineModel, + RenderInstance, + RenderRemoteInstance +} from '../render/Instance'; export const useInvenTreeContext = () => { const [locale, host] = useLocalState(useShallow((s) => [s.language, s.host])); diff --git a/src/frontend/src/components/plugins/PluginDrawer.tsx b/src/frontend/src/components/plugins/PluginDrawer.tsx index a1f78215fa67..aac8a6c606a1 100644 --- a/src/frontend/src/components/plugins/PluginDrawer.tsx +++ b/src/frontend/src/components/plugins/PluginDrawer.tsx @@ -1,11 +1,10 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { t } from '@lingui/core/macro'; import { Accordion, Alert, Card, Stack, Text } from '@mantine/core'; import { IconExclamationCircle } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useParams } from 'react-router-dom'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { useInstance } from '../../hooks/UseInstance'; import { InfoItem } from '../items/InfoItem'; import { PluginSettingList } from '../settings/SettingList'; diff --git a/src/frontend/src/components/plugins/PluginPanel.tsx b/src/frontend/src/components/plugins/PluginPanel.tsx index 5eee77edea81..2997be095511 100644 --- a/src/frontend/src/components/plugins/PluginPanel.tsx +++ b/src/frontend/src/components/plugins/PluginPanel.tsx @@ -1,7 +1,6 @@ +import type { InvenTreePluginContext } from '@lib/types/Plugins'; import { Stack } from '@mantine/core'; import type { ReactNode } from 'react'; - -import type { InvenTreePluginContext } from '@lib/types/Plugins'; import type { PluginUIFeature } from './PluginUIFeature'; import RemoteComponent from './RemoteComponent'; diff --git a/src/frontend/src/components/plugins/PluginUIFeature.tsx b/src/frontend/src/components/plugins/PluginUIFeature.tsx index 85425d4894c7..fe398aa95ab1 100644 --- a/src/frontend/src/components/plugins/PluginUIFeature.tsx +++ b/src/frontend/src/components/plugins/PluginUIFeature.tsx @@ -64,7 +64,7 @@ export const getPluginTemplateEditor = ( func: PluginUIFuncWithoutInvenTreeContextType, template: TemplateI ) => - forwardRef((props, ref) => { + forwardRef((_props, ref) => { const elRef = useRef(null); const [error, setError] = useState(undefined); @@ -133,7 +133,7 @@ export const getPluginTemplatePreview = ( func: PluginUIFuncWithoutInvenTreeContextType, template: TemplateI ) => - forwardRef((props, ref) => { + forwardRef((_props, ref) => { const elRef = useRef(null); const [error, setError] = useState(undefined); diff --git a/src/frontend/src/components/plugins/RemoteComponent.tsx b/src/frontend/src/components/plugins/RemoteComponent.tsx index 671dc7c5a0af..a030c1b69d17 100644 --- a/src/frontend/src/components/plugins/RemoteComponent.tsx +++ b/src/frontend/src/components/plugins/RemoteComponent.tsx @@ -1,12 +1,11 @@ +import { Boundary } from '@lib/components/Boundary'; +import { identifierString } from '@lib/functions/Conversion'; +import type { InvenTreePluginContext } from '@lib/types/Plugins'; import { t } from '@lingui/core/macro'; import { Alert, MantineProvider, Stack, Text } from '@mantine/core'; import { IconExclamationCircle } from '@tabler/icons-react'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; - -import { Boundary } from '@lib/components/Boundary'; -import { identifierString } from '@lib/functions/Conversion'; -import type { InvenTreePluginContext } from '@lib/types/Plugins'; -import { type Root, createRoot } from 'react-dom/client'; +import { createRoot, type Root } from 'react-dom/client'; import { api, queryClient } from '../../App'; import { ApiProvider } from '../../contexts/ApiContext'; import { LanguageContext } from '../../contexts/LanguageContext'; diff --git a/src/frontend/src/components/render/Build.tsx b/src/frontend/src/components/render/Build.tsx index eff0e68b0f99..43b8e84e4c94 100644 --- a/src/frontend/src/components/render/Build.tsx +++ b/src/frontend/src/components/render/Build.tsx @@ -1,7 +1,6 @@ -import type { ReactNode } from 'react'; - import { ModelType } from '@lib/enums/ModelType'; import { getDetailUrl } from '@lib/functions/Navigation'; +import type { ReactNode } from 'react'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; import { StatusRenderer } from './StatusRenderer'; diff --git a/src/frontend/src/components/render/Company.tsx b/src/frontend/src/components/render/Company.tsx index 09aeee04ccd7..5fa0603ca120 100644 --- a/src/frontend/src/components/render/Company.tsx +++ b/src/frontend/src/components/render/Company.tsx @@ -1,9 +1,7 @@ -import type { ReactNode } from 'react'; - -import { Text } from '@mantine/core'; - import { ModelType } from '@lib/enums/ModelType'; import { getDetailUrl } from '@lib/functions/Navigation'; +import { Text } from '@mantine/core'; +import type { ReactNode } from 'react'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; /** diff --git a/src/frontend/src/components/render/Generic.tsx b/src/frontend/src/components/render/Generic.tsx index 157f51979a19..b13c158e44fa 100644 --- a/src/frontend/src/components/render/Generic.tsx +++ b/src/frontend/src/components/render/Generic.tsx @@ -1,6 +1,5 @@ -import type { ReactNode } from 'react'; - import { Group, Text } from '@mantine/core'; +import type { ReactNode } from 'react'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; export function RenderParameterTemplate({ diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 531aeababdb2..1f3ef1bede30 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -1,3 +1,13 @@ +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import type { + InstanceRenderInterface, + ModelRendererDict, + RemoteInstanceProps, + RenderInlineModelProps, + RenderInstanceProps +} from '@lib/types/Rendering'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -16,18 +26,8 @@ import { import { useQuery } from '@tanstack/react-query'; import { type ReactNode, useCallback, useMemo } from 'react'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import type { - InstanceRenderInterface, - ModelRendererDict, - RemoteInstanceProps, - RenderInlineModelProps, - RenderInstanceProps -} from '@lib/types/Rendering'; - export type { InstanceRenderInterface } from '@lib/types/Rendering'; + import { getBaseUrl, getDetailUrl, @@ -60,11 +60,11 @@ import { } from './Generic'; import { RenderPurchaseOrder, - RenderReturnOrder, - RenderReturnOrderLineItem, RenderRepairOrder, - RenderRepairOrderLineItem, RenderRepairOrderAllocation, + RenderRepairOrderLineItem, + RenderReturnOrder, + RenderReturnOrderLineItem, RenderSalesOrder, RenderSalesOrderShipment, RenderTransferOrder, diff --git a/src/frontend/src/components/render/Order.tsx b/src/frontend/src/components/render/Order.tsx index 49d533d36d90..83e933339023 100644 --- a/src/frontend/src/components/render/Order.tsx +++ b/src/frontend/src/components/render/Order.tsx @@ -1,9 +1,8 @@ +import { ModelType } from '@lib/enums/ModelType'; +import { getDetailUrl } from '@lib/functions/Navigation'; import { t } from '@lingui/core/macro'; import { Text } from '@mantine/core'; import type { ReactNode } from 'react'; - -import { ModelType } from '@lib/enums/ModelType'; -import { getDetailUrl } from '@lib/functions/Navigation'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; import { StatusRenderer } from './StatusRenderer'; diff --git a/src/frontend/src/components/render/Part.tsx b/src/frontend/src/components/render/Part.tsx index 9edb9bf68c9a..0548ea3f54c2 100644 --- a/src/frontend/src/components/render/Part.tsx +++ b/src/frontend/src/components/render/Part.tsx @@ -1,11 +1,10 @@ -import { t } from '@lingui/core/macro'; -import { Badge, Group, Text } from '@mantine/core'; -import type { ReactNode } from 'react'; - import { ModelType } from '@lib/enums/ModelType'; import { formatDecimal } from '@lib/functions/Formatting'; import { getDetailUrl } from '@lib/functions/Navigation'; import { shortenString } from '@lib/functions/String'; +import { t } from '@lingui/core/macro'; +import { Badge, Group, Text } from '@mantine/core'; +import type { ReactNode } from 'react'; import { TableHoverCard } from '../../tables/TableHoverCard'; import { ApiIcon } from '../items/ApiIcon'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; diff --git a/src/frontend/src/components/render/StatusRenderer.tsx b/src/frontend/src/components/render/StatusRenderer.tsx index cf08aea6c720..10896ce067e2 100644 --- a/src/frontend/src/components/render/StatusRenderer.tsx +++ b/src/frontend/src/components/render/StatusRenderer.tsx @@ -1,7 +1,6 @@ -import { Badge, Center, type MantineSize } from '@mantine/core'; - import type { ModelType } from '@lib/enums/ModelType'; import { resolveItem } from '@lib/functions/Conversion'; +import { Badge, Center, type MantineSize } from '@mantine/core'; import { statusColorMap } from '../../defaults/backendMappings'; import { useGlobalStatusState } from '../../states/GlobalStatusState'; diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx index 1ecd89809b88..0f08474ffb81 100644 --- a/src/frontend/src/components/render/Stock.tsx +++ b/src/frontend/src/components/render/Stock.tsx @@ -1,11 +1,10 @@ -import { t } from '@lingui/core/macro'; -import { Group, Text } from '@mantine/core'; -import type { ReactNode } from 'react'; - import { ModelType } from '@lib/enums/ModelType'; import { formatDecimal } from '@lib/functions/Formatting'; import { getDetailUrl } from '@lib/functions/Navigation'; import { shortenString } from '@lib/functions/String'; +import { t } from '@lingui/core/macro'; +import { Group, Text } from '@mantine/core'; +import type { ReactNode } from 'react'; import { TableHoverCard } from '../../tables/TableHoverCard'; import { ApiIcon } from '../items/ApiIcon'; import { diff --git a/src/frontend/src/components/render/User.tsx b/src/frontend/src/components/render/User.tsx index 20317f384288..98b351d7832a 100644 --- a/src/frontend/src/components/render/User.tsx +++ b/src/frontend/src/components/render/User.tsx @@ -1,8 +1,7 @@ +import { t } from '@lingui/core/macro'; import { Badge, Group, Text } from '@mantine/core'; import { IconUser, IconUsersGroup } from '@tabler/icons-react'; import type { ReactNode } from 'react'; - -import { t } from '@lingui/core/macro'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; export function RenderOwner({ diff --git a/src/frontend/src/components/settings/ConfigValueList.tsx b/src/frontend/src/components/settings/ConfigValueList.tsx index 184f09f62caa..7a5a98bed13a 100644 --- a/src/frontend/src/components/settings/ConfigValueList.tsx +++ b/src/frontend/src/components/settings/ConfigValueList.tsx @@ -1,7 +1,6 @@ -import { Table } from '@mantine/core'; - import { ApiEndpoints, apiUrl } from '@lib/index'; import { Trans } from '@lingui/react/macro'; +import { Table } from '@mantine/core'; import { useQuery } from '@tanstack/react-query'; import { useMemo } from 'react'; import { api } from '../../App'; diff --git a/src/frontend/src/components/settings/FactItem.tsx b/src/frontend/src/components/settings/FactItem.tsx index 7ec8b5484147..97256bc04345 100644 --- a/src/frontend/src/components/settings/FactItem.tsx +++ b/src/frontend/src/components/settings/FactItem.tsx @@ -1,6 +1,5 @@ -import { Paper, Stack, Text } from '@mantine/core'; - import { StylishText } from '@lib/components/StylishText'; +import { Paper, Stack, Text } from '@mantine/core'; export function FactItem({ title, diff --git a/src/frontend/src/components/settings/QuickAction.tsx b/src/frontend/src/components/settings/QuickAction.tsx index 40ea4b71321b..692acb518d52 100644 --- a/src/frontend/src/components/settings/QuickAction.tsx +++ b/src/frontend/src/components/settings/QuickAction.tsx @@ -1,3 +1,4 @@ +import { ApiEndpoints } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { Button, Group, Paper, SimpleGrid, Stack, Text } from '@mantine/core'; @@ -8,8 +9,6 @@ import { IconUsersGroup, type ReactNode } from '@tabler/icons-react'; - -import { ApiEndpoints } from '@lib/index'; import { projectCodeFields, useCustomStateFields diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx index d188eff8b2bf..444b84bed4a1 100644 --- a/src/frontend/src/components/settings/SettingItem.tsx +++ b/src/frontend/src/components/settings/SettingItem.tsx @@ -1,3 +1,8 @@ +import { Boundary } from '@lib/components/Boundary'; +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import type { Setting } from '@lib/types/Settings'; import { t } from '@lingui/core/macro'; import { Button, @@ -12,12 +17,6 @@ import { } from '@mantine/core'; import { IconEdit } from '@tabler/icons-react'; import { useCallback, useEffect, useMemo, useState } from 'react'; - -import { Boundary } from '@lib/components/Boundary'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import type { Setting } from '@lib/types/Settings'; import { api } from '../../App'; import { vars } from '../../theme'; import { RenderInstance } from '../render/Instance'; @@ -116,7 +115,7 @@ function SettingValue({ setModelInstance(null); } }) - .catch((error) => { + .catch((_error) => { setModelInstance(null); }); } diff --git a/src/frontend/src/components/settings/SettingList.tsx b/src/frontend/src/components/settings/SettingList.tsx index a0eb5ebd180f..1c55f5696cc6 100644 --- a/src/frontend/src/components/settings/SettingList.tsx +++ b/src/frontend/src/components/settings/SettingList.tsx @@ -1,15 +1,14 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import type { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import type { Setting, SettingsStateProps } from '@lib/types/Settings'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { Alert, Divider, Skeleton, Stack, Text, Title } from '@mantine/core'; import { notifications } from '@mantine/notifications'; +import { IconExclamationCircle, IconInfoCircle } from '@tabler/icons-react'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useStore } from 'zustand'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import type { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import type { Setting, SettingsStateProps } from '@lib/types/Settings'; -import { IconExclamationCircle, IconInfoCircle } from '@tabler/icons-react'; import { useApi } from '../../contexts/ApiContext'; import { useEditApiFormModal } from '../../hooks/UseForm'; import { @@ -93,7 +92,7 @@ export function SettingList({ // Callback for editing a single setting instance const onValueEdit = useCallback( - (setting: Setting, confirmed: boolean) => { + (setting: Setting, _confirmed: boolean) => { setSetting(setting); editSettingModal.open(); }, diff --git a/src/frontend/src/components/wizards/ImportPartWizard.tsx b/src/frontend/src/components/wizards/ImportPartWizard.tsx index 68c3fa6aaeaf..5e9701fb7a29 100644 --- a/src/frontend/src/components/wizards/ImportPartWizard.tsx +++ b/src/frontend/src/components/wizards/ImportPartWizard.tsx @@ -1,4 +1,4 @@ -import { ApiEndpoints, ModelType, apiUrl } from '@lib/index'; +import { ApiEndpoints, apiUrl, ModelType } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -545,7 +545,10 @@ export default function ImportPartWizard({ async ({ categoryId, partId - }: { categoryId?: number; partId?: number }) => { + }: { + categoryId?: number; + partId?: number; + }) => { setIsImporting(true); try { const importResult = await api.post( diff --git a/src/frontend/src/components/wizards/OrderPartsWizard.tsx b/src/frontend/src/components/wizards/OrderPartsWizard.tsx index e026cae9fb97..11f29ae5f721 100644 --- a/src/frontend/src/components/wizards/OrderPartsWizard.tsx +++ b/src/frontend/src/components/wizards/OrderPartsWizard.tsx @@ -254,7 +254,7 @@ function SelectPartsStep({ part: selectedRecord?.supplier_part?.pk, quantity: selectedRecord?.quantity }, - onFormSuccess: (response: any) => { + onFormSuccess: (_response: any) => { // Remove the row from the list onRemovePart(selectedRecord?.part); }, @@ -307,7 +307,7 @@ function SelectPartsStep({ required: true, autoFill: true, value: record.supplier_part?.pk, - onValueChange: (value, instance) => { + onValueChange: (_value, instance) => { onSelectSupplierPart(record.part.pk, instance); }, filters: { @@ -357,7 +357,7 @@ function SelectPartsStep({ supplier: record.supplier_part?.supplier, outstanding: true }, - onValueChange: (value, instance) => { + onValueChange: (_value, instance) => { onSelectPurchaseOrder(record.part.pk, instance); } }} @@ -453,11 +453,7 @@ function SelectPartsStep({ ); } -export default function OrderPartsWizard({ - parts -}: { - parts: any[]; -}) { +export default function OrderPartsWizard({ parts }: { parts: any[] }) { // Track a list of selected parts const [selectedParts, setSelectedParts] = useState([]); @@ -552,7 +548,7 @@ export default function OrderPartsWizard({ // Render the select wizard step const renderStep = useCallback( - (step: number) => { + (_step: number) => { return ( { + (_step: number): boolean => { if (!selectedParts?.length) { wizard.setError(t`No parts selected`); wizard.setErrorDetail(t`You must select at least one part to order`); diff --git a/src/frontend/src/contexts/LanguageContext.tsx b/src/frontend/src/contexts/LanguageContext.tsx index 2bf33232ad25..183421c4feab 100644 --- a/src/frontend/src/contexts/LanguageContext.tsx +++ b/src/frontend/src/contexts/LanguageContext.tsx @@ -1,9 +1,8 @@ +import { useStoredTableState } from '@lib/states/StoredTableState'; import { i18n } from '@lingui/core'; import { I18nProvider } from '@lingui/react'; import { LoadingOverlay, Text } from '@mantine/core'; import { type JSX, useEffect, useRef, useState } from 'react'; - -import { useStoredTableState } from '@lib/states/StoredTableState'; import { useShallow } from 'zustand/react/shallow'; import { api } from '../App'; import { useLocalState } from '../states/LocalState'; diff --git a/src/frontend/src/contexts/ThemeContext.tsx b/src/frontend/src/contexts/ThemeContext.tsx index 192878f55998..07f8fa67eec7 100644 --- a/src/frontend/src/contexts/ThemeContext.tsx +++ b/src/frontend/src/contexts/ThemeContext.tsx @@ -1,9 +1,9 @@ import { msg } from '@lingui/core/macro'; import { Trans } from '@lingui/react'; import { + createTheme, MantineProvider, - type MantineThemeOverride, - createTheme + type MantineThemeOverride } from '@mantine/core'; import { ModalsProvider } from '@mantine/modals'; import { Notifications } from '@mantine/notifications'; @@ -15,15 +15,15 @@ import { LicenseModal } from '../components/modals/LicenseModal'; import { QrModal } from '../components/modals/QrModal'; import { ServerInfoModal } from '../components/modals/ServerInfoModal'; import { useLocalState } from '../states/LocalState'; -import { LanguageContext } from './LanguageContext'; import { colorSchema } from './colorSchema'; +import { LanguageContext } from './LanguageContext'; export function ThemeContext({ children }: Readonly<{ children: JSX.Element }>) { const [userTheme] = useLocalState(useShallow((state) => [state.userTheme])); - let customUserTheme: MantineThemeOverride | undefined = undefined; + let customUserTheme: MantineThemeOverride | undefined; // Theme try { diff --git a/src/frontend/src/contexts/colorSchema.tsx b/src/frontend/src/contexts/colorSchema.tsx index 131e9da8e4a7..40e178d39d32 100644 --- a/src/frontend/src/contexts/colorSchema.tsx +++ b/src/frontend/src/contexts/colorSchema.tsx @@ -1,7 +1,7 @@ import { + isMantineColorScheme, type MantineColorScheme, - type MantineColorSchemeManager, - isMantineColorScheme + type MantineColorSchemeManager } from '@mantine/core'; export interface LocalStorageColorSchemeManagerOptions { diff --git a/src/frontend/src/defaults/actions.tsx b/src/frontend/src/defaults/actions.tsx index 6bab43c5ccc2..a0258ee9731e 100644 --- a/src/frontend/src/defaults/actions.tsx +++ b/src/frontend/src/defaults/actions.tsx @@ -1,4 +1,7 @@ +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import { ModelType, UserRoles } from '@lib/index'; import { t } from '@lingui/core/macro'; +import { openContextModal } from '@mantine/modals'; import type { SpotlightActionData } from '@mantine/spotlight'; import { IconBarcode, @@ -11,12 +14,8 @@ import { IconUserBolt, IconUserCog } from '@tabler/icons-react'; -import type { NavigateFunction } from 'react-router-dom'; - -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import { ModelType, UserRoles } from '@lib/index'; -import { openContextModal } from '@mantine/modals'; import { useMemo } from 'react'; +import type { NavigateFunction } from 'react-router-dom'; import { useShallow } from 'zustand/react/shallow'; import { useLocalState } from '../states/LocalState'; import { useGlobalSettingsState } from '../states/SettingsStates'; diff --git a/src/frontend/src/defaults/formatters.tsx b/src/frontend/src/defaults/formatters.tsx index 9c52696e26f6..cba1e685087c 100644 --- a/src/frontend/src/defaults/formatters.tsx +++ b/src/frontend/src/defaults/formatters.tsx @@ -1,9 +1,8 @@ -import dayjs from 'dayjs'; - import { type FormatCurrencyOptionsInterface, formatCurrencyValue } from '@lib/functions/Formatting'; +import dayjs from 'dayjs'; import { useGlobalSettingsState, useUserSettingsState diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx index 587403aef01e..7148578e99bf 100644 --- a/src/frontend/src/defaults/links.tsx +++ b/src/frontend/src/defaults/links.tsx @@ -1,11 +1,10 @@ -import { t } from '@lingui/core/macro'; -import { Trans } from '@lingui/react/macro'; -import { openContextModal } from '@mantine/modals'; - import { StylishText } from '@lib/components/StylishText'; import { UserRoles } from '@lib/enums/Roles'; import type { SettingsStateProps } from '@lib/types/Settings'; import type { UserStateProps } from '@lib/types/User'; +import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; +import { openContextModal } from '@mantine/modals'; import { IconBox, IconBuildingFactory2, diff --git a/src/frontend/src/forms/BomForms.tsx b/src/frontend/src/forms/BomForms.tsx index dc92103edda7..fac0a3a61239 100644 --- a/src/frontend/src/forms/BomForms.tsx +++ b/src/frontend/src/forms/BomForms.tsx @@ -149,7 +149,7 @@ export function useEditBomSubstitutesForm(props: BomItemSubstituteFormProps) { onClose: () => { props.onClose?.(); }, - checkClose: (response, form) => { + checkClose: (_response, _form) => { // Keep the form open return false; }, diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index 0deea93e13b0..11f89428488f 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -1,3 +1,8 @@ +import { ProgressBar } from '@lib/components/ProgressBar'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Alert, Divider, Group, List, Stack, Table, Text } from '@mantine/core'; import { @@ -11,19 +16,12 @@ import { IconUsersGroup } from '@tabler/icons-react'; import { useEffect, useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; - -import { ProgressBar } from '@lib/components/ProgressBar'; -import { apiUrl } from '@lib/functions/Api'; -import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { TableFieldErrorWrapper, type TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { StatusRenderer } from '../components/render/StatusRenderer'; import { RenderStockItem, @@ -289,32 +287,30 @@ function BuildOutputFormRow({ }, [props, record]); return ( - <> - - - - - {stockItemColumn} - {withQuantityColumn && ( - - - {quantityColumn} - - - )} - {record.batch} + + + + + {stockItemColumn} + {withQuantityColumn && ( - {' '} + + {quantityColumn} + - - props.removeFn(props.idx)} /> - - - + )} + {record.batch} + + {' '} + + + props.removeFn(props.idx)} /> + + ); } diff --git a/src/frontend/src/forms/CommonForms.tsx b/src/frontend/src/forms/CommonForms.tsx index 71ae140ac337..140cf2aabadf 100644 --- a/src/frontend/src/forms/CommonForms.tsx +++ b/src/frontend/src/forms/CommonForms.tsx @@ -1,11 +1,10 @@ -import { IconUsers } from '@tabler/icons-react'; -import { useCallback, useEffect, useMemo, useState } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; +import { IconUsers } from '@tabler/icons-react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import type { StatusCodeInterface, StatusCodeListInterface @@ -189,7 +188,7 @@ export function useParameterFields({ for_model: modelType, enabled: true }, - onValueChange: (value: any, record: any) => { + onValueChange: (_value: any, record: any) => { setSelectionListId(record?.selectionlist || null); // Adjust the type of the "data" field based on the selected template diff --git a/src/frontend/src/forms/CompanyForms.tsx b/src/frontend/src/forms/CompanyForms.tsx index 9cefd6147f9a..00e33b3bc553 100644 --- a/src/frontend/src/forms/CompanyForms.tsx +++ b/src/frontend/src/forms/CompanyForms.tsx @@ -38,7 +38,7 @@ export function useSupplierPartFields({ purchaseable: true, active: true }, - onValueChange: (value: any, record: any) => { + onValueChange: (_value: any, record: any) => { setPart(record); } }, diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx index d12916a49bec..6c478897d689 100644 --- a/src/frontend/src/forms/PurchaseOrderForms.tsx +++ b/src/frontend/src/forms/PurchaseOrderForms.tsx @@ -1,3 +1,14 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { ProgressBar } from '@lib/components/ProgressBar'; +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { toNumber } from '@lib/functions/Conversion'; +import type { + ApiFormAdjustFilterType, + ApiFormFieldSet +} from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -15,6 +26,7 @@ import { useDisclosure } from '@mantine/hooks'; import { IconAddressBook, IconCalendar, + IconCalendarExclamation, IconCoins, IconCurrencyDollar, IconHash, @@ -26,28 +38,14 @@ import { IconUser, IconUsers } from '@tabler/icons-react'; -import { useEffect, useMemo, useState } from 'react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { IconCalendarExclamation } from '@tabler/icons-react'; import dayjs from 'dayjs'; +import { useEffect, useMemo, useState } from 'react'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; - -import { ProgressBar } from '@lib/components/ProgressBar'; -import { StylishText } from '@lib/components/StylishText'; -import { apiUrl } from '@lib/functions/Api'; -import { toNumber } from '@lib/functions/Conversion'; -import type { - ApiFormAdjustFilterType, - ApiFormFieldSet -} from '@lib/types/Forms'; import { TableFieldExtraRow, type TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { Thumbnail } from '../components/images/Thumbnail'; import { getStatusCodeOptions } from '../components/render/StatusRenderer'; import { InvenTreeIcon } from '../functions/icons'; @@ -133,7 +131,7 @@ export function usePurchaseOrderLineItemFields({ part_active: true, price_breaks: true }, - onValueChange: (value, record) => { + onValueChange: (_value, record) => { setPriceBreaks(record?.price_breaks ?? []); setPart(record?.part_detail ?? {}); }, @@ -881,7 +879,7 @@ export function useReceiveLineItems(props: LineItemsForm) { }, items: { field_type: 'table', - value: filteredItems.map((elem, idx) => { + value: filteredItems.map((elem, _idx) => { return { line_item: elem.pk, location: elem.destination ?? elem.destination_detail?.pk ?? null, diff --git a/src/frontend/src/forms/RepairOrderForms.tsx b/src/frontend/src/forms/RepairOrderForms.tsx index 822f61f1e6ce..18637fc6110e 100644 --- a/src/frontend/src/forms/RepairOrderForms.tsx +++ b/src/frontend/src/forms/RepairOrderForms.tsx @@ -1,11 +1,6 @@ -import { t } from '@lingui/core/macro'; +import type { ApiFormFieldSet } from '@lib/types/Forms'; import { useMemo } from 'react'; -import type { - ApiFormAdjustFilterType, - ApiFormFieldSet -} from '@lib/types/Forms'; - export function useRepairOrderFields({ duplicateOrderId }: { diff --git a/src/frontend/src/forms/ReturnOrderForms.tsx b/src/frontend/src/forms/ReturnOrderForms.tsx index 2f5be88aa88d..ebd7935875fe 100644 --- a/src/frontend/src/forms/ReturnOrderForms.tsx +++ b/src/frontend/src/forms/ReturnOrderForms.tsx @@ -1,3 +1,10 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import type { + ApiFormAdjustFilterType, + ApiFormFieldSet +} from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Flex, Table } from '@mantine/core'; import { @@ -7,18 +14,9 @@ import { IconUsers } from '@tabler/icons-react'; import { useMemo } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; - -import { apiUrl } from '@lib/functions/Api'; -import type { - ApiFormAdjustFilterType, - ApiFormFieldSet -} from '@lib/types/Forms'; import type { TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { Thumbnail } from '../components/images/Thumbnail'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; @@ -179,38 +177,36 @@ function ReturnOrderLineItemFormRow({ }, [record.quantity, record.item_detail]); return ( - <> - - - - -
{record.part_detail.name}
-
-
- {quantityDisplay} - - { - props.changeFn(props.idx, 'status', value); - } - }} - defaultValue={record.item_detail?.status} - error={props.rowErrors?.status?.message} + + + + - - - props.removeFn(props.idx)} /> - - - +
{record.part_detail.name}
+ +
+ {quantityDisplay} + + { + props.changeFn(props.idx, 'status', value); + } + }} + defaultValue={record.item_detail?.status} + error={props.rowErrors?.status?.message} + /> + + + props.removeFn(props.idx)} /> + +
); } diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index ecfe82993c4f..6c660cbfd834 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -1,3 +1,13 @@ +import { ProgressBar } from '@lib/components/ProgressBar'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { toNumber } from '@lib/functions/Conversion'; +import type { + ApiFormAdjustFilterType, + ApiFormFieldSet, + ApiFormFieldType +} from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Alert, Table, Text } from '@mantine/core'; import { @@ -9,23 +19,11 @@ import { IconUser, IconUsers } from '@tabler/icons-react'; +import dayjs from 'dayjs'; import { useEffect, useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; - -import { ProgressBar } from '@lib/components/ProgressBar'; -import { apiUrl } from '@lib/functions/Api'; -import { toNumber } from '@lib/functions/Conversion'; -import type { - ApiFormAdjustFilterType, - ApiFormFieldSet, - ApiFormFieldType -} from '@lib/types/Forms'; -import dayjs from 'dayjs'; import type { TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import useBackgroundTask from '../hooks/UseBackgroundTask'; import { useCreateApiFormModal, useEditApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; @@ -139,7 +137,7 @@ export function useSalesOrderLineItemFields({ return; } - if (!part || !part.price_breaks || part.price_breaks.length === 0) { + if (!part?.price_breaks || part.price_breaks.length === 0) { setSalePrice(undefined); return; } diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index fe209f11c9d1..5210c01a989f 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -39,11 +39,11 @@ import { useFormContext } from 'react-hook-form'; import { useNavigate } from 'react-router-dom'; import { api } from '../App'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; import { TableFieldExtraRow, type TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { Thumbnail } from '../components/images/Thumbnail'; import { StatusRenderer } from '../components/render/StatusRenderer'; import { RenderStockLocation } from '../components/render/Stock'; @@ -116,8 +116,8 @@ export function useStockFields({ // Find the highest price break that is less than or equal to the quantity const priceBreak = Object.entries(pricing) - .sort(([a], [b]) => Number.parseInt(b) - Number.parseInt(a)) - .find(([br]) => quantity >= Number.parseInt(br)); + .sort(([a], [b]) => Number.parseInt(b, 10) - Number.parseInt(a, 10)) + .find(([br]) => quantity >= Number.parseInt(br, 10)); if (priceBreak) { setPurchasePrice(priceBreak[1][0]); @@ -1577,7 +1577,7 @@ export function useTestResultFields({ include_inherited: true, part: partId }, - onValueChange: (value: any, record: any) => { + onValueChange: (_value: any, record: any) => { // Adjust the type of the "value" field based on the selected template if (record?.choices) { const _choices: string[] = record.choices.split(','); diff --git a/src/frontend/src/forms/TransferOrderForms.tsx b/src/frontend/src/forms/TransferOrderForms.tsx index a7e3c8be3f50..cfb7d78b86cb 100644 --- a/src/frontend/src/forms/TransferOrderForms.tsx +++ b/src/frontend/src/forms/TransferOrderForms.tsx @@ -1,12 +1,12 @@ -import { ApiEndpoints, ModelType, ProgressBar, apiUrl } from '@lib/index'; +import { ApiEndpoints, apiUrl, ModelType, ProgressBar } from '@lib/index'; import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { Table } from '@mantine/core'; import { IconCalendar, IconUsers } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; import type { TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { RenderPartColumn } from '../tables/ColumnRenderers'; diff --git a/src/frontend/src/forms/selectionListFields.tsx b/src/frontend/src/forms/selectionListFields.tsx index c3b864d57206..d04b300c61e2 100644 --- a/src/frontend/src/forms/selectionListFields.tsx +++ b/src/frontend/src/forms/selectionListFields.tsx @@ -3,8 +3,8 @@ import { t } from '@lingui/core/macro'; import { Table } from '@mantine/core'; import { useMemo } from 'react'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; -import { StandaloneField } from '../components/forms/StandaloneField'; import type { TableFieldRowProps } from '../components/forms/fields/TableField'; +import { StandaloneField } from '../components/forms/StandaloneField'; function BuildAllocateLineRow({ props diff --git a/src/frontend/src/functions/auth.tsx b/src/frontend/src/functions/auth.tsx index 6f541f049c0d..b7ecc9d547f4 100644 --- a/src/frontend/src/functions/auth.tsx +++ b/src/frontend/src/functions/auth.tsx @@ -8,14 +8,14 @@ import { apiUrl } from '@lib/functions/Api'; import { type AuthProvider, FlowEnum } from '@lib/types/Auth'; import { t } from '@lingui/core/macro'; import { notifications, showNotification } from '@mantine/notifications'; -import axios from 'axios'; import type { AxiosRequestConfig } from 'axios'; +import axios from 'axios'; import type { Location, NavigateFunction } from 'react-router-dom'; import { api, setApiDefaults } from '../App'; import { useLocalState } from '../states/LocalState'; import { useServerApiState } from '../states/ServerApiState'; -import { useUserState } from '../states/UserState'; import { fetchGlobalStates } from '../states/states'; +import { useUserState } from '../states/UserState'; import { showLoginNotification } from './notifications'; import { generateUrl } from './urls'; @@ -45,10 +45,7 @@ function post(path: string, params: any, method = 'post') { form.action = path; for (const key in params) { - if ( - params.hasOwn?.(key) || - Object.prototype.hasOwnProperty.call(params, key) - ) { + if (params.hasOwn?.(key) || Object.hasOwn(params, key)) { const hiddenField = document.createElement('input'); hiddenField.type = 'hidden'; hiddenField.name = key; @@ -581,7 +578,7 @@ export const getTotpSecret = async (setTotpQr: any) => { export function handleVerifyTotp( value: string, navigate: NavigateFunction, - location: Location + _location: Location ) { return () => { authApi(apiUrl(ApiEndpoints.auth_totp), undefined, 'post', { diff --git a/src/frontend/src/functions/icons.tsx b/src/frontend/src/functions/icons.tsx index c5fcfe6c88a6..af460da4398a 100644 --- a/src/frontend/src/functions/icons.tsx +++ b/src/frontend/src/functions/icons.tsx @@ -97,7 +97,6 @@ import { IconTag, IconTax, IconTestPipe, - IconToggleRight, IconTool, IconTools, IconTransfer, diff --git a/src/frontend/src/functions/loading.tsx b/src/frontend/src/functions/loading.tsx index f0dbcb0894f3..e90e999a59a9 100644 --- a/src/frontend/src/functions/loading.tsx +++ b/src/frontend/src/functions/loading.tsx @@ -6,7 +6,9 @@ import { theme } from '../theme'; function LoadingFallback({ fullHeight = false -}: { fullHeight: boolean }): JSX.Element { +}: { + fullHeight: boolean; +}): JSX.Element { return ( diff --git a/src/frontend/src/functions/urls.tsx b/src/frontend/src/functions/urls.tsx index 830b82b21584..0c399eac8d53 100644 --- a/src/frontend/src/functions/urls.tsx +++ b/src/frontend/src/functions/urls.tsx @@ -18,7 +18,7 @@ export function generateUrl(url: string | URL, base?: string): string { } else { newUrl = url.toString(); } - } catch (e: any) { + } catch (_e: any) { console.error(`ERR: generateURL failed. url='${url}', base='${base}'`); } diff --git a/src/frontend/src/hooks/UseDashboardItems.tsx b/src/frontend/src/hooks/UseDashboardItems.tsx index 4d91c6bf20a6..03131551664c 100644 --- a/src/frontend/src/hooks/UseDashboardItems.tsx +++ b/src/frontend/src/hooks/UseDashboardItems.tsx @@ -1,9 +1,8 @@ -import { useQuery } from '@tanstack/react-query'; -import { useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import { identifierString } from '@lib/functions/Conversion'; +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; import { api } from '../App'; import type { DashboardWidgetProps } from '../components/dashboard/DashboardWidget'; import DashboardWidgetLibrary from '../components/dashboard/DashboardWidgetLibrary'; diff --git a/src/frontend/src/hooks/UseFilter.tsx b/src/frontend/src/hooks/UseFilter.tsx index 88781f9d8d3a..051cccf8b0aa 100644 --- a/src/frontend/src/hooks/UseFilter.tsx +++ b/src/frontend/src/hooks/UseFilter.tsx @@ -2,11 +2,11 @@ * Custom hook for retrieving a list of items from the API, * and turning them into "filters" for use in the frontend table framework. */ -import { useQuery } from '@tanstack/react-query'; -import { useCallback, useMemo } from 'react'; import { resolveItem } from '@lib/functions/Conversion'; import type { TableFilterChoice } from '@lib/types/Filters'; +import { useQuery } from '@tanstack/react-query'; +import { useCallback, useMemo } from 'react'; import { useApi } from '../contexts/ApiContext'; type UseFilterProps = { diff --git a/src/frontend/src/hooks/UseForm.tsx b/src/frontend/src/hooks/UseForm.tsx index b832be4dae62..50a35cc4d62d 100644 --- a/src/frontend/src/hooks/UseForm.tsx +++ b/src/frontend/src/hooks/UseForm.tsx @@ -1,12 +1,11 @@ -import { t } from '@lingui/core/macro'; -import { Alert, Divider, Stack } from '@mantine/core'; -import { useId } from '@mantine/hooks'; -import { useEffect, useMemo, useRef, useState } from 'react'; - import type { ApiFormModalProps, BulkEditApiFormModalProps } from '@lib/types/Forms'; +import { t } from '@lingui/core/macro'; +import { Alert, Divider, Stack } from '@mantine/core'; +import { useId } from '@mantine/hooks'; +import { useEffect, useMemo, useRef, useState } from 'react'; import { OptionsApiForm } from '../components/forms/ApiForm'; import { useModalState } from '../states/ModalState'; import { useModal } from './UseModal'; diff --git a/src/frontend/src/hooks/UseGenerator.tsx b/src/frontend/src/hooks/UseGenerator.tsx index 45f1f1f594b3..321215abef0f 100644 --- a/src/frontend/src/hooks/UseGenerator.tsx +++ b/src/frontend/src/hooks/UseGenerator.tsx @@ -1,9 +1,8 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { useDebouncedValue } from '@mantine/hooks'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; import { api } from '../App'; import { useModalState } from '../states/ModalState'; diff --git a/src/frontend/src/hooks/UseImportSession.tsx b/src/frontend/src/hooks/UseImportSession.tsx index 4e97c0594454..d3ad9a1c7b2e 100644 --- a/src/frontend/src/hooks/UseImportSession.tsx +++ b/src/frontend/src/hooks/UseImportSession.tsx @@ -1,8 +1,7 @@ -import { useCallback, useEffect, useMemo, useState } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import type { UseQueryResult } from '@tanstack/react-query'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { useInstance } from './UseInstance'; import useStatusCodes from './UseStatusCodes'; diff --git a/src/frontend/src/hooks/UseModal.tsx b/src/frontend/src/hooks/UseModal.tsx index 4bfb510cb5c4..204cf63ae069 100644 --- a/src/frontend/src/hooks/UseModal.tsx +++ b/src/frontend/src/hooks/UseModal.tsx @@ -1,9 +1,8 @@ +import { StylishText } from '@lib/components/StylishText'; +import type { UseModalProps, UseModalReturn } from '@lib/types/Modals'; import { Modal } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { useCallback } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import type { UseModalProps, UseModalReturn } from '@lib/types/Modals'; import { useUserSettingsState } from '../states/SettingsStates'; export function useModal(props: UseModalProps): UseModalReturn { diff --git a/src/frontend/src/hooks/UsePluginPanels.tsx b/src/frontend/src/hooks/UsePluginPanels.tsx index 40a71df6edbe..41be3370736b 100644 --- a/src/frontend/src/hooks/UsePluginPanels.tsx +++ b/src/frontend/src/hooks/UsePluginPanels.tsx @@ -1,11 +1,10 @@ -import { type UseQueryResult, useQuery } from '@tanstack/react-query'; -import { useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import type { PanelType } from '@lib/types/Panel'; import type { InvenTreePluginContext } from '@lib/types/Plugins'; +import { type UseQueryResult, useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; import { api } from '../App'; import { ApiIcon } from '../components/items/ApiIcon'; import { useInvenTreeContext } from '../components/plugins/PluginContext'; @@ -53,7 +52,7 @@ export function usePluginPanels({ const pluginQuery = useQuery({ enabled: pluginPanelsEnabled && !!model && id !== undefined, queryKey: ['custom-plugin-panels', model, id, instance], - throwOnError: (error: any) => { + throwOnError: (_error: any) => { console.error('ERR: Failed to fetch plugin panels'); return false; }, diff --git a/src/frontend/src/hooks/UsePluginUIFeature.tsx b/src/frontend/src/hooks/UsePluginUIFeature.tsx index cb1aa8f6d692..c5256fca6cbd 100644 --- a/src/frontend/src/hooks/UsePluginUIFeature.tsx +++ b/src/frontend/src/hooks/UsePluginUIFeature.tsx @@ -1,8 +1,7 @@ -import { useQuery } from '@tanstack/react-query'; -import { useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; import { api } from '../App'; import { useInvenTreeContext } from '../components/plugins/PluginContext'; import { findExternalPluginFunction } from '../components/plugins/PluginSource'; diff --git a/src/frontend/src/hooks/UseStatusCodes.tsx b/src/frontend/src/hooks/UseStatusCodes.tsx index c54ec1033940..f14af0392320 100644 --- a/src/frontend/src/hooks/UseStatusCodes.tsx +++ b/src/frontend/src/hooks/UseStatusCodes.tsx @@ -1,6 +1,5 @@ -import { useMemo } from 'react'; - import type { ModelType } from '@lib/enums/ModelType'; +import { useMemo } from 'react'; import { getStatusCodes } from '../components/render/StatusRenderer'; import { useGlobalStatusState } from '../states/GlobalStatusState'; diff --git a/src/frontend/src/locales/ar/messages.d.ts b/src/frontend/src/locales/ar/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/ar/messages.d.ts +++ b/src/frontend/src/locales/ar/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/bg/messages.d.ts b/src/frontend/src/locales/bg/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/bg/messages.d.ts +++ b/src/frontend/src/locales/bg/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/cs/messages.d.ts b/src/frontend/src/locales/cs/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/cs/messages.d.ts +++ b/src/frontend/src/locales/cs/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/da/messages.d.ts b/src/frontend/src/locales/da/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/da/messages.d.ts +++ b/src/frontend/src/locales/da/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/de/messages.d.ts b/src/frontend/src/locales/de/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/de/messages.d.ts +++ b/src/frontend/src/locales/de/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/el/messages.d.ts b/src/frontend/src/locales/el/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/el/messages.d.ts +++ b/src/frontend/src/locales/el/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/en/messages.d.ts b/src/frontend/src/locales/en/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/en/messages.d.ts +++ b/src/frontend/src/locales/en/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/es/messages.d.ts b/src/frontend/src/locales/es/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/es/messages.d.ts +++ b/src/frontend/src/locales/es/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/es_MX/messages.d.ts b/src/frontend/src/locales/es_MX/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/es_MX/messages.d.ts +++ b/src/frontend/src/locales/es_MX/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/et/messages.d.ts b/src/frontend/src/locales/et/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/et/messages.d.ts +++ b/src/frontend/src/locales/et/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/fa/messages.d.ts b/src/frontend/src/locales/fa/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/fa/messages.d.ts +++ b/src/frontend/src/locales/fa/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/fi/messages.d.ts b/src/frontend/src/locales/fi/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/fi/messages.d.ts +++ b/src/frontend/src/locales/fi/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/fr/messages.d.ts b/src/frontend/src/locales/fr/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/fr/messages.d.ts +++ b/src/frontend/src/locales/fr/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/he/messages.d.ts b/src/frontend/src/locales/he/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/he/messages.d.ts +++ b/src/frontend/src/locales/he/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/hi/messages.d.ts b/src/frontend/src/locales/hi/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/hi/messages.d.ts +++ b/src/frontend/src/locales/hi/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/hu/messages.d.ts b/src/frontend/src/locales/hu/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/hu/messages.d.ts +++ b/src/frontend/src/locales/hu/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/it/messages.d.ts b/src/frontend/src/locales/it/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/it/messages.d.ts +++ b/src/frontend/src/locales/it/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/ja/messages.d.ts b/src/frontend/src/locales/ja/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/ja/messages.d.ts +++ b/src/frontend/src/locales/ja/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/ko/messages.d.ts b/src/frontend/src/locales/ko/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/ko/messages.d.ts +++ b/src/frontend/src/locales/ko/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/lt/messages.d.ts b/src/frontend/src/locales/lt/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/lt/messages.d.ts +++ b/src/frontend/src/locales/lt/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/lv/messages.d.ts b/src/frontend/src/locales/lv/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/lv/messages.d.ts +++ b/src/frontend/src/locales/lv/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/nl/messages.d.ts b/src/frontend/src/locales/nl/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/nl/messages.d.ts +++ b/src/frontend/src/locales/nl/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/no/messages.d.ts b/src/frontend/src/locales/no/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/no/messages.d.ts +++ b/src/frontend/src/locales/no/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/pl/messages.d.ts b/src/frontend/src/locales/pl/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/pl/messages.d.ts +++ b/src/frontend/src/locales/pl/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.d.ts b/src/frontend/src/locales/pseudo-LOCALE/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/pseudo-LOCALE/messages.d.ts +++ b/src/frontend/src/locales/pseudo-LOCALE/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/pt/messages.d.ts b/src/frontend/src/locales/pt/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/pt/messages.d.ts +++ b/src/frontend/src/locales/pt/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/pt_BR/messages.d.ts b/src/frontend/src/locales/pt_BR/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/pt_BR/messages.d.ts +++ b/src/frontend/src/locales/pt_BR/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/ru/messages.d.ts b/src/frontend/src/locales/ru/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/ru/messages.d.ts +++ b/src/frontend/src/locales/ru/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/sk/messages.d.ts b/src/frontend/src/locales/sk/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/sk/messages.d.ts +++ b/src/frontend/src/locales/sk/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/sl/messages.d.ts b/src/frontend/src/locales/sl/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/sl/messages.d.ts +++ b/src/frontend/src/locales/sl/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/sr/messages.d.ts b/src/frontend/src/locales/sr/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/sr/messages.d.ts +++ b/src/frontend/src/locales/sr/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/sv/messages.d.ts b/src/frontend/src/locales/sv/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/sv/messages.d.ts +++ b/src/frontend/src/locales/sv/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/th/messages.d.ts b/src/frontend/src/locales/th/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/th/messages.d.ts +++ b/src/frontend/src/locales/th/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/tr/messages.d.ts b/src/frontend/src/locales/tr/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/tr/messages.d.ts +++ b/src/frontend/src/locales/tr/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/uk/messages.d.ts b/src/frontend/src/locales/uk/messages.d.ts index 6d6e13e2036e..421dc8abe171 100644 --- a/src/frontend/src/locales/uk/messages.d.ts +++ b/src/frontend/src/locales/uk/messages.d.ts @@ -1,3 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/vi/messages.d.ts b/src/frontend/src/locales/vi/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/vi/messages.d.ts +++ b/src/frontend/src/locales/vi/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/zh_Hans/messages.d.ts b/src/frontend/src/locales/zh_Hans/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/zh_Hans/messages.d.ts +++ b/src/frontend/src/locales/zh_Hans/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/locales/zh_Hant/messages.d.ts b/src/frontend/src/locales/zh_Hant/messages.d.ts index 1c1427cb3a10..421dc8abe171 100644 --- a/src/frontend/src/locales/zh_Hant/messages.d.ts +++ b/src/frontend/src/locales/zh_Hant/messages.d.ts @@ -1,4 +1,5 @@ import { Messages } from '@lingui/core'; - declare const messages: Messages; - export { messages }; - \ No newline at end of file + +declare const messages: Messages; + +export { messages }; diff --git a/src/frontend/src/pages/Auth/Login.tsx b/src/frontend/src/pages/Auth/Login.tsx index 9e9d0098ec36..6c37839bdd47 100644 --- a/src/frontend/src/pages/Auth/Login.tsx +++ b/src/frontend/src/pages/Auth/Login.tsx @@ -7,8 +7,8 @@ import { useLocation, useNavigate, useSearchParams } from 'react-router-dom'; import { useShallow } from 'zustand/react/shallow'; import { removeTraceId, setApiDefaults, setTraceId } from '../../App'; -import { AuthFormOptions } from '../../components/forms/AuthFormOptions'; import { AuthenticationForm } from '../../components/forms/AuthenticationForm'; +import { AuthFormOptions } from '../../components/forms/AuthFormOptions'; import { InstanceOptions } from '../../components/forms/InstanceOptions'; import { defaultHostKey, diff --git a/src/frontend/src/pages/Auth/MFASetup.tsx b/src/frontend/src/pages/Auth/MFASetup.tsx index 9a99e303129c..f2991b8e7e72 100644 --- a/src/frontend/src/pages/Auth/MFASetup.tsx +++ b/src/frontend/src/pages/Auth/MFASetup.tsx @@ -1,12 +1,11 @@ import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; -import { getTotpSecret, handleVerifyTotp } from '../../functions/auth'; -import { Wrapper } from './Layout'; - import { Button } from '@mantine/core'; import { useEffect, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; +import { getTotpSecret, handleVerifyTotp } from '../../functions/auth'; import { QrRegistrationForm } from '../Index/Settings/AccountSettings/QrRegistrationForm'; +import { Wrapper } from './Layout'; export default function MFASetup() { const navigate = useNavigate(); diff --git a/src/frontend/src/pages/Auth/Register.tsx b/src/frontend/src/pages/Auth/Register.tsx index 761fc8605ae0..a7bba085eff0 100644 --- a/src/frontend/src/pages/Auth/Register.tsx +++ b/src/frontend/src/pages/Auth/Register.tsx @@ -3,7 +3,6 @@ import { Trans } from '@lingui/react/macro'; import { Anchor, Text } from '@mantine/core'; import { useNavigate } from 'react-router-dom'; import { RegistrationForm } from '../../components/forms/AuthenticationForm'; -import {} from '../../functions/auth'; import { Wrapper } from './Layout'; export default function Register() { diff --git a/src/frontend/src/pages/ErrorPage.tsx b/src/frontend/src/pages/ErrorPage.tsx index b7a0aed8ba32..49da7240e66e 100644 --- a/src/frontend/src/pages/ErrorPage.tsx +++ b/src/frontend/src/pages/ErrorPage.tsx @@ -1,9 +1,8 @@ +import type { ErrorResponse } from '@lib/types/Auth'; import { t } from '@lingui/core/macro'; import { useDocumentTitle } from '@mantine/hooks'; import { useEffect, useState } from 'react'; import { useRouteError } from 'react-router-dom'; - -import type { ErrorResponse } from '@lib/types/Auth'; import GenericErrorPage from '../components/errors/GenericErrorPage'; export default function ErrorPage() { diff --git a/src/frontend/src/pages/Index/Scan.tsx b/src/frontend/src/pages/Index/Scan.tsx index e660574aa18a..07892c2274a5 100644 --- a/src/frontend/src/pages/Index/Scan.tsx +++ b/src/frontend/src/pages/Index/Scan.tsx @@ -1,3 +1,9 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelInformationDict } from '@lib/enums/ModelInformation'; +import type { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { notYetImplemented } from '@lib/functions/Notification'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -12,21 +18,14 @@ import { Text } from '@mantine/core'; import { randomId, useListState, useLocalStorage } from '@mantine/hooks'; +import { hideNotification, showNotification } from '@mantine/notifications'; import { IconAlertCircle, IconNumber, IconQuestionMark } from '@tabler/icons-react'; -import { useCallback, useEffect, useMemo, useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelInformationDict } from '@lib/enums/ModelInformation'; -import type { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import { notYetImplemented } from '@lib/functions/Notification'; -import { hideNotification, showNotification } from '@mantine/notifications'; import dayjs from 'dayjs'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { api } from '../../App'; import { BarcodeInput } from '../../components/barcodes/BarcodeInput'; import type { BarcodeScanItem } from '../../components/barcodes/BarcodeScanItem'; diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx index 16bd567bd513..9319d69f03ba 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx @@ -1,14 +1,13 @@ -import { t } from '@lingui/core/macro'; -import { Trans } from '@lingui/react/macro'; -import { Badge, Group, Stack, Table } from '@mantine/core'; -import { IconEdit, IconKey, IconUser } from '@tabler/icons-react'; -import { useMemo } from 'react'; - import { ActionButton } from '@lib/components/ActionButton'; import { StylishText } from '@lib/components/StylishText'; import { YesNoUndefinedButton } from '@lib/components/YesNoButton'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ApiFormFieldSet } from '@lib/types/Forms'; +import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; +import { Badge, Group, Stack, Table } from '@mantine/core'; +import { IconEdit, IconKey, IconUser } from '@tabler/icons-react'; +import { useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { useShallow } from 'zustand/react/shallow'; import { ActionDropdown } from '../../../../components/items/ActionDropdown'; diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx index ce09b68e442a..2a1f1d76f0ac 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx @@ -268,7 +268,7 @@ function RemoveWebauthnModal({ authenticators: [tokenId] } ) - .then((response) => { + .then((_response) => { showNotification({ title: t`WebAuthn Credential Removed`, message: t`WebAuthn credential removed successfully.`, @@ -519,7 +519,7 @@ function RegisterTOTPModal({ timeout: 30 * 1000 } ) - .then((response) => { + .then((_response) => { showNotification({ title: t`TOTP Registered`, message: t`TOTP token registered successfully.`, @@ -777,7 +777,7 @@ export default function MFASettings() { timeout: 30 * 1000 } ) - .then((response) => { + .then((_response) => { showNotification({ title: t`WebAuthn Registered`, message: t`WebAuthn credential registered successfully`, diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx index 3d7e13c4a293..51a2c235a68c 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx @@ -32,7 +32,7 @@ import { import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo, useState } from 'react'; import { useShallow } from 'zustand/react/shallow'; -import { ProviderLogin, authApi } from '../../../../functions/auth'; +import { authApi, ProviderLogin } from '../../../../functions/auth'; import { useServerApiState } from '../../../../states/ServerApiState'; import { useUserState } from '../../../../states/UserState'; import { ApiTokenTable } from '../../../../tables/settings/ApiTokenTable'; @@ -46,7 +46,7 @@ export function SecurityContent() { const user = useUserState(); const onError = useCallback( - (error: unknown, componentStack: string | undefined, eventId: string) => { + (error: unknown, _componentStack: string | undefined, _eventId: string) => { console.error(`ERR: Error rendering component: ${error}`); }, [] @@ -181,7 +181,7 @@ function EmailSection() { .then(() => { refetch(); }) - .catch((err) => { + .catch((_err) => { hideNotification('email-error'); showNotification({ diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx index 7e820974979c..9dd4b1524c99 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx @@ -1,3 +1,4 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -16,8 +17,6 @@ import { } from '@mantine/core'; import { IconRestore } from '@tabler/icons-react'; import { useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import { useShallow } from 'zustand/react/shallow'; import { ColorToggle } from '../../../../components/items/ColorToggle'; import { LanguageSelect } from '../../../../components/items/LanguageSelect'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx index 757073653748..51c1e5313c30 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx @@ -1,13 +1,12 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; import { t } from '@lingui/core/macro'; import { Divider, Stack } from '@mantine/core'; import { showNotification } from '@mantine/notifications'; import { IconReload } from '@tabler/icons-react'; import { useCallback, useMemo, useState } from 'react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; import { api } from '../../../../App'; import { FactCollection } from '../../../../components/settings/FactCollection'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx index 87634d8e2d87..1633e4e7eba7 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Accordion } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import { ConfigValueList } from '../../../../components/settings/ConfigValueList'; import { EmailTable } from '../../../../tables/settings/EmailTable'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx index e328251664ac..b0f99390e8da 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx @@ -6,8 +6,8 @@ import { type JSX, useMemo, useState } from 'react'; import { useShallow } from 'zustand/react/shallow'; import { type ExtendedAlertInfo, - ServerAlert, - getAlerts + getAlerts, + ServerAlert } from '../../../../components/nav/Alerts'; import { QuickAction } from '../../../../components/settings/QuickAction'; import { useServerApiState } from '../../../../states/ServerApiState'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx index 214f6c49d3b9..5d751afca570 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx @@ -1,3 +1,6 @@ +import { PluginPanelKey } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import type { PanelGroupType, PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; import { @@ -21,10 +24,6 @@ import { IconUsersGroup } from '@tabler/icons-react'; import { lazy, useMemo } from 'react'; - -import { PluginPanelKey } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import type { PanelGroupType, PanelType } from '@lib/types/Panel'; import PermissionDenied from '../../../../components/errors/PermissionDenied'; import PageTitle from '../../../../components/nav/PageTitle'; import { SettingsHeader } from '../../../../components/nav/SettingsHeader'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx index e0c3038816bc..7e98262bec6a 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx @@ -1,3 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { Accordion, @@ -12,10 +15,6 @@ import { import { IconInfoCircle, IconRefresh } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { useMemo } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; import { api } from '../../../../App'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { MachineListTable } from '../../../../tables/machine/MachineListTable'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx index f43758fb0a56..847dec332fe9 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Accordion } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import ParameterTemplateTable from '../../../../tables/general/ParameterTemplateTable'; import SelectionListTable from '../../../../tables/part/SelectionListTable'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx index c5c8db48ad33..8429c9a8babe 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx @@ -1,10 +1,9 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { Accordion, Alert, Stack } from '@mantine/core'; import { IconInfoCircle } from '@tabler/icons-react'; import { lazy } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import { useShallow } from 'zustand/react/shallow'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { Loadable } from '../../../../functions/loading'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx index 93016946275a..ca00cfc6bcb5 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx @@ -1,10 +1,9 @@ -import { t } from '@lingui/core/macro'; -import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core'; -import { lazy } from 'react'; - import { StylishText } from '@lib/components/StylishText'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { t } from '@lingui/core/macro'; +import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core'; import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react'; +import { lazy } from 'react'; import { errorCodeLink } from '../../../../components/nav/Alerts'; import { FactCollection } from '../../../../components/settings/FactCollection'; import { Loadable } from '../../../../functions/loading'; diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx index 19be98e4a110..d795d578ca8c 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx @@ -1,11 +1,10 @@ -import { t } from '@lingui/core/macro'; -import { Accordion, Stack } from '@mantine/core'; -import { useMemo } from 'react'; - import { StylishText } from '@lib/components/StylishText'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; +import { t } from '@lingui/core/macro'; +import { Accordion, Stack } from '@mantine/core'; +import { useMemo } from 'react'; import { BooleanColumn } from '../../../../tables/ColumnRenderers'; import { InvenTreeTable } from '../../../../tables/InvenTreeTable'; import CustomUnitsTable from '../../../../tables/settings/CustomUnitsTable'; @@ -34,7 +33,7 @@ function AllUnitTable() { enableColumnSwitching: false, dataFormatter: (data: any) => { const units = data.available_units ?? {}; - return Object.entries(units).map(([key, values]: [string, any]) => { + return Object.entries(units).map(([_key, values]: [string, any]) => { return { name: values.name, is_alias: values.is_alias, diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx index 92b6c3e00d98..efb05251ce67 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Accordion } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { ApiTokenTable } from '../../../../tables/settings/ApiTokenTable'; import { GroupTable } from '../../../../tables/settings/GroupTable'; diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx index 0078520bd943..d4edc5d3eb59 100644 --- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx @@ -1,3 +1,5 @@ +import { PluginPanelKey } from '@lib/enums/ModelType'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Skeleton, Stack } from '@mantine/core'; import { @@ -17,9 +19,6 @@ import { IconTruckDelivery } from '@tabler/icons-react'; import { useMemo } from 'react'; - -import { PluginPanelKey } from '@lib/enums/ModelType'; -import type { PanelType } from '@lib/types/Panel'; import { useShallow } from 'zustand/react/shallow'; import PermissionDenied from '../../../components/errors/PermissionDenied'; import PageTitle from '../../../components/nav/PageTitle'; diff --git a/src/frontend/src/pages/Index/Settings/UserSettings.tsx b/src/frontend/src/pages/Index/Settings/UserSettings.tsx index ae71430928be..4e6d026eb222 100644 --- a/src/frontend/src/pages/Index/Settings/UserSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/UserSettings.tsx @@ -1,3 +1,5 @@ +import { PluginPanelKey } from '@lib/enums/ModelType'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Skeleton, Stack } from '@mantine/core'; import { @@ -10,9 +12,6 @@ import { IconUserCircle } from '@tabler/icons-react'; import { useMemo } from 'react'; - -import { PluginPanelKey } from '@lib/enums/ModelType'; -import type { PanelType } from '@lib/types/Panel'; import { useShallow } from 'zustand/react/shallow'; import PageTitle from '../../../components/nav/PageTitle'; import { SettingsHeader } from '../../../components/nav/SettingsHeader'; diff --git a/src/frontend/src/pages/Notifications.tsx b/src/frontend/src/pages/Notifications.tsx index a5e1dec08020..1d1222eddac0 100644 --- a/src/frontend/src/pages/Notifications.tsx +++ b/src/frontend/src/pages/Notifications.tsx @@ -1,3 +1,7 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; import { @@ -9,11 +13,6 @@ import { IconTrash } from '@tabler/icons-react'; import { useCallback, useMemo } from 'react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; import { PageDetail } from '../components/nav/PageDetail'; import { PanelGroup } from '../components/panels/PanelGroup'; import { useApi } from '../contexts/ApiContext'; @@ -62,7 +61,7 @@ export default function NotificationsPage() { .patch(url, { read: true }) - .then((response) => { + .then((_response) => { unreadTable.refreshTable(); }); } @@ -100,7 +99,7 @@ export default function NotificationsPage() { .patch(url, { read: false }) - .then((response) => { + .then((_response) => { readTable.refreshTable(); }); } @@ -112,7 +111,7 @@ export default function NotificationsPage() { onClick: () => { api .delete(apiUrl(ApiEndpoints.notifications_list, record.pk)) - .then((response) => { + .then((_response) => { readTable.refreshTable(); }); } diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 7460634ccbf9..41146d10bdec 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -1,3 +1,10 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { ApiFormFieldSet } from '@lib/types/Forms'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Alert, Grid, Skeleton, Stack, Text } from '@mantine/core'; import { @@ -15,14 +22,6 @@ import { } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { ApiFormFieldSet } from '@lib/types/Forms'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; diff --git a/src/frontend/src/pages/build/BuildIndex.tsx b/src/frontend/src/pages/build/BuildIndex.tsx index f52441923dd4..10db5108fa4a 100644 --- a/src/frontend/src/pages/build/BuildIndex.tsx +++ b/src/frontend/src/pages/build/BuildIndex.tsx @@ -1,5 +1,11 @@ +import type { EventContentArg } from '@fullcalendar/core'; +import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import type { TableFilter } from '@lib/types/Filters'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; +import { useLocalStorage } from '@mantine/hooks'; import { IconCalendar, IconListDetails, @@ -7,13 +13,6 @@ import { IconTools } from '@tabler/icons-react'; import { useCallback, useMemo } from 'react'; - -import type { EventContentArg } from '@fullcalendar/core'; -import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import type { TableFilter } from '@lib/types/Filters'; -import type { PanelType } from '@lib/types/Panel'; -import { useLocalStorage } from '@mantine/hooks'; import OrderCalendar from '../../components/calendar/OrderCalendar'; import OrderCalendarToolTip from '../../components/calendar/OrderCalendarToolTip'; import PermissionDenied from '../../components/errors/PermissionDenied'; diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index b23b8c19fd72..82a587894cd1 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -1,3 +1,8 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { @@ -13,12 +18,6 @@ import { } from '@tabler/icons-react'; import { type ReactNode, useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; import { diff --git a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx index 66e1a1a347d6..1102e155337c 100644 --- a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx +++ b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx @@ -1,3 +1,9 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { @@ -7,13 +13,6 @@ import { } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import { type DetailsField, diff --git a/src/frontend/src/pages/company/SupplierPartDetail.tsx b/src/frontend/src/pages/company/SupplierPartDetail.tsx index c61f4eaf3267..b411e6ea1637 100644 --- a/src/frontend/src/pages/company/SupplierPartDetail.tsx +++ b/src/frontend/src/pages/company/SupplierPartDetail.tsx @@ -1,3 +1,10 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { formatDecimal } from '@lib/functions/Formatting'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { @@ -8,14 +15,6 @@ import { } from '@tabler/icons-react'; import { type ReactNode, useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { formatDecimal } from '@lib/functions/Formatting'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import { type DetailsField, diff --git a/src/frontend/src/pages/core/CoreIndex.tsx b/src/frontend/src/pages/core/CoreIndex.tsx index c5888494614a..1603aa646006 100644 --- a/src/frontend/src/pages/core/CoreIndex.tsx +++ b/src/frontend/src/pages/core/CoreIndex.tsx @@ -1,9 +1,8 @@ +import { PluginPanelKey } from '@lib/enums/ModelType'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; import { IconUser, IconUsersGroup } from '@tabler/icons-react'; import { useMemo } from 'react'; - -import { PluginPanelKey } from '@lib/enums/ModelType'; import PermissionDenied from '../../components/errors/PermissionDenied'; import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup } from '../../components/panels/PanelGroup'; diff --git a/src/frontend/src/pages/core/GroupDetail.tsx b/src/frontend/src/pages/core/GroupDetail.tsx index 4126e3f68c0f..033dea939f1b 100644 --- a/src/frontend/src/pages/core/GroupDetail.tsx +++ b/src/frontend/src/pages/core/GroupDetail.tsx @@ -12,12 +12,10 @@ import { DetailsTable } from '../../components/details/Details'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import {} from '../../components/items/ActionDropdown'; import { RoleTable, type RuleSet } from '../../components/items/RoleTable'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup } from '../../components/panels/PanelGroup'; -import {} from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; /** diff --git a/src/frontend/src/pages/core/UserDetail.tsx b/src/frontend/src/pages/core/UserDetail.tsx index 87b419221937..2dfcbbf843d8 100644 --- a/src/frontend/src/pages/core/UserDetail.tsx +++ b/src/frontend/src/pages/core/UserDetail.tsx @@ -11,11 +11,9 @@ import { DetailsTable } from '../../components/details/Details'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import {} from '../../components/items/ActionDropdown'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup } from '../../components/panels/PanelGroup'; -import {} from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/pages/part/CategoryDetail.tsx b/src/frontend/src/pages/part/CategoryDetail.tsx index 2f4dcc6e531d..acdaa4807358 100644 --- a/src/frontend/src/pages/part/CategoryDetail.tsx +++ b/src/frontend/src/pages/part/CategoryDetail.tsx @@ -1,5 +1,11 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Group, LoadingOverlay, Skeleton, Stack } from '@mantine/core'; +import { useLocalStorage } from '@mantine/hooks'; import { IconCategory, IconInfoCircle, @@ -11,13 +17,6 @@ import { } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { PanelType } from '@lib/types/Panel'; -import { useLocalStorage } from '@mantine/hooks'; import AdminButton from '../../components/buttons/AdminButton'; import StarredToggleButton from '../../components/buttons/StarredToggleButton'; import { @@ -58,7 +57,7 @@ import { StockItemTable } from '../../tables/stock/StockItemTable'; export default function CategoryDetail() { const { id: _id } = useParams(); const id = useMemo( - () => (!Number.isNaN(Number.parseInt(_id || '')) ? _id : undefined), + () => (!Number.isNaN(Number.parseInt(_id || '', 10)) ? _id : undefined), [_id] ); diff --git a/src/frontend/src/pages/part/PartAllocationPanel.tsx b/src/frontend/src/pages/part/PartAllocationPanel.tsx index 2574fa9f4e0e..6e9e4409effd 100644 --- a/src/frontend/src/pages/part/PartAllocationPanel.tsx +++ b/src/frontend/src/pages/part/PartAllocationPanel.tsx @@ -1,8 +1,7 @@ -import { t } from '@lingui/core/macro'; -import { Accordion } from '@mantine/core'; - import { StylishText } from '@lib/components/StylishText'; import { UserRoles } from '@lib/enums/Roles'; +import { t } from '@lingui/core/macro'; +import { Accordion } from '@mantine/core'; import { useUserState } from '../../states/UserState'; import PartBuildAllocationsTable from '../../tables/part/PartBuildAllocationsTable'; import PartSalesAllocationsTable from '../../tables/part/PartSalesAllocationsTable'; diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index c53588a4a15c..d7801aeed241 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -1,3 +1,10 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { StockOperationProps } from '@lib/types/Forms'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -40,14 +47,6 @@ import { useQuery } from '@tanstack/react-query'; import { type ReactNode, useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import Select from 'react-select'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { StockOperationProps } from '@lib/types/Forms'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; import StarredToggleButton from '../../components/buttons/StarredToggleButton'; @@ -104,22 +103,16 @@ import { ReturnOrderTable } from '../../tables/sales/ReturnOrderTable'; import { SalesOrderTable } from '../../tables/sales/SalesOrderTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; import { TransferOrderTable } from '../../tables/stock/TransferOrderTable'; +import { BomActions } from './bom/BomActions'; import PartAllocationPanel from './PartAllocationPanel'; import PartPricingPanel from './PartPricingPanel'; import PartStockHistoryDetail from './PartStockHistoryDetail'; import PartSupplierDetail from './PartSupplierDetail'; -import { BomActions } from './bom/BomActions'; /** * Render a part revision selector component */ -function RevisionSelector({ - part, - options -}: { - part: any; - options: any[]; -}) { +function RevisionSelector({ part, options }: { part: any; options: any[] }) { const navigate = useNavigate(); return ( diff --git a/src/frontend/src/pages/part/PartPricingPanel.tsx b/src/frontend/src/pages/part/PartPricingPanel.tsx index 8289d8566226..5c4892fb4b7f 100644 --- a/src/frontend/src/pages/part/PartPricingPanel.tsx +++ b/src/frontend/src/pages/part/PartPricingPanel.tsx @@ -1,9 +1,8 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { UserRoles } from '@lib/enums/Roles'; import { t } from '@lingui/core/macro'; import { Accordion, Alert, LoadingOverlay, Stack, Text } from '@mantine/core'; import { useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { UserRoles } from '@lib/enums/Roles'; import { useInstance } from '../../hooks/UseInstance'; import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/pages/part/PartSupplierDetail.tsx b/src/frontend/src/pages/part/PartSupplierDetail.tsx index beacd73f9e2d..c8ac98907442 100644 --- a/src/frontend/src/pages/part/PartSupplierDetail.tsx +++ b/src/frontend/src/pages/part/PartSupplierDetail.tsx @@ -1,7 +1,6 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Accordion } from '@mantine/core'; - -import { StylishText } from '@lib/components/StylishText'; import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable'; import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; diff --git a/src/frontend/src/pages/part/bom/BomCompare.tsx b/src/frontend/src/pages/part/bom/BomCompare.tsx index be69f0968b8b..c9f8307265c1 100644 --- a/src/frontend/src/pages/part/bom/BomCompare.tsx +++ b/src/frontend/src/pages/part/bom/BomCompare.tsx @@ -1,4 +1,4 @@ -import { ApiEndpoints, ModelType, StylishText, apiUrl } from '@lib/index'; +import { ApiEndpoints, apiUrl, ModelType, StylishText } from '@lib/index'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -55,7 +55,7 @@ type BomDisplayMode = 'all' | 'different' | 'common'; function getBomDeltas(primary: any, secondary: any): string[] { const deltas: string[] = []; - Object.entries(DELTA_FIELDS).forEach(([field, label]) => { + Object.entries(DELTA_FIELDS).forEach(([field, _label]) => { if (primary?.[field] != secondary?.[field]) { deltas.push(field); } @@ -71,7 +71,7 @@ function BomTableRow({ }>) { const partMatch = !!item.primary && !!item.secondary; - const quantityMatch = + const _quantityMatch = partMatch && item.primary.quantity == item.secondary.quantity; const deltas: any[] = useMemo(() => { @@ -164,7 +164,7 @@ function BomTableRow({ {rowIcon} {partMatch && deltas.length > 0 ? ( - {deltas.map((delta, index) => ( + {deltas.map((delta, _index) => ( {delta.label} {delta.primaryValue ?? '-'} @@ -228,7 +228,7 @@ export function BomCompareDrawer({ }) { const [displayMode, setDisplayMode] = useState('all'); - const [searchParam, setSearchParams] = useSearchParams(); + const [_searchParam, setSearchParams] = useSearchParams(); // Fetch entire BOM for the part const primaryBom = useQuery({ diff --git a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx index 9bc6ed2e0be3..7464b8045eac 100644 --- a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx @@ -1,3 +1,8 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; +import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { BarChart, DonutChart } from '@mantine/charts'; import { @@ -9,12 +14,6 @@ import { Text } from '@mantine/core'; import { type ReactNode, useMemo, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; -import type { TableColumn } from '@lib/types/Tables'; import { CHART_COLORS } from '../../../components/charts/colors'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; import { formatDecimal, formatPriceRange } from '../../../defaults/formatters'; diff --git a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx index 8151a55e6280..cf1225e18c88 100644 --- a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx @@ -1,8 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { BarChart } from '@mantine/charts'; -import { SimpleGrid } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -15,6 +10,10 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { BarChart } from '@mantine/charts'; +import { SimpleGrid } from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; import { formatCurrency } from '../../../defaults/formatters'; import { diff --git a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx index c61603a121b9..48661f2b4eca 100644 --- a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx @@ -1,3 +1,6 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import type { ApiFormFieldSet } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; import { BarChart } from '@mantine/charts'; import { @@ -23,10 +26,6 @@ import { import type { UseQueryResult } from '@tanstack/react-query'; import { DataTable } from 'mantine-datatable'; import { type ReactNode, useCallback, useMemo } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import type { ApiFormFieldSet } from '@lib/types/Forms'; import { api } from '../../../App'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; import { diff --git a/src/frontend/src/pages/part/pricing/PricingPanel.tsx b/src/frontend/src/pages/part/pricing/PricingPanel.tsx index ed634e495c60..22704a801b0c 100644 --- a/src/frontend/src/pages/part/pricing/PricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PricingPanel.tsx @@ -1,3 +1,4 @@ +import { StylishText } from '@lib/components/StylishText'; import { t } from '@lingui/core/macro'; import { Accordion, @@ -13,8 +14,6 @@ import { } from '@mantine/core'; import { IconAlertCircle, IconExclamationCircle } from '@tabler/icons-react'; import type { ReactNode } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; import type { panelOptions } from '../PartPricingPanel'; function AccordionControl(props: AccordionControlProps) { diff --git a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx index 60b3f6fb3ac7..74820c879978 100644 --- a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx @@ -1,12 +1,11 @@ -import { t } from '@lingui/core/macro'; -import { BarChart } from '@mantine/charts'; -import { Group, SimpleGrid, Text } from '@mantine/core'; -import { type ReactNode, useCallback, useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { BarChart } from '@mantine/charts'; +import { Group, SimpleGrid, Text } from '@mantine/core'; +import { type ReactNode, useCallback, useMemo } from 'react'; import { formatCurrency, formatDate } from '../../../defaults/formatters'; import { InvenTreeTable } from '../../../tables/InvenTreeTable'; import { NoPricingData } from './PricingPanel'; diff --git a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx index cdd6c4b22460..76c8296f443a 100644 --- a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx +++ b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx @@ -1,12 +1,11 @@ -import { t } from '@lingui/core/macro'; -import { BarChart } from '@mantine/charts'; -import { SimpleGrid } from '@mantine/core'; -import { type ReactNode, useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { BarChart } from '@mantine/charts'; +import { SimpleGrid } from '@mantine/core'; +import { type ReactNode, useMemo } from 'react'; import { formatCurrency } from '../../../defaults/formatters'; import { DateColumn } from '../../../tables/ColumnRenderers'; import { InvenTreeTable } from '../../../tables/InvenTreeTable'; diff --git a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx index 48982989d523..e7251f8a497b 100644 --- a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx @@ -1,17 +1,16 @@ -import { t } from '@lingui/core/macro'; -import { BarChart } from '@mantine/charts'; -import { SimpleGrid } from '@mantine/core'; -import { useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { BarChart } from '@mantine/charts'; +import { SimpleGrid } from '@mantine/core'; +import { useMemo } from 'react'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; import { InvenTreeTable } from '../../../tables/InvenTreeTable'; import { - SupplierPriceBreakColumns, - calculateSupplierPartUnitPrice + calculateSupplierPartUnitPrice, + SupplierPriceBreakColumns } from '../../../tables/purchasing/SupplierPriceBreakTable'; import { NoPricingData } from './PricingPanel'; diff --git a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx index 6aa8911d752e..24d53e345f69 100644 --- a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx @@ -1,13 +1,12 @@ -import { t } from '@lingui/core/macro'; -import { BarChart } from '@mantine/charts'; -import { SimpleGrid, Stack } from '@mantine/core'; -import { type ReactNode, useMemo } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { BarChart } from '@mantine/charts'; +import { SimpleGrid, Stack } from '@mantine/core'; +import { type ReactNode, useMemo } from 'react'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; import { formatCurrency } from '../../../defaults/formatters'; import { DateColumn, PartColumn } from '../../../tables/ColumnRenderers'; diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx index db4fa6107fbf..b5257e5c7b3c 100644 --- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx +++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx @@ -1,15 +1,14 @@ -import { t } from '@lingui/core/macro'; -import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; -import { IconInfoCircle, IconList, IconPackages } from '@tabler/icons-react'; -import { type ReactNode, useMemo } from 'react'; -import { useParams } from 'react-router-dom'; - import { StylishText } from '@lib/components/StylishText'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import type { PanelType } from '@lib/types/Panel'; +import { t } from '@lingui/core/macro'; +import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; +import { IconInfoCircle, IconList, IconPackages } from '@tabler/icons-react'; +import { type ReactNode, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; diff --git a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx index bdaa271c0e2d..c7073bf94cd1 100644 --- a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx +++ b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx @@ -1,5 +1,10 @@ +import type { EventContentArg } from '@fullcalendar/core'; +import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import type { TableFilter } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; +import { useLocalStorage } from '@mantine/hooks'; import { IconBuildingFactory2, IconBuildingStore, @@ -11,12 +16,6 @@ import { IconTable } from '@tabler/icons-react'; import { useCallback, useMemo } from 'react'; - -import type { EventContentArg } from '@fullcalendar/core'; -import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import type { TableFilter } from '@lib/index'; -import { useLocalStorage } from '@mantine/hooks'; import OrderCalendar from '../../components/calendar/OrderCalendar'; import OrderCalendarToolTip from '../../components/calendar/OrderCalendarToolTip'; import PermissionDenied from '../../components/errors/PermissionDenied'; diff --git a/src/frontend/src/pages/sales/RepairOrderDetail.tsx b/src/frontend/src/pages/sales/RepairOrderDetail.tsx index f51bb93f9059..6dc63b6b9bed 100644 --- a/src/frontend/src/pages/sales/RepairOrderDetail.tsx +++ b/src/frontend/src/pages/sales/RepairOrderDetail.tsx @@ -1,15 +1,14 @@ -import { t } from '@lingui/core/macro'; -import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; -import { IconInfoCircle, IconList } from '@tabler/icons-react'; -import { type ReactNode, useMemo } from 'react'; -import { useParams } from 'react-router-dom'; - import { StylishText } from '@lib/components/StylishText'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import type { PanelType } from '@lib/types/Panel'; +import { t } from '@lingui/core/macro'; +import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; +import { IconInfoCircle, IconList } from '@tabler/icons-react'; +import { type ReactNode, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; @@ -74,7 +73,9 @@ export default function RepairOrderDetail() { }, [order, roStatus]); const lineItemsEditable: boolean = useMemo(() => { - return orderOpen || globalSettings.isSet('RETURNORDER_EDIT_COMPLETED_ORDERS'); + return ( + orderOpen || globalSettings.isSet('RETURNORDER_EDIT_COMPLETED_ORDERS') + ); }, [orderOpen, globalSettings]); const detailsPanel = useMemo(() => { @@ -173,10 +174,7 @@ export default function RepairOrderDetail() { label: t`Line Items`, icon: , content: ( - + {t`Line Items`} diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx index e7804454b09f..036d0bbfb8ae 100644 --- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx +++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx @@ -1,15 +1,14 @@ -import { t } from '@lingui/core/macro'; -import { Accordion, Grid, Skeleton, Stack, Text } from '@mantine/core'; -import { IconInfoCircle, IconList } from '@tabler/icons-react'; -import { type ReactNode, useMemo } from 'react'; -import { useParams } from 'react-router-dom'; - import { StylishText } from '@lib/components/StylishText'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import type { PanelType } from '@lib/types/Panel'; +import { t } from '@lingui/core/macro'; +import { Accordion, Grid, Skeleton, Stack, Text } from '@mantine/core'; +import { IconInfoCircle, IconList } from '@tabler/icons-react'; +import { type ReactNode, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; diff --git a/src/frontend/src/pages/sales/SalesIndex.tsx b/src/frontend/src/pages/sales/SalesIndex.tsx index a63f1ef8420c..9d422a3c2e17 100644 --- a/src/frontend/src/pages/sales/SalesIndex.tsx +++ b/src/frontend/src/pages/sales/SalesIndex.tsx @@ -1,5 +1,10 @@ +import type { EventContentArg } from '@fullcalendar/core'; +import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import type { TableFilter } from '@lib/index'; import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; +import { useLocalStorage } from '@mantine/hooks'; import { IconBuildingStore, IconCalendar, @@ -11,12 +16,6 @@ import { IconTruckReturn } from '@tabler/icons-react'; import { useCallback, useMemo } from 'react'; - -import type { EventContentArg } from '@fullcalendar/core'; -import { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import type { TableFilter } from '@lib/index'; -import { useLocalStorage } from '@mantine/hooks'; import OrderCalendar from '../../components/calendar/OrderCalendar'; import OrderCalendarToolTip from '../../components/calendar/OrderCalendarToolTip'; import PermissionDenied from '../../components/errors/PermissionDenied'; @@ -26,11 +25,11 @@ import SegmentedControlPanel from '../../components/panels/SegmentedControlPanel import { useUserState } from '../../states/UserState'; import { CompanyTable } from '../../tables/company/CompanyTable'; import ParametricCompanyTable from '../../tables/company/ParametricCompanyTable'; -import ReturnOrderParametricTable from '../../tables/sales/ReturnOrderParametricTable'; -import { ReturnOrderTable } from '../../tables/sales/ReturnOrderTable'; import RepairOrderFilters from '../../tables/sales/RepairOrderFilters'; import RepairOrderParametricTable from '../../tables/sales/RepairOrderParametricTable'; import { RepairOrderTable } from '../../tables/sales/RepairOrderTable'; +import ReturnOrderParametricTable from '../../tables/sales/ReturnOrderParametricTable'; +import { ReturnOrderTable } from '../../tables/sales/ReturnOrderTable'; import SalesOrderFilters from '../../tables/sales/SalesOrderFilters'; import SalesOrderParametricTable from '../../tables/sales/SalesOrderParametricTable'; import SalesOrderShipmentTable from '../../tables/sales/SalesOrderShipmentTable'; diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index d0da141e87e5..a39eb01c1dc7 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -1,3 +1,9 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Accordion, Grid, Skeleton, Stack, Text } from '@mantine/core'; import { @@ -9,13 +15,6 @@ import { } from '@tabler/icons-react'; import { type ReactNode, useMemo } from 'react'; import { useParams } from 'react-router-dom'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; diff --git a/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx index e5065e726a3b..ea574187e9ee 100644 --- a/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx @@ -1,3 +1,8 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { getDetailUrl } from '@lib/functions/Navigation'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Grid, Skeleton, Stack, Text } from '@mantine/core'; import { @@ -8,12 +13,6 @@ import { } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import type { PanelType } from '@lib/types/Panel'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; @@ -58,7 +57,7 @@ export default function SalesOrderShipmentDetail() { const user = useUserState(); const navigate = useNavigate(); - const userId = useMemo(() => user.userId(), [user]); + const _userId = useMemo(() => user.userId(), [user]); const { instance: shipment, @@ -219,30 +218,28 @@ export default function SalesOrderShipmentDetail() { ]; return ( - <> - - - - - - - - - - - - + + + + + + + + + + + ); }, [shipment, shipmentQuery, customer, customerQuery]); diff --git a/src/frontend/src/pages/stock/LocationDetail.tsx b/src/frontend/src/pages/stock/LocationDetail.tsx index 5a3f0e50c711..dbe6e4e63e00 100644 --- a/src/frontend/src/pages/stock/LocationDetail.tsx +++ b/src/frontend/src/pages/stock/LocationDetail.tsx @@ -50,8 +50,10 @@ import { } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions'; -import { useUserSettingsState } from '../../states/SettingsStates'; -import { useGlobalSettingsState } from '../../states/SettingsStates'; +import { + useGlobalSettingsState, + useUserSettingsState +} from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; import { PartListTable } from '../../tables/part/PartTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; @@ -64,7 +66,7 @@ export default function Stock() { const { id: _id } = useParams(); const id = useMemo( - () => (!Number.isNaN(Number.parseInt(_id || '')) ? _id : undefined), + () => (!Number.isNaN(Number.parseInt(_id || '', 10)) ? _id : undefined), [_id] ); @@ -359,7 +361,7 @@ export default function Stock() { const scanInStockItem = useBarcodeScanDialog({ title: t`Scan Stock Item`, modelType: ModelType.stockitem, - callback: async (barcode, response) => { + callback: async (_barcode, response) => { const item = response.stockitem.instance; // Scan the stock item into the current location @@ -390,7 +392,7 @@ export default function Stock() { const scanInStockLocation = useBarcodeScanDialog({ title: t`Scan Stock Location`, modelType: ModelType.stocklocation, - callback: async (barcode, response) => { + callback: async (_barcode, response) => { const pk = response.stocklocation.pk; // Set the parent location diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index a8e2ed47b1e0..48b25a640265 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -1,3 +1,12 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { getDetailUrl, getOverviewUrl } from '@lib/functions/Navigation'; +import type { ApiFormFieldSet, StockOperationProps } from '@lib/types/Forms'; +import type { PanelType } from '@lib/types/Panel'; import { t } from '@lingui/core/macro'; import { Accordion, @@ -10,6 +19,7 @@ import { Text, Tooltip } from '@mantine/core'; +import { notifications } from '@mantine/notifications'; import { IconArrowLeft, IconArrowRight, @@ -27,17 +37,6 @@ import { import { useQuery } from '@tanstack/react-query'; import { type ReactNode, useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { getDetailUrl, getOverviewUrl } from '@lib/functions/Navigation'; -import type { ApiFormFieldSet, StockOperationProps } from '@lib/types/Forms'; -import type { PanelType } from '@lib/types/Panel'; -import { notifications } from '@mantine/notifications'; import { useBarcodeScanDialog } from '../../components/barcodes/BarcodeScanDialog'; import AdminButton from '../../components/buttons/AdminButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; @@ -334,7 +333,7 @@ export default function StockDetail() { label: t`Parent Item`, model: ModelType.stockitem, hidden: !stockitem.parent, - model_formatter: (model: any) => { + model_formatter: (_model: any) => { return t`Parent stock item`; } }, @@ -855,7 +854,7 @@ export default function StockDetail() { const scanIntoLocation = useBarcodeScanDialog({ title: t`Scan Into Location`, modelType: ModelType.stocklocation, - callback: async (barcode, response) => { + callback: async (_barcode, response) => { const pk = response.stocklocation.pk; return api diff --git a/src/frontend/src/pages/stock/TransferOrderDetail.tsx b/src/frontend/src/pages/stock/TransferOrderDetail.tsx index 5d06fa2732ef..d76b9962020d 100644 --- a/src/frontend/src/pages/stock/TransferOrderDetail.tsx +++ b/src/frontend/src/pages/stock/TransferOrderDetail.tsx @@ -1,18 +1,17 @@ -import { t } from '@lingui/core/macro'; -import { Grid, Skeleton, Stack } from '@mantine/core'; -import { type ReactNode, useMemo } from 'react'; -import { useParams } from 'react-router-dom'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; -import { type PanelType, apiUrl } from '@lib/index'; +import { apiUrl, type PanelType } from '@lib/index'; +import { t } from '@lingui/core/macro'; +import { Grid, Skeleton, Stack } from '@mantine/core'; import { IconBookmark, IconInfoCircle, IconList, IconListCheck } from '@tabler/icons-react'; +import { type ReactNode, useMemo } from 'react'; +import { useParams } from 'react-router-dom'; import AdminButton from '../../components/buttons/AdminButton'; import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; diff --git a/src/frontend/src/states/GlobalStatusState.tsx b/src/frontend/src/states/GlobalStatusState.tsx index 96ea847c8b34..3cd5678f8238 100644 --- a/src/frontend/src/states/GlobalStatusState.tsx +++ b/src/frontend/src/states/GlobalStatusState.tsx @@ -1,9 +1,8 @@ -import { create } from 'zustand'; -import { createJSONStorage, persist } from 'zustand/middleware'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; +import { create } from 'zustand'; +import { createJSONStorage, persist } from 'zustand/middleware'; import { api } from '../App'; import type { StatusCodeListInterface } from '../components/render/StatusRenderer'; import { statusCodeList } from '../defaults/backendMappings'; diff --git a/src/frontend/src/states/IconState.tsx b/src/frontend/src/states/IconState.tsx index 8ff8243c03de..16f92293ddc4 100644 --- a/src/frontend/src/states/IconState.tsx +++ b/src/frontend/src/states/IconState.tsx @@ -1,9 +1,8 @@ -import { create } from 'zustand'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { hideNotification, showNotification } from '@mantine/notifications'; +import { create } from 'zustand'; import { api } from '../App'; import { generateUrl } from '../functions/urls'; diff --git a/src/frontend/src/states/LocalState.tsx b/src/frontend/src/states/LocalState.tsx index f5c09b075156..c6f191c95fce 100644 --- a/src/frontend/src/states/LocalState.tsx +++ b/src/frontend/src/states/LocalState.tsx @@ -1,10 +1,9 @@ -import { create } from 'zustand'; -import { persist } from 'zustand/middleware'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import type { UserTheme } from '@lib/types/Core'; import type { HostList } from '@lib/types/Server'; +import { create } from 'zustand'; +import { persist } from 'zustand/middleware'; import { api } from '../App'; import { useUserState } from './UserState'; diff --git a/src/frontend/src/states/ServerApiState.tsx b/src/frontend/src/states/ServerApiState.tsx index 9a3a313981f7..6ef508e95861 100644 --- a/src/frontend/src/states/ServerApiState.tsx +++ b/src/frontend/src/states/ServerApiState.tsx @@ -1,9 +1,8 @@ -import { create } from 'zustand'; -import { createJSONStorage, persist } from 'zustand/middleware'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import type { AuthConfig, AuthContext } from '@lib/types/Auth'; +import { create } from 'zustand'; +import { createJSONStorage, persist } from 'zustand/middleware'; import { api } from '../App'; import { emptyServerAPI } from '../defaults/defaults'; import type { ServerAPIProps } from './states'; diff --git a/src/frontend/src/states/SettingsStates.tsx b/src/frontend/src/states/SettingsStates.tsx index 4eeecb3053ec..6a9ce1ba6d19 100644 --- a/src/frontend/src/states/SettingsStates.tsx +++ b/src/frontend/src/states/SettingsStates.tsx @@ -1,7 +1,6 @@ /** * State management for remote (server side) settings */ -import { create, createStore } from 'zustand'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; @@ -12,6 +11,7 @@ import type { SettingsLookup, SettingsStateProps } from '@lib/types/Settings'; +import { create, createStore } from 'zustand'; import { api } from '../App'; import { useUserState } from './UserState'; diff --git a/src/frontend/src/states/UserState.tsx b/src/frontend/src/states/UserState.tsx index f6e309861ac7..abcd75cd4094 100644 --- a/src/frontend/src/states/UserState.tsx +++ b/src/frontend/src/states/UserState.tsx @@ -1,10 +1,9 @@ -import { create } from 'zustand'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ModelType } from '@lib/enums/ModelType'; import { UserPermissions, type UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import type { UserProps, UserStateProps } from '@lib/types/User'; +import { create } from 'zustand'; import { api, setApiDefaults } from '../App'; import { clearCsrfCookie } from '../functions/auth'; diff --git a/src/frontend/src/styles/overrides.css b/src/frontend/src/styles/overrides.css index b3ae41bcfb6a..07bc888debc3 100644 --- a/src/frontend/src/styles/overrides.css +++ b/src/frontend/src/styles/overrides.css @@ -1,9 +1,9 @@ /* mantine-datatable overrides */ .mantine-datatable-pointer-cursor, .mantine-datatable-context-menu-cursor { - cursor: pointer; + cursor: pointer; } .mantine-datatable-resizable-columns { - table-layout: auto !important; + table-layout: auto; } diff --git a/src/frontend/src/tables/ColumnRenderers.tsx b/src/frontend/src/tables/ColumnRenderers.tsx index f3c61e89905b..a61ade537174 100644 --- a/src/frontend/src/tables/ColumnRenderers.tsx +++ b/src/frontend/src/tables/ColumnRenderers.tsx @@ -1,6 +1,13 @@ /** * Common rendering functions for table column data. */ + +import { ProgressBar } from '@lib/components/ProgressBar'; +import { YesNoButton } from '@lib/components/YesNoButton'; +import type { ModelType } from '@lib/enums/ModelType'; +import { resolveItem } from '@lib/functions/Conversion'; +import { cancelEvent } from '@lib/functions/Events'; +import type { TableColumn, TableColumnProps } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { Anchor, @@ -17,13 +24,6 @@ import { IconLink, IconLock } from '@tabler/icons-react'; - -import { ProgressBar } from '@lib/components/ProgressBar'; -import { YesNoButton } from '@lib/components/YesNoButton'; -import type { ModelType } from '@lib/enums/ModelType'; -import { resolveItem } from '@lib/functions/Conversion'; -import { cancelEvent } from '@lib/functions/Events'; -import type { TableColumn, TableColumnProps } from '@lib/types/Tables'; import type { ReactNode } from 'react'; import { Thumbnail } from '../components/images/Thumbnail'; import { TableStatusRenderer } from '../components/render/StatusRenderer'; @@ -142,11 +142,11 @@ export function StockColumn(props: StockColumnProps): TableColumn { const available = quantity - allocated; const extra: ReactNode[] = []; - let color = undefined; + let color; let text = formatDecimal(quantity); // Handle case where stock item detail is not provided - if (!stock_item || !stock_item.pk) { + if (!stock_item?.pk) { return props.nullMessage ?? '-'; } @@ -287,11 +287,7 @@ export function StockColumn(props: StockColumnProps): TableColumn { }; } -export function CompanyColumn({ - company -}: { - company: any; -}) { +export function CompanyColumn({ company }: { company: any }) { return company ? ( { const instance = resolveItem(record, props.accessor ?? ''); - if (!instance || !instance.name) { + if (!instance?.name) { return '-'; } @@ -347,7 +343,7 @@ export function PathColumnPlainText(props: TableColumnProps): TableColumn { render: (record: any) => { const instance = resolveItem(record, props.accessor ?? ''); - if (!instance || !instance.pathstring) { + if (!instance?.pathstring) { return '-'; } diff --git a/src/frontend/src/tables/Filter.tsx b/src/frontend/src/tables/Filter.tsx index 5c7c9d8a528a..896b9906a7be 100644 --- a/src/frontend/src/tables/Filter.tsx +++ b/src/frontend/src/tables/Filter.tsx @@ -1,10 +1,9 @@ -import { t } from '@lingui/core/macro'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import { isTrue } from '@lib/functions/Conversion'; import type { TableFilter, TableFilterChoice } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; import type { StatusCodeInterface, StatusCodeListInterface @@ -346,7 +345,9 @@ export function IncludeVariantsFilter(): TableFilter { export function OrderStatusFilter({ model -}: { model: ModelType }): TableFilter { +}: { + model: ModelType; +}): TableFilter { return { name: 'status', label: t`Status`, diff --git a/src/frontend/src/tables/FilterSelectDrawer.tsx b/src/frontend/src/tables/FilterSelectDrawer.tsx index 6113f013b1c1..c83782d183e3 100644 --- a/src/frontend/src/tables/FilterSelectDrawer.tsx +++ b/src/frontend/src/tables/FilterSelectDrawer.tsx @@ -1,3 +1,10 @@ +import { StylishText } from '@lib/components/StylishText'; +import type { + FilterSetState, + TableFilter, + TableFilterChoice, + TableFilterType +} from '@lib/types/Filters'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -16,17 +23,9 @@ import { Tooltip } from '@mantine/core'; import { DateInput, type DateValue } from '@mantine/dates'; +import { IconCheck } from '@tabler/icons-react'; import dayjs from 'dayjs'; import { useCallback, useEffect, useMemo, useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import type { - FilterSetState, - TableFilter, - TableFilterChoice, - TableFilterType -} from '@lib/types/Filters'; -import { IconCheck } from '@tabler/icons-react'; import { StandaloneField } from '../components/forms/StandaloneField'; import { filterDisplayLabel, diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx index fc0395ffce54..268219839556 100644 --- a/src/frontend/src/tables/InvenTreeTable.tsx +++ b/src/frontend/src/tables/InvenTreeTable.tsx @@ -5,17 +5,16 @@ import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { resolveItem } from '@lib/functions/Conversion'; import { cancelEvent } from '@lib/functions/Events'; import { mapFields } from '@lib/functions/Forms'; -import { getDetailUrl } from '@lib/functions/Navigation'; -import { navigateToLink } from '@lib/functions/Navigation'; +import { getDetailUrl, navigateToLink } from '@lib/functions/Navigation'; import { useStoredTableState } from '@lib/states/StoredTableState'; import type { TableFilter } from '@lib/types/Filters'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { InvenTreeTableProps, InvenTreeTableRenderProps, + TableColumn, TableState } from '@lib/types/Tables'; -import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { ActionIcon, Box, Stack } from '@mantine/core'; import { IconArrowRight, IconClick } from '@tabler/icons-react'; @@ -300,13 +299,13 @@ export function InvenTreeTableInternal>({ resizable: col.resizable ?? true, title: col.title ?? fieldNames[col.accessor] ?? `${col.accessor}`, render: wrappedRender, - cellsStyle: (record: any, index: number) => { + cellsStyle: (_record: any, _index: number) => { const width = (col as any).minWidth ?? 100; return { minWidth: width }; }, - titleStyle: (record: any, index: number) => { + titleStyle: (_record: any, _index: number) => { const width = (col as any).minWidth ?? 100; return { minWidth: width @@ -822,70 +821,67 @@ export function InvenTreeTableInternal>({ }, [tableState.records]); return ( - <> - - {!tableProps.noHeader && ( - - setSearchParams?.(new URLSearchParams())} - toggleColumn={toggleColumn} - /> - - )} - - - - + + {!tableProps.noHeader && ( + + setSearchParams?.(new URLSearchParams())} + toggleColumn={toggleColumn} + /> - - + )} + + + + + + ); } diff --git a/src/frontend/src/tables/InvenTreeTableHeader.tsx b/src/frontend/src/tables/InvenTreeTableHeader.tsx index 2defcb7a22ef..129424401a35 100644 --- a/src/frontend/src/tables/InvenTreeTableHeader.tsx +++ b/src/frontend/src/tables/InvenTreeTableHeader.tsx @@ -1,3 +1,12 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { Boundary } from '@lib/components/Boundary'; +import { ButtonMenu } from '@lib/components/ButtonMenu'; +import { SearchInput } from '@lib/components/SearchInput'; +import { StylishText } from '@lib/components/StylishText'; +import { TableColumnSelect } from '@lib/components/TableColumnSelect'; +import { resolveItem } from '@lib/functions/Conversion'; +import type { TableFilter } from '@lib/types/Filters'; +import type { InvenTreeTableProps, TableState } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { ActionIcon, @@ -11,6 +20,7 @@ import { Stack, Tooltip } from '@mantine/core'; +import { showNotification } from '@mantine/notifications'; import { IconBarcode, IconDownload, @@ -21,18 +31,6 @@ import { } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; import { Fragment } from 'react/jsx-runtime'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { Boundary } from '@lib/components/Boundary'; -import { ButtonMenu } from '@lib/components/ButtonMenu'; -import { SearchInput } from '@lib/components/SearchInput'; -import { StylishText } from '@lib/components/StylishText'; -import { TableColumnSelect } from '@lib/components/TableColumnSelect'; -import { resolveItem } from '@lib/functions/Conversion'; -import type { TableFilter } from '@lib/types/Filters'; -import type { TableState } from '@lib/types/Tables'; -import type { InvenTreeTableProps } from '@lib/types/Tables'; -import { showNotification } from '@mantine/notifications'; import { PrintingActions } from '../components/buttons/PrintingActions'; import useDataExport from '../hooks/UseDataExport'; import { useDeleteApiFormModal } from '../hooks/UseForm'; @@ -122,7 +120,7 @@ export default function InvenTreeTableHeader({ } }, successMessage: t`Items deleted`, - onFormError: (response) => { + onFormError: (_response) => { showNotification({ id: 'bulk-delete-error', title: t`Error`, diff --git a/src/frontend/src/tables/TableHoverCard.tsx b/src/frontend/src/tables/TableHoverCard.tsx index 5e611697a250..7df9930e4f3a 100644 --- a/src/frontend/src/tables/TableHoverCard.tsx +++ b/src/frontend/src/tables/TableHoverCard.tsx @@ -1,3 +1,4 @@ +import type { InvenTreeIconType } from '@lib/types/Icons'; import { t } from '@lingui/core/macro'; import { Divider, @@ -8,8 +9,6 @@ import { Text } from '@mantine/core'; import { type ReactNode, useMemo } from 'react'; - -import type { InvenTreeIconType } from '@lib/types/Icons'; import { InvenTreeIcon } from '../functions/icons'; /* diff --git a/src/frontend/src/tables/bom/BomSubassemblyTable.tsx b/src/frontend/src/tables/bom/BomSubassemblyTable.tsx index badf18e75d77..86049602a332 100644 --- a/src/frontend/src/tables/bom/BomSubassemblyTable.tsx +++ b/src/frontend/src/tables/bom/BomSubassemblyTable.tsx @@ -1,4 +1,4 @@ -import { ApiEndpoints, ModelType, apiUrl, useTable } from '@lib/index'; +import { ApiEndpoints, apiUrl, ModelType, useTable } from '@lib/index'; import type { TableColumn, TableState } from '@lib/types/Tables'; import { Group, Paper } from '@mantine/core'; import { IconCornerLeftUp } from '@tabler/icons-react'; @@ -13,11 +13,7 @@ import { import { InvenTreeTable } from '../InvenTreeTable'; import RowExpansionIcon from '../RowExpansionIcon'; -export function subassemblyRowExpansion({ - table -}: { - table: TableState; -}) { +export function subassemblyRowExpansion({ table }: { table: TableState }) { const userSettings = useUserSettingsState(); return useMemo(() => { @@ -43,11 +39,7 @@ export function subassemblyRowExpansion({ /** * Display a sub-table of the BOM, for displaying sub-assemblies within the main BOM table. */ -export default function BomSubassemblyTable({ - partId -}: { - partId: number; -}) { +export default function BomSubassemblyTable({ partId }: { partId: number }) { const table = useTable('bom-subassembly'); const rowExpansion = subassemblyRowExpansion({ table: table }); diff --git a/src/frontend/src/tables/bom/BomTable.tsx b/src/frontend/src/tables/bom/BomTable.tsx index 29e4b2cad41a..c375f1a78865 100644 --- a/src/frontend/src/tables/bom/BomTable.tsx +++ b/src/frontend/src/tables/bom/BomTable.tsx @@ -1,18 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Alert, Group, Stack, Text } from '@mantine/core'; -import { showNotification } from '@mantine/notifications'; -import { - IconArrowRight, - IconCircleCheck, - IconEdit, - IconFileUpload, - IconLock, - IconPlus, - IconSwitch3 -} from '@tabler/icons-react'; -import { type ReactNode, useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { ActionButton } from '@lib/components/ActionButton'; import { type RowAction, @@ -28,6 +13,20 @@ import { navigateToLink } from '@lib/functions/Navigation'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Alert, Group, Stack, Text } from '@mantine/core'; +import { showNotification } from '@mantine/notifications'; +import { + IconArrowRight, + IconCircleCheck, + IconEdit, + IconFileUpload, + IconLock, + IconPlus, + IconSwitch3 +} from '@tabler/icons-react'; +import { type ReactNode, useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { ActionDropdown } from '../../components/items/ActionDropdown'; import { RenderPart } from '../../components/render/Part'; import { useApi } from '../../contexts/ApiContext'; diff --git a/src/frontend/src/tables/bom/UsedInTable.tsx b/src/frontend/src/tables/bom/UsedInTable.tsx index 1d8c6656405d..0be3ad6b9dfc 100644 --- a/src/frontend/src/tables/bom/UsedInTable.tsx +++ b/src/frontend/src/tables/bom/UsedInTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Alert, Divider, Group, Stack, Text } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; @@ -9,7 +5,10 @@ import useTable from '@lib/hooks/UseTable'; import { ActionButton, RowEditAction, UserRoles } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { RowAction, TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Alert, Divider, Group, Stack, Text } from '@mantine/core'; import { IconExclamationCircle, IconReplace } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; import { formatDecimal } from '../../defaults/formatters'; import { bomItemFields } from '../../forms/BomForms'; import { diff --git a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx index ca709580990a..1dd6b1e1876c 100644 --- a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx +++ b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { type RowAction, RowEditAction } from '@lib/components/RowActions'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; @@ -11,8 +8,10 @@ import { ActionButton, formatDecimal } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { StockOperationProps } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; import { Alert } from '@mantine/core'; import { IconCircleDashedCheck, IconCircleX } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; import { useConsumeBuildItemsForm } from '../../forms/BuildForms'; import useBackgroundTask from '../../hooks/UseBackgroundTask'; import { diff --git a/src/frontend/src/tables/build/BuildLineTable.tsx b/src/frontend/src/tables/build/BuildLineTable.tsx index 863120421431..33c12fbb973f 100644 --- a/src/frontend/src/tables/build/BuildLineTable.tsx +++ b/src/frontend/src/tables/build/BuildLineTable.tsx @@ -1,3 +1,14 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { ProgressBar } from '@lib/components/ProgressBar'; +import { RowEditAction, RowViewAction } from '@lib/components/RowActions'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { formatDecimal } from '@lib/functions/Formatting'; +import useTable from '@lib/hooks/UseTable'; +import type { TableFilter } from '@lib/types/Filters'; +import type { RowAction, TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { Alert, Group, Paper, Text } from '@mantine/core'; import { @@ -13,18 +24,6 @@ import { import type { DataTableRowExpansionProps } from 'mantine-datatable'; import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { ProgressBar } from '@lib/components/ProgressBar'; -import { RowEditAction, RowViewAction } from '@lib/components/RowActions'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { formatDecimal } from '@lib/functions/Formatting'; -import useTable from '@lib/hooks/UseTable'; -import type { TableFilter } from '@lib/types/Filters'; -import type { RowAction, TableColumn } from '@lib/types/Tables'; import OrderPartsWizard from '../../components/wizards/OrderPartsWizard'; import { useAllocateStockToBuildForm, diff --git a/src/frontend/src/tables/build/BuildOrderTable.tsx b/src/frontend/src/tables/build/BuildOrderTable.tsx index 29b825ce27d0..a88797426056 100644 --- a/src/frontend/src/tables/build/BuildOrderTable.tsx +++ b/src/frontend/src/tables/build/BuildOrderTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useMemo } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { ProgressBar } from '@lib/components/ProgressBar'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; @@ -9,6 +6,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; +import { useMemo } from 'react'; import { useBuildOrderFields } from '../../forms/BuildForms'; import { useCreateApiFormModal } from '../../hooks/UseForm'; import { useGlobalSettingsState } from '../../states/SettingsStates'; diff --git a/src/frontend/src/tables/build/BuildOutputTable.tsx b/src/frontend/src/tables/build/BuildOutputTable.tsx index 6367564acb3e..5ff7e03b18ea 100644 --- a/src/frontend/src/tables/build/BuildOutputTable.tsx +++ b/src/frontend/src/tables/build/BuildOutputTable.tsx @@ -1,3 +1,16 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { AddItemButton } from '@lib/components/AddItemButton'; +import { ProgressBar } from '@lib/components/ProgressBar'; +import { type RowAction, RowEditAction } from '@lib/components/RowActions'; +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; +import type { TableFilter } from '@lib/types/Filters'; +import type { StockOperationProps } from '@lib/types/Forms'; +import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { Alert, @@ -19,20 +32,6 @@ import { } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useEffect, useMemo, useState } from 'react'; - -import { ActionButton } from '@lib/components/ActionButton'; -import { AddItemButton } from '@lib/components/AddItemButton'; -import { ProgressBar } from '@lib/components/ProgressBar'; -import { type RowAction, RowEditAction } from '@lib/components/RowActions'; -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; -import type { TableFilter } from '@lib/types/Filters'; -import type { StockOperationProps } from '@lib/types/Forms'; -import type { TableColumn } from '@lib/types/Tables'; import { useApi } from '../../contexts/ApiContext'; import { useBuildAutoAllocateFields, diff --git a/src/frontend/src/tables/company/AddressTable.tsx b/src/frontend/src/tables/company/AddressTable.tsx index 8114bf1f24ca..5561bffa4c47 100644 --- a/src/frontend/src/tables/company/AddressTable.tsx +++ b/src/frontend/src/tables/company/AddressTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -14,6 +11,8 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; import { useCreateApiFormModal, useDeleteApiFormModal, diff --git a/src/frontend/src/tables/company/CompanyTable.tsx b/src/frontend/src/tables/company/CompanyTable.tsx index 985657970985..c65af83dbe71 100644 --- a/src/frontend/src/tables/company/CompanyTable.tsx +++ b/src/frontend/src/tables/company/CompanyTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, RowEditAction } from '@lib/components/RowActions'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; @@ -11,6 +7,9 @@ import { apiUrl } from '@lib/functions/Api'; import { navigateToLink } from '@lib/functions/Navigation'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { companyFields } from '../../forms/CompanyForms'; import { useCreateApiFormModal, @@ -163,7 +162,7 @@ export function CompanyTable({ params: { ...params }, - onRowClick: (record: any, index: number, event: any) => { + onRowClick: (record: any, _index: number, event: any) => { if (record.pk) { const base = path ?? 'company'; navigateToLink(`/${base}/${record.pk}`, navigate, event); diff --git a/src/frontend/src/tables/company/ContactTable.tsx b/src/frontend/src/tables/company/ContactTable.tsx index b2dcbb95ce90..eacd5fe645d0 100644 --- a/src/frontend/src/tables/company/ContactTable.tsx +++ b/src/frontend/src/tables/company/ContactTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -15,6 +12,8 @@ import { getDetailUrl } from '@lib/functions/Navigation'; import useTable from '@lib/hooks/UseTable'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { RenderInlineModel } from '../../components/render/Instance'; import { diff --git a/src/frontend/src/tables/general/AttachmentTable.tsx b/src/frontend/src/tables/general/AttachmentTable.tsx index 6db7a837667c..186a1d53ef68 100644 --- a/src/frontend/src/tables/general/AttachmentTable.tsx +++ b/src/frontend/src/tables/general/AttachmentTable.tsx @@ -1,17 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Badge, Group, Paper, Stack, Text } from '@mantine/core'; -import { Dropzone } from '@mantine/dropzone'; -import { notifications } from '@mantine/notifications'; -import { - IconCircleCheck, - IconExclamationCircle, - IconExternalLink, - IconFileUpload, - IconUpload, - IconX -} from '@tabler/icons-react'; -import { type ReactNode, useCallback, useMemo, useState } from 'react'; - import { ActionButton } from '@lib/components/ActionButton'; import { ProgressBar } from '@lib/components/ProgressBar'; import { @@ -26,6 +12,19 @@ import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Badge, Group, Paper, Stack, Text } from '@mantine/core'; +import { Dropzone } from '@mantine/dropzone'; +import { notifications } from '@mantine/notifications'; +import { + IconCircleCheck, + IconExclamationCircle, + IconExternalLink, + IconFileUpload, + IconUpload, + IconX +} from '@tabler/icons-react'; +import { type ReactNode, useCallback, useMemo, useState } from 'react'; import { AttachmentLink } from '../../components/items/AttachmentLink'; import { useApi } from '../../contexts/ApiContext'; import { formatFileSize } from '../../defaults/formatters'; diff --git a/src/frontend/src/tables/general/BarcodeScanTable.tsx b/src/frontend/src/tables/general/BarcodeScanTable.tsx index ad67ff523df5..c83e094f55a9 100644 --- a/src/frontend/src/tables/general/BarcodeScanTable.tsx +++ b/src/frontend/src/tables/general/BarcodeScanTable.tsx @@ -104,21 +104,19 @@ export default function BarcodeScanTable({ }, [table.selectedIds]); return ( - <> - - + ); } diff --git a/src/frontend/src/tables/general/ExtraLineItemTable.tsx b/src/frontend/src/tables/general/ExtraLineItemTable.tsx index 88b490a21f72..f40f3b99f984 100644 --- a/src/frontend/src/tables/general/ExtraLineItemTable.tsx +++ b/src/frontend/src/tables/general/ExtraLineItemTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -13,6 +10,8 @@ import type { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; import { formatCurrency } from '../../defaults/formatters'; import { extraLineItemFields } from '../../forms/CommonForms'; import { diff --git a/src/frontend/src/tables/general/ParameterTable.tsx b/src/frontend/src/tables/general/ParameterTable.tsx index 6883682ab0cd..b139150e78cf 100644 --- a/src/frontend/src/tables/general/ParameterTable.tsx +++ b/src/frontend/src/tables/general/ParameterTable.tsx @@ -1,12 +1,12 @@ import useTable from '@lib/hooks/UseTable'; import { ApiEndpoints, + apiUrl, + formatDecimal, ModelType, RowDeleteAction, RowEditAction, - YesNoButton, - apiUrl, - formatDecimal + YesNoButton } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; diff --git a/src/frontend/src/tables/general/ParameterTemplateTable.tsx b/src/frontend/src/tables/general/ParameterTemplateTable.tsx index 035dfc32602a..cea1c64dfc0e 100644 --- a/src/frontend/src/tables/general/ParameterTemplateTable.tsx +++ b/src/frontend/src/tables/general/ParameterTemplateTable.tsx @@ -3,11 +3,11 @@ import { AddItemButton, ApiEndpoints, type ApiFormFieldSet, + apiUrl, RowDeleteAction, RowDuplicateAction, RowEditAction, - UserRoles, - apiUrl + UserRoles } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { RowAction, TableColumn } from '@lib/types/Tables'; diff --git a/src/frontend/src/tables/general/ParametricDataTable.tsx b/src/frontend/src/tables/general/ParametricDataTable.tsx index 5d225051907b..bc41d778da61 100644 --- a/src/frontend/src/tables/general/ParametricDataTable.tsx +++ b/src/frontend/src/tables/general/ParametricDataTable.tsx @@ -3,13 +3,13 @@ import useTable from '@lib/hooks/UseTable'; import { ApiEndpoints, type ApiFormFieldSet, - type ModelType, - UserRoles, - YesNoButton, apiUrl, formatDecimal, getDetailUrl, - navigateToLink + type ModelType, + navigateToLink, + UserRoles, + YesNoButton } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; @@ -67,8 +67,7 @@ function ParameterCell({ if ( template.units && - parameter && - parameter.data_numeric && + parameter?.data_numeric && parameter.data_numeric != parameter.data ) { const numeric = formatDecimal(parameter.data_numeric, { digits: 15 }); diff --git a/src/frontend/src/tables/machine/MachineListTable.tsx b/src/frontend/src/tables/machine/MachineListTable.tsx index d6e1e1d74a0b..1e048a7f5267 100644 --- a/src/frontend/src/tables/machine/MachineListTable.tsx +++ b/src/frontend/src/tables/machine/MachineListTable.tsx @@ -1,4 +1,21 @@ +import { AddItemButton } from '@lib/components/AddItemButton'; +import { + DetailDrawer, + DetailDrawerLink +} from '@lib/components/nav/DetailDrawer'; +import { StylishText } from '@lib/components/StylishText'; +import { YesNoButton } from '@lib/components/YesNoButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; +import { formatDecimal, RowDeleteAction, RowEditAction } from '@lib/index'; +import type { + InvenTreeTableProps, + RowAction, + TableColumn +} from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; import { Accordion, Alert, @@ -21,21 +38,6 @@ import { IconCheck, IconRefresh } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; - -import { AddItemButton } from '@lib/components/AddItemButton'; -import { StylishText } from '@lib/components/StylishText'; -import { YesNoButton } from '@lib/components/YesNoButton'; -import { - DetailDrawer, - DetailDrawerLink -} from '@lib/components/nav/DetailDrawer'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; -import { RowDeleteAction, RowEditAction, formatDecimal } from '@lib/index'; -import type { RowAction, TableColumn } from '@lib/types/Tables'; -import type { InvenTreeTableProps } from '@lib/types/Tables'; -import { Trans } from '@lingui/react/macro'; import { api } from '../../App'; import { DeleteItemAction, @@ -141,7 +143,10 @@ function restartMachine({ export function useMachineTypeDriver({ includeTypes = true, includeDrivers = true -}: { includeTypes?: boolean; includeDrivers?: boolean } = {}) { +}: { + includeTypes?: boolean; + includeDrivers?: boolean; +} = {}) { const api = useApi(); const { @@ -275,265 +280,260 @@ function MachineDrawer({ }, [machine?.properties]); return ( - <> - - {machineEditModal.modal} - {machineDeleteModal.modal} - - - {machine && } - {machine?.name ?? t`Machine`} - - - {machine?.restart_required && ( - - Restart required - - )} - , - name: t`Restart`, - tooltip: - t`Restart machine` + - (machine?.restart_required - ? ` (${t`manual restart required`})` - : ''), - indicator: machine?.restart_required - ? { color: 'red' } - : undefined, - onClick: () => { - if (machine) { - restartMachine({ - machinePk: machine?.pk, - callback: refreshAll - }); - } + + {machineEditModal.modal} + {machineDeleteModal.modal} + + + {machine && } + {machine?.name ?? t`Machine`} + + + {machine?.restart_required && ( + + Restart required + + )} + , + name: t`Restart`, + tooltip: + t`Restart machine` + + (machine?.restart_required + ? ` (${t`manual restart required`})` + : ''), + indicator: machine?.restart_required + ? { color: 'red' } + : undefined, + onClick: () => { + if (machine) { + restartMachine({ + machinePk: machine?.pk, + callback: refreshAll + }); } } - ]} - /> - + } + ]} + /> - - + + + + + {t`General`} + + + + + + + + + {machineType ? ( + + ) : ( + {machine?.machine_type} + )} + {machine && !machineType && } + + + + + {machineDriver ? ( + + ) : ( + {machine?.driver} + )} + {!machine?.is_driver_available && ( + + )} + + + + + + + + + + + {machine?.status === -1 ? ( + No status + ) : ( + StatusRenderer({ + status: `${machine?.status || -1}`, + type: `${machine?.status_model}` as any + }) + )} + {machine?.status_text} + + + + + Errors: + + {machine && machine?.machine_errors.length > 0 ? ( + + {machine?.machine_errors.length} + + ) : ( + + No errors reported + + )} + + {machine?.machine_errors.map((error, i) => ( + + {error} + + ))} + + + + + + + + + + {t`Properties`} + + + + + {groupedProperties.map(({ group, properties }) => ( + + {group && ( + + {group} + + )} + + + {properties.map((prop) => ( + + {prop.key} + + {prop.type === 'bool' ? ( + + ) : prop.type === 'progress' ? ( + + + + {prop.value} / {prop.max_progress} + + + ) : prop.type === 'int' ? ( + {prop.value} + ) : prop.type === 'float' ? ( + + {formatDecimal( + Number.parseFloat(prop.value), + { digits: 4 } + )} + + ) : ( + {prop.value} + )} + + + ))} + +
+
+ ))} +
+
+
+
+ {machine?.is_driver_available && ( - {t`General`} + {t`Machine Settings`} - - - - - - - {machineType ? ( - - ) : ( - {machine?.machine_type} - )} - {machine && !machineType && } - - - - - {machineDriver ? ( - - ) : ( - {machine?.driver} - )} - {!machine?.is_driver_available && ( - - )} - - - - - - - - - - - {machine?.status === -1 ? ( - No status - ) : ( - StatusRenderer({ - status: `${machine?.status || -1}`, - type: `${machine?.status_model}` as any - }) - )} - {machine?.status_text} - - - - - Errors: - - {machine && machine?.machine_errors.length > 0 ? ( - - {machine?.machine_errors.length} - - ) : ( - - No errors reported - - )} - - {machine?.machine_errors.map((error, i) => ( - - {error} - - ))} - - - - + + + )} + {machine?.is_driver_available && ( - {t`Properties`} + {t`Driver Settings`} - - - {groupedProperties.map(({ group, properties }) => ( - - {group && ( - - {group} - - )} - - - {properties.map((prop) => ( - - {prop.key} - - {prop.type === 'bool' ? ( - - ) : prop.type === 'progress' ? ( - - - - {prop.value} / {prop.max_progress} - - - ) : prop.type === 'int' ? ( - {prop.value} - ) : prop.type === 'float' ? ( - - {formatDecimal( - Number.parseFloat(prop.value), - { digits: 4 } - )} - - ) : ( - {prop.value} - )} - - - ))} - -
-
- ))} -
+ +
- {machine?.is_driver_available && ( - - - {t`Machine Settings`} - - - - - - - - )} - {machine?.is_driver_available && ( - - - {t`Driver Settings`} - - - - - - - - )} -
-
- + )} +
+
); } @@ -765,7 +765,7 @@ export function MachineListTable({ title={t`Machine Detail`} size={'xl'} renderContent={(id) => { - if (!id || !id.startsWith('machine-')) return false; + if (!id?.startsWith('machine-')) return false; return ( - - - - {machineType ? machineType.name : machineTypeSlug} - - - - {!machineType && ( - } - > - {t`Machine type not found.`} - - )} + + + + {machineType ? machineType.name : machineTypeSlug} + + - } > - - - {t`Machine Type Information`} - - - - - - - + {t`Machine type not found.`} +
+ )} + + + + + {t`Machine Type Information`} + + + + + + + + + {!machineType?.is_builtin && ( - {!machineType?.is_builtin && ( - - )} - - - - - - - - - {t`Available Drivers`} - - - - - - - - - - + )} + + + + + + + + + {t`Available Drivers`} + + + + + + + + + ); } @@ -369,7 +365,7 @@ export function MachineTypeListTable({ title={t`Machine Type Detail`} size={'xl'} renderContent={(id) => { - if (!id || !id.startsWith('type-')) return false; + if (!id?.startsWith('type-')) return false; return ( ); @@ -379,7 +375,7 @@ export function MachineTypeListTable({ title={t`Machine Driver Detail`} size={'xl'} renderContent={(id) => { - if (!id || !id.startsWith('driver-')) return false; + if (!id?.startsWith('driver-')) return false; return ( stock) { extra.push( diff --git a/src/frontend/src/tables/part/PartTestResultTable.tsx b/src/frontend/src/tables/part/PartTestResultTable.tsx index a2079ee6a778..031ea71dd114 100644 --- a/src/frontend/src/tables/part/PartTestResultTable.tsx +++ b/src/frontend/src/tables/part/PartTestResultTable.tsx @@ -1,3 +1,13 @@ +import { PassFailButton } from '@lib/components/YesNoButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { ModelType } from '@lib/enums/ModelType'; +import { apiUrl } from '@lib/functions/Api'; +import { cancelEvent } from '@lib/functions/Events'; +import useTable from '@lib/hooks/UseTable'; +import { AddItemButton } from '@lib/index'; +import type { TableFilter } from '@lib/types/Filters'; +import type { ApiFormFieldSet } from '@lib/types/Forms'; +import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { ActionIcon, Badge, Group, Text, Tooltip } from '@mantine/core'; import { IconCirclePlus } from '@tabler/icons-react'; @@ -9,17 +19,6 @@ import { useMemo, useState } from 'react'; - -import { PassFailButton } from '@lib/components/YesNoButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { ModelType } from '@lib/enums/ModelType'; -import { apiUrl } from '@lib/functions/Api'; -import { cancelEvent } from '@lib/functions/Events'; -import useTable from '@lib/hooks/UseTable'; -import { AddItemButton } from '@lib/index'; -import type { TableFilter } from '@lib/types/Filters'; -import type { ApiFormFieldSet } from '@lib/types/Forms'; -import type { TableColumn } from '@lib/types/Tables'; import type { UseFormReturn } from 'react-hook-form'; import { RenderUser } from '../../components/render/User'; import { useApi } from '../../contexts/ApiContext'; @@ -123,7 +122,7 @@ export default function PartTestResultTable({ }, [partId, testResultFields]); const generateTestResults = useCallback( - (data: any, form: UseFormReturn) => { + (data: any, _form: UseFormReturn) => { // Generate a list of test results for each selected output const results = table.selectedRecords.map((record: any) => { return { @@ -328,7 +327,7 @@ export default function PartTestResultTable({ key='add-test-result' tooltip={t`Add Test Result`} disabled={!table.hasSelectedRecords} - onClick={(event: any) => { + onClick={(_event: any) => { createTestResultMultiple.open(); }} /> @@ -341,7 +340,7 @@ export default function PartTestResultTable({ icon: , color: 'green', title: t`Add Test Result`, - onClick: (event: any) => { + onClick: (_event: any) => { setSelectedOutput(record.pk); setSelectedTemplate(undefined); createTestResult.open(); diff --git a/src/frontend/src/tables/part/PartTestTemplateTable.tsx b/src/frontend/src/tables/part/PartTestTemplateTable.tsx index fc8bb020812b..b503a017867c 100644 --- a/src/frontend/src/tables/part/PartTestTemplateTable.tsx +++ b/src/frontend/src/tables/part/PartTestTemplateTable.tsx @@ -1,10 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Trans } from '@lingui/react/macro'; -import { Alert, Badge, Stack, Text } from '@mantine/core'; -import { IconLock } from '@tabler/icons-react'; -import { type ReactNode, useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -21,6 +14,12 @@ import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; +import { Alert, Badge, Stack, Text } from '@mantine/core'; +import { IconLock } from '@tabler/icons-react'; +import { type ReactNode, useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { useCreateApiFormModal, useDeleteApiFormModal, diff --git a/src/frontend/src/tables/part/PartThumbTable.tsx b/src/frontend/src/tables/part/PartThumbTable.tsx index 12a50bd3377c..b45d7400fd9f 100644 --- a/src/frontend/src/tables/part/PartThumbTable.tsx +++ b/src/frontend/src/tables/part/PartThumbTable.tsx @@ -1,3 +1,5 @@ +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; import { t } from '@lingui/core/macro'; import { Trans } from '@lingui/react/macro'; import { @@ -16,14 +18,11 @@ import { } from '@mantine/core'; import { useDebouncedValue, useHover } from '@mantine/hooks'; import { modals } from '@mantine/modals'; +import { showNotification } from '@mantine/notifications'; +import { IconX } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import type React from 'react'; import { Suspense, useState } from 'react'; - -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import { showNotification } from '@mantine/notifications'; -import { IconX } from '@tabler/icons-react'; import { api } from '../../App'; import { Thumbnail } from '../../components/images/Thumbnail'; @@ -145,7 +144,7 @@ export function PartThumbTable({ pk, setImage }: Readonly) { // Fetch thumbnails from API const thumbQuery = useQuery({ queryKey: [ApiEndpoints.part_thumbs_list, page, searchText], - throwOnError: (error: any) => { + throwOnError: (_error: any) => { setTotalPages(1); setPage(1); return true; @@ -188,7 +187,7 @@ export function PartThumbTable({ pk, setImage }: Readonly) { selectImage={setThumbImage} /> )) - : [...Array(limit)].map((elem, idx) => ( + : [...Array(limit)].map((_elem, idx) => ( { + onFormSuccess: (_response: any) => { table.refreshTable(); }, successMessage: t`Supplier part created`, @@ -282,7 +281,7 @@ export function SupplierPartTable({ pk: selectedSupplierPart?.pk, title: t`Edit Supplier Part`, fields: useMemo(() => editSupplierPartFields, [editSupplierPartFields]), - onFormSuccess: (response: any) => { + onFormSuccess: (_response: any) => { table.refreshTable(); } }); @@ -296,7 +295,7 @@ export function SupplierPartTable({ primary: false, active: true }, - onFormSuccess: (response: any) => { + onFormSuccess: (_response: any) => { table.refreshTable(); }, successMessage: t`Supplier part created` diff --git a/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx b/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx index 4328a71db725..1705e956d9f7 100644 --- a/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx +++ b/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Anchor, Group, Text } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -16,6 +12,9 @@ import { getDetailUrl } from '@lib/functions/Navigation'; import useTable from '@lib/hooks/UseTable'; import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Anchor, Group, Text } from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; import { formatCurrency } from '../../defaults/formatters'; import { useCreateApiFormModal, diff --git a/src/frontend/src/tables/sales/RepairOrderLineItemTable.tsx b/src/frontend/src/tables/sales/RepairOrderLineItemTable.tsx index 3ac3563645e0..99b2949e4950 100644 --- a/src/frontend/src/tables/sales/RepairOrderLineItemTable.tsx +++ b/src/frontend/src/tables/sales/RepairOrderLineItemTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -13,6 +10,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; import { useRepairOrderLineItemFields } from '../../forms/RepairOrderForms'; import { useCreateApiFormModal, @@ -42,8 +41,10 @@ export default function RepairOrderLineItemTable({ const [selectedLine, setSelectedLine] = useState(0); - const inProgress: boolean = useMemo(() => { - return order.status == roStatus.PENDING || order.status == roStatus.IN_PROGRESS; + const _inProgress: boolean = useMemo(() => { + return ( + order.status == roStatus.PENDING || order.status == roStatus.IN_PROGRESS + ); }, [order, roStatus]); const newLineFields = useRepairOrderLineItemFields({ diff --git a/src/frontend/src/tables/sales/RepairOrderTable.tsx b/src/frontend/src/tables/sales/RepairOrderTable.tsx index 3368c45bb419..bdc6ce55bc95 100644 --- a/src/frontend/src/tables/sales/RepairOrderTable.tsx +++ b/src/frontend/src/tables/sales/RepairOrderTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useMemo } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; @@ -8,6 +5,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; +import { useMemo } from 'react'; import { useRepairOrderFields } from '../../forms/RepairOrderForms'; import { useCreateApiFormModal } from '../../hooks/UseForm'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx index 7211b12a7745..c4369d430224 100644 --- a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx +++ b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { IconSquareArrowRight } from '@tabler/icons-react'; -import { useCallback, useMemo, useState } from 'react'; - import { ActionButton } from '@lib/components/ActionButton'; import { AddItemButton } from '@lib/components/AddItemButton'; import { @@ -16,6 +12,9 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { IconSquareArrowRight } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; import { formatCurrency } from '../../defaults/formatters'; import { useReceiveReturnOrderLineItems, @@ -214,7 +213,7 @@ export default function ReturnOrderLineItemTable({ const receiveLineItems = useReceiveReturnOrderLineItems({ orderId: orderId, items: selectedItems, - onFormSuccess: (data: any) => table.refreshTable() + onFormSuccess: (_data: any) => table.refreshTable() }); const rowActions = useCallback( diff --git a/src/frontend/src/tables/sales/ReturnOrderTable.tsx b/src/frontend/src/tables/sales/ReturnOrderTable.tsx index 261c6a7629a6..012ccaf2faaf 100644 --- a/src/frontend/src/tables/sales/ReturnOrderTable.tsx +++ b/src/frontend/src/tables/sales/ReturnOrderTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useMemo } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; @@ -8,6 +5,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; +import { useMemo } from 'react'; import { formatCurrency } from '../../defaults/formatters'; import { useReturnOrderFields } from '../../forms/ReturnOrderForms'; import { useCreateApiFormModal } from '../../hooks/UseForm'; diff --git a/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx b/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx index f8f10d8c6a82..287e01c567ee 100644 --- a/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx +++ b/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { ActionButton } from '@lib/components/ActionButton'; import { type RowAction, @@ -15,8 +12,10 @@ import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { StockOperationProps } from '@lib/types/Forms'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; import { Alert } from '@mantine/core'; import { IconCircleX, IconTruckDelivery } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { formatDate } from '../../defaults/formatters'; import { useSalesOrderAllocationFields } from '../../forms/SalesOrderForms'; diff --git a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx index 4b6e3781fd9f..26a4362ccb68 100644 --- a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx +++ b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx @@ -1,17 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Alert, Group, Paper, Text } from '@mantine/core'; -import { - IconArrowRight, - IconHash, - IconShoppingCart, - IconSquareArrowRight, - IconTools, - IconWand -} from '@tabler/icons-react'; -import type { DataTableRowExpansionProps } from 'mantine-datatable'; -import { type ReactNode, useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { ActionButton } from '@lib/components/ActionButton'; import { AddItemButton } from '@lib/components/AddItemButton'; import { ProgressBar } from '@lib/components/ProgressBar'; @@ -29,6 +15,19 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Alert, Group, Paper, Text } from '@mantine/core'; +import { + IconArrowRight, + IconHash, + IconShoppingCart, + IconSquareArrowRight, + IconTools, + IconWand +} from '@tabler/icons-react'; +import type { DataTableRowExpansionProps } from 'mantine-datatable'; +import { type ReactNode, useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { RenderPart } from '../../components/render/Part'; import OrderPartsWizard from '../../components/wizards/OrderPartsWizard'; import { formatCurrency, formatDecimal } from '../../defaults/formatters'; diff --git a/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx b/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx index 69922d0589cf..42a235a6bbc3 100644 --- a/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx +++ b/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx @@ -1,12 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { - IconCircleCheck, - IconCircleX, - IconTruckDelivery -} from '@tabler/icons-react'; -import { useCallback, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -22,6 +13,14 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { + IconCircleCheck, + IconCircleX, + IconTruckDelivery +} from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { useCheckShipmentForm, useCompleteShipmentForm, @@ -71,7 +70,7 @@ export default function SalesOrderShipmentTable({ pending: !selectedShipment.shipment_date }); - const completeShipmentFields = useSalesOrderShipmentCompleteFields({}); + const _completeShipmentFields = useSalesOrderShipmentCompleteFields({}); const newShipment = useCreateApiFormModal({ url: ApiEndpoints.sales_order_shipment_list, diff --git a/src/frontend/src/tables/sales/SalesOrderTable.tsx b/src/frontend/src/tables/sales/SalesOrderTable.tsx index fa99b0809280..c2373d43ee72 100644 --- a/src/frontend/src/tables/sales/SalesOrderTable.tsx +++ b/src/frontend/src/tables/sales/SalesOrderTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useMemo } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { ProgressBar } from '@lib/components/ProgressBar'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; @@ -9,6 +6,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; +import { t } from '@lingui/core/macro'; +import { useMemo } from 'react'; import { formatCurrency } from '../../defaults/formatters'; import { useSalesOrderFields } from '../../forms/SalesOrderForms'; import { useCreateApiFormModal } from '../../hooks/UseForm'; diff --git a/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx b/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx index 80b06490f642..7dfca88e9bc2 100644 --- a/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx +++ b/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx @@ -1,3 +1,14 @@ +import { CopyButton } from '@lib/components/CopyButton'; +import { RowDeleteAction } from '@lib/components/RowActions'; +import { StylishText } from '@lib/components/StylishText'; +import { PassFailButton } from '@lib/components/YesNoButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { UserRoles } from '@lib/enums/Roles'; +import { apiUrl } from '@lib/functions/Api'; +import { shortenString } from '@lib/functions/String'; +import useTable from '@lib/hooks/UseTable'; +import type { TableFilter } from '@lib/types/Filters'; +import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { Alert, @@ -13,18 +24,6 @@ import { import { useDisclosure } from '@mantine/hooks'; import { IconExclamationCircle } from '@tabler/icons-react'; import { useCallback, useMemo, useState } from 'react'; - -import { CopyButton } from '@lib/components/CopyButton'; -import { RowDeleteAction } from '@lib/components/RowActions'; -import { StylishText } from '@lib/components/StylishText'; -import { PassFailButton } from '@lib/components/YesNoButton'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { UserRoles } from '@lib/enums/Roles'; -import { apiUrl } from '@lib/functions/Api'; -import { shortenString } from '@lib/functions/String'; -import useTable from '@lib/hooks/UseTable'; -import type { TableFilter } from '@lib/types/Filters'; -import type { TableColumn } from '@lib/types/Tables'; import { RenderUser } from '../../components/render/User'; import { useDeleteApiFormModal } from '../../hooks/UseForm'; import { useGlobalSettingsState } from '../../states/SettingsStates'; diff --git a/src/frontend/src/tables/settings/CustomStateTable.tsx b/src/frontend/src/tables/settings/CustomStateTable.tsx index 668875a8e213..3d29dec5d057 100644 --- a/src/frontend/src/tables/settings/CustomStateTable.tsx +++ b/src/frontend/src/tables/settings/CustomStateTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Badge } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -15,6 +11,9 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Badge } from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; import type { StatusCodeInterface, StatusCodeListInterface diff --git a/src/frontend/src/tables/settings/CustomUnitsTable.tsx b/src/frontend/src/tables/settings/CustomUnitsTable.tsx index e0e89f357dbe..cac20b4d0db3 100644 --- a/src/frontend/src/tables/settings/CustomUnitsTable.tsx +++ b/src/frontend/src/tables/settings/CustomUnitsTable.tsx @@ -1,6 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, @@ -12,6 +9,8 @@ import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { useCallback, useMemo, useState } from 'react'; import { customUnitsFields } from '../../forms/CommonForms'; import { useCreateApiFormModal, diff --git a/src/frontend/src/tables/settings/EmailTable.tsx b/src/frontend/src/tables/settings/EmailTable.tsx index a36b4e4e520e..f8f0aac2288e 100644 --- a/src/frontend/src/tables/settings/EmailTable.tsx +++ b/src/frontend/src/tables/settings/EmailTable.tsx @@ -15,11 +15,7 @@ import { useUserState } from '../../states/UserState'; import { DateColumn } from '../ColumnRenderers'; import { InvenTreeTable } from '../InvenTreeTable'; -function EmailStatusBadge({ - status -}: { - status: any; -}): ReactNode { +function EmailStatusBadge({ status }: { status: any }): ReactNode { switch (status) { case 'A': return {t`Announced`}; @@ -43,7 +39,7 @@ export function EmailTable() { title: t`Send Test Email`, fields: { email: {} }, successMessage: t`Email sent successfully`, - onFormSuccess: (data: any) => { + onFormSuccess: (_data: any) => { table.refreshTable(); } }); diff --git a/src/frontend/src/tables/settings/ErrorTable.tsx b/src/frontend/src/tables/settings/ErrorTable.tsx index 57ed35e8e47c..ae8f0625ea96 100644 --- a/src/frontend/src/tables/settings/ErrorTable.tsx +++ b/src/frontend/src/tables/settings/ErrorTable.tsx @@ -1,15 +1,14 @@ -import { t } from '@lingui/core/macro'; -import { Group, Loader, Stack, Table, Text } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; -import { useNavigate, useParams } from 'react-router-dom'; - import { CopyButton } from '@lib/components/CopyButton'; -import { type RowAction, RowDeleteAction } from '@lib/components/RowActions'; import { DetailDrawer } from '@lib/components/nav/DetailDrawer'; +import { type RowAction, RowDeleteAction } from '@lib/components/RowActions'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Group, Loader, Stack, Table, Text } from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; +import { useNavigate, useParams } from 'react-router-dom'; import { useDeleteApiFormModal } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; import { useUserState } from '../../states/UserState'; diff --git a/src/frontend/src/tables/settings/FailedTasksTable.tsx b/src/frontend/src/tables/settings/FailedTasksTable.tsx index 8bbdd77dcd1e..75a8fa8f7e37 100644 --- a/src/frontend/src/tables/settings/FailedTasksTable.tsx +++ b/src/frontend/src/tables/settings/FailedTasksTable.tsx @@ -1,15 +1,14 @@ +import { StylishText } from '@lib/components/StylishText'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { apiUrl } from '@lib/functions/Api'; +import useTable from '@lib/hooks/UseTable'; +import type { TableColumn } from '@lib/types/Tables'; import { t } from '@lingui/core/macro'; import { Drawer, Text } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { hideNotification, showNotification } from '@mantine/notifications'; import { IconExclamationCircle } from '@tabler/icons-react'; import { useMemo, useState } from 'react'; - -import { StylishText } from '@lib/components/StylishText'; -import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; -import { apiUrl } from '@lib/functions/Api'; -import useTable from '@lib/hooks/UseTable'; -import type { TableColumn } from '@lib/types/Tables'; import { useUserState } from '../../states/UserState'; import { InvenTreeTable } from '../InvenTreeTable'; diff --git a/src/frontend/src/tables/settings/GroupTable.tsx b/src/frontend/src/tables/settings/GroupTable.tsx index 656e1774296d..4afa36d9e31d 100644 --- a/src/frontend/src/tables/settings/GroupTable.tsx +++ b/src/frontend/src/tables/settings/GroupTable.tsx @@ -1,16 +1,11 @@ -import { t } from '@lingui/core/macro'; -import { Trans } from '@lingui/react/macro'; -import { Accordion, LoadingOverlay, Stack, Text } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; +import { DetailDrawer } from '@lib/components/nav/DetailDrawer'; import { type RowAction, RowDeleteAction, RowEditAction } from '@lib/components/RowActions'; import { StylishText } from '@lib/components/StylishText'; -import { DetailDrawer } from '@lib/components/nav/DetailDrawer'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; @@ -18,7 +13,11 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import { type ApiFormModalProps, getDetailUrl } from '@lib/index'; import type { TableColumn, TableState } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Trans } from '@lingui/react/macro'; +import { Accordion, LoadingOverlay, Stack, Text } from '@mantine/core'; import { IconUsersGroup } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { EditApiForm } from '../../components/forms/ApiForm'; import { RoleTable, type RuleSet } from '../../components/items/RoleTable'; @@ -220,7 +219,7 @@ export function GroupTable({ size='xl' title={t`Edit Group`} renderContent={(id) => { - if (!id || !id.startsWith('group-')) return false; + if (!id?.startsWith('group-')) return false; return ( { - if (!id || !id.startsWith('user-')) return false; + if (!id?.startsWith('user-')) return false; return ( { - if (!record || !record.results || record.results.length < 2) { + if (!record?.results || record.results.length < 2) { return null; } diff --git a/src/frontend/src/tables/stock/StockLocationTable.tsx b/src/frontend/src/tables/stock/StockLocationTable.tsx index d8d6c9acd889..266490e60b89 100644 --- a/src/frontend/src/tables/stock/StockLocationTable.tsx +++ b/src/frontend/src/tables/stock/StockLocationTable.tsx @@ -1,7 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Group } from '@mantine/core'; -import { useCallback, useMemo, useState } from 'react'; - import { AddItemButton } from '@lib/components/AddItemButton'; import { type RowAction, RowEditAction } from '@lib/components/RowActions'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; @@ -11,6 +7,9 @@ import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Group } from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; import { ActionDropdown } from '../../components/items/ActionDropdown'; import { ApiIcon } from '../../components/items/ApiIcon'; import { stockLocationFields } from '../../forms/StockForms'; diff --git a/src/frontend/src/tables/stock/StockTrackingTable.tsx b/src/frontend/src/tables/stock/StockTrackingTable.tsx index 6e91c8b5b98e..aaa4d8778fcd 100644 --- a/src/frontend/src/tables/stock/StockTrackingTable.tsx +++ b/src/frontend/src/tables/stock/StockTrackingTable.tsx @@ -1,8 +1,3 @@ -import { t } from '@lingui/core/macro'; -import { Table, Text } from '@mantine/core'; -import { type ReactNode, useCallback, useMemo } from 'react'; -import { useNavigate } from 'react-router-dom'; - import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; @@ -10,6 +5,10 @@ import { formatDecimal } from '@lib/functions/Formatting'; import useTable from '@lib/hooks/UseTable'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; +import { t } from '@lingui/core/macro'; +import { Table, Text } from '@mantine/core'; +import { type ReactNode, useCallback, useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; import { RenderBuildOrder } from '../../components/render/Build'; import { RenderCompany } from '../../components/render/Company'; import { diff --git a/src/frontend/src/tables/stock/TransferOrderLineItemTable.tsx b/src/frontend/src/tables/stock/TransferOrderLineItemTable.tsx index 531ef4da695a..f3ee02b68a1a 100644 --- a/src/frontend/src/tables/stock/TransferOrderLineItemTable.tsx +++ b/src/frontend/src/tables/stock/TransferOrderLineItemTable.tsx @@ -4,14 +4,14 @@ import useTable from '@lib/hooks/UseTable'; import { ActionButton, AddItemButton, + formatDecimal, ModelType, ProgressBar, RowDeleteAction, RowDuplicateAction, RowEditAction, RowViewAction, - UserRoles, - formatDecimal + UserRoles } from '@lib/index'; import type { TableFilter } from '@lib/types/Filters'; import type { RowAction, TableColumn } from '@lib/types/Tables'; diff --git a/src/frontend/src/views/DesktopAppView.tsx b/src/frontend/src/views/DesktopAppView.tsx index ba9218114463..7ffc4b5e5589 100644 --- a/src/frontend/src/views/DesktopAppView.tsx +++ b/src/frontend/src/views/DesktopAppView.tsx @@ -1,7 +1,6 @@ +import { getBaseUrl } from '@lib/functions/Navigation'; import { useEffect } from 'react'; import { BrowserRouter } from 'react-router-dom'; - -import { getBaseUrl } from '@lib/functions/Navigation'; import { useShallow } from 'zustand/react/shallow'; import { api, queryClient } from '../App'; import { ApiProvider } from '../contexts/ApiContext'; diff --git a/src/frontend/tests/helpers.ts b/src/frontend/tests/helpers.ts index b6eeebd585e8..1875e6546a27 100644 --- a/src/frontend/tests/helpers.ts +++ b/src/frontend/tests/helpers.ts @@ -1,4 +1,4 @@ -import { type Page, expect } from '@playwright/test'; +import { expect, type Page } from '@playwright/test'; import { createApi } from './api'; export const clickOnParamFilter = async (page: Page, name: string) => { diff --git a/src/frontend/tests/login.ts b/src/frontend/tests/login.ts index 4bb52d44f932..c40e6a8be2ff 100644 --- a/src/frontend/tests/login.ts +++ b/src/frontend/tests/login.ts @@ -1,14 +1,13 @@ +import fs from 'node:fs'; +import path from 'node:path'; import type { Browser, Page } from '@playwright/test'; import { - type UserType, allaccessuser, loginUrl, logoutUrl, + type UserType, webUrl } from './defaults'; - -import fs from 'node:fs'; -import path from 'node:path'; import { navigate } from './helpers.js'; interface LoginOptions { diff --git a/src/frontend/tests/pages/pui_build.spec.ts b/src/frontend/tests/pages/pui_build.spec.ts index b54fadc6d771..77d5b1dad40b 100644 --- a/src/frontend/tests/pages/pui_build.spec.ts +++ b/src/frontend/tests/pages/pui_build.spec.ts @@ -267,7 +267,7 @@ test('Build Order - Build Outputs', async ({ browser }) => { let sn = 1; - sn = Number.parseInt(placeholder.split('+')[0].trim()); + sn = Number.parseInt(placeholder.split('+')[0].trim(), 10); // Generate some new serial numbers await page diff --git a/src/frontend/tests/pages/pui_company.spec.ts b/src/frontend/tests/pages/pui_company.spec.ts index cd86544b22c6..6da07f17b281 100644 --- a/src/frontend/tests/pages/pui_company.spec.ts +++ b/src/frontend/tests/pages/pui_company.spec.ts @@ -82,13 +82,13 @@ test('Company - Supplier Parts', async ({ browser }) => { await loadTab(page, 'Supplier Parts'); await clearTableFilters(page); - await page.getByText(/1 \- 25 \/ 77\d/).waitFor(); + await page.getByText(/1 - 25 \/ 77\d/).waitFor(); await setTableChoiceFilter(page, 'Primary', 'Yes'); - await page.getByText(/1 \- 25 \/ 31\d/).waitFor(); + await page.getByText(/1 - 25 \/ 31\d/).waitFor(); await clearTableFilters(page); await setTableChoiceFilter(page, 'Primary', 'No'); - await page.getByText(/1 \- 25 \/ 45\d/).waitFor(); + await page.getByText(/1 - 25 \/ 45\d/).waitFor(); }); diff --git a/src/frontend/tests/pages/pui_purchasing.spec.ts b/src/frontend/tests/pages/pui_purchasing.spec.ts index 6025e15ab211..ce3ce27eb06f 100644 --- a/src/frontend/tests/pages/pui_purchasing.spec.ts +++ b/src/frontend/tests/pages/pui_purchasing.spec.ts @@ -541,7 +541,7 @@ test('Purchase Orders - Receive Items', async ({ browser }) => { const quantityInput = await page.getByRole('textbox', { name: 'number-field-quantity' }); - const quantity = Number.parseInt(await quantityInput.inputValue()); + const quantity = Number.parseInt(await quantityInput.inputValue(), 10); await quantityInput.fill((quantity + 100).toString()); await page.getByRole('button', { name: 'Submit' }).click(); diff --git a/src/frontend/tests/pui_forms.spec.ts b/src/frontend/tests/pui_forms.spec.ts index a812d42f05b6..2d033e37859d 100644 --- a/src/frontend/tests/pui_forms.spec.ts +++ b/src/frontend/tests/pui_forms.spec.ts @@ -144,7 +144,7 @@ test('Forms - Supplier Validation', async ({ browser }) => { await page.getByText('Enter a valid URL.').waitFor(); // Generate a unique supplier name - const supplierName = `Supplier ${new Date().getTime()}`; + const supplierName = `Supplier ${Date.now()}`; // Fill with good data await page @@ -180,7 +180,7 @@ test('Forms - Keep form open option', async ({ browser }) => { await page.getByLabel('action-button-add-stock-location').click(); // Generate unique location name - const locationName = `New Sublocation ${new Date().getTime()}`; + const locationName = `New Sublocation ${Date.now()}`; await page.getByLabel('text-field-name', { exact: true }).fill(locationName); diff --git a/src/frontend/tests/pui_login.spec.ts b/src/frontend/tests/pui_login.spec.ts index 3fe8f50279ad..b23075d4eb55 100644 --- a/src/frontend/tests/pui_login.spec.ts +++ b/src/frontend/tests/pui_login.spec.ts @@ -1,10 +1,9 @@ +import { TOTP } from 'otpauth'; import { expect, test } from './baseFixtures.js'; import { logoutUrl, noaccessuser } from './defaults.js'; import { navigate } from './helpers.js'; import { doLogin } from './login.js'; -import { TOTP } from 'otpauth'; - /** * Test various types of login failure */ diff --git a/src/frontend/tests/pui_settings.spec.ts b/src/frontend/tests/pui_settings.spec.ts index 4cfa94632c14..2a0b660a4d1c 100644 --- a/src/frontend/tests/pui_settings.spec.ts +++ b/src/frontend/tests/pui_settings.spec.ts @@ -417,7 +417,7 @@ test('Settings - Admin - Parameter', async ({ browser }) => { await page .getByRole('cell', { name: 'my custom parameter', exact: true }) .waitFor({ timeout: 500 }) - .then(async (cell) => { + .then(async (_cell) => { await page .getByRole('cell', { name: 'my custom parameter' }) .locator('..') @@ -440,7 +440,7 @@ test('Settings - Admin - Parameter', async ({ browser }) => { await page .getByRole('cell', { name: 'some list' }) .waitFor({ timeout: 500 }) - .then(async (cell) => { + .then(async (_cell) => { await page .getByRole('cell', { name: 'some list' }) .locator('..') diff --git a/src/frontend/tsconfig.json b/src/frontend/tsconfig.json index b1c8746e90be..870840bb41ea 100644 --- a/src/frontend/tsconfig.json +++ b/src/frontend/tsconfig.json @@ -1,25 +1,25 @@ { - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "paths": { - "@lib/*": ["./lib/*"] - } - }, - "include": ["src", "lib", "vite-env.d.ts"], - "exclude": ["node_nodules", "dist"], - "references": [{ "path": "./tsconfig.node.json" }] + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "paths": { + "@lib/*": ["./lib/*"] + } + }, + "include": ["src", "lib", "vite-env.d.ts"], + "exclude": ["node_nodules", "dist"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/src/frontend/tsconfig.lib.json b/src/frontend/tsconfig.lib.json index 120c1c34cc40..6aba4295fbcc 100644 --- a/src/frontend/tsconfig.lib.json +++ b/src/frontend/tsconfig.lib.json @@ -1,13 +1,13 @@ { - "extends": "./tsconfig.json", - "compilerOptions": { - "moduleResolution": "bundler", - "declaration": true, - "declarationDir": "./dist", - "rootDir": "./lib", - "outDir": "./dist", - "paths": {}, - }, - "include": ["lib"], - "exclude": ["node_modules", "src"] + "extends": "./tsconfig.json", + "compilerOptions": { + "moduleResolution": "bundler", + "declaration": true, + "declarationDir": "./dist", + "rootDir": "./lib", + "outDir": "./dist", + "paths": {} + }, + "include": ["lib"], + "exclude": ["node_modules", "src"] } diff --git a/src/frontend/tsconfig.node.json b/src/frontend/tsconfig.node.json index 4eed05267ab8..368b71544b65 100644 --- a/src/frontend/tsconfig.node.json +++ b/src/frontend/tsconfig.node.json @@ -1,14 +1,11 @@ { - "compilerOptions": { - "composite": true, - "module": "ESNext", - "target": "ES2023", - "lib": ["ES2023"], - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": [ - "version-info.ts", - "vite.config.ts" - ] + "compilerOptions": { + "composite": true, + "module": "ESNext", + "target": "ES2023", + "lib": ["ES2023"], + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["version-info.ts", "vite.config.ts"] } diff --git a/src/frontend/vite.lib.config.ts b/src/frontend/vite.lib.config.ts index 4a37ab6363b6..cf6a1fbc2e55 100644 --- a/src/frontend/vite.lib.config.ts +++ b/src/frontend/vite.lib.config.ts @@ -14,9 +14,8 @@ import { resolve } from 'node:path'; import { defineConfig, mergeConfig } from 'vite'; import dts from 'vite-plugin-dts'; import { viteExternalsPlugin } from 'vite-plugin-externals'; -import viteConfig from './vite.config'; - import { __INVENTREE_VERSION_INFO__ } from './version-info'; +import viteConfig from './vite.config'; export default defineConfig((cfg) => mergeConfig( diff --git a/src/performance/tests.py b/src/performance/tests.py index e05c32391a60..8f9eefc58cc7 100644 --- a/src/performance/tests.py +++ b/src/performance/tests.py @@ -4,6 +4,7 @@ import os import pytest + from inventree.api import InvenTreeAPI server = os.environ.get('INVENTREE_PYTHON_TEST_SERVER', 'http://127.0.0.1:12345') diff --git a/tasks.py b/tasks.py index bcf8f92f8fa3..c5f5b9b18b42 100644 --- a/tasks.py +++ b/tasks.py @@ -387,11 +387,9 @@ def content_excludes( # Optionally exclude plugin information if not allow_plugins: - excludes.extend([ - 'plugin.pluginconfig', - 'plugin.pluginsetting', - 'plugin.pluginusersetting', - ]) + excludes.extend( + ['plugin.pluginconfig', 'plugin.pluginsetting', 'plugin.pluginusersetting'] + ) # Optionally exclude SSO application information if not allow_sso: From 06f3420c30fda83b68b3dbf18c861d80dfcb4daa Mon Sep 17 00:00:00 2001 From: Aditya Kumar Mishra Date: Thu, 4 Jun 2026 18:42:40 +0530 Subject: [PATCH 22/27] Fix: Resolve post-merge regressions (API version, TS build, and prek formatting) --- .../InvenTree/InvenTree/api_version.py | 5 +- src/frontend/package-lock.json | 21626 ++++++++-------- .../src/components/calendar/OrderCalendar.tsx | 2 +- src/frontend/src/components/nav/Layout.tsx | 54 +- .../src/tables/FilterSelectDrawer.tsx | 14 +- 5 files changed, 10846 insertions(+), 10855 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index a80da8408dfb..f0f04e224ad6 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 500 +INVENTREE_API_VERSION = 501 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v501 -> 2026-06-04 : https://github.com/inventree/InvenTree/pull/12072 + - Add RepairOrder models and endpoints + v500 -> 2026-06-03 : https://github.com/inventree/InvenTree/pull/12077 - Adds "tags" fields to multiple new model types - Adds /api/tag/ endpoint for fetching tags diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 7b9e6b8496cd..c0688687465b 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -1,10815 +1,10815 @@ { - "name": "@inventreedb/ui", - "version": "1.4.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@inventreedb/ui", - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.20.1", - "@codemirror/lang-liquid": "^6.3.2", - "@codemirror/language": "^6.12.2", - "@codemirror/lint": "^6.9.5", - "@codemirror/search": "^6.6.0", - "@codemirror/state": "^6.6.0", - "@codemirror/theme-one-dark": "^6.1.3", - "@codemirror/view": "^6.40.0", - "@emotion/react": "^11.13.3", - "@fortawesome/fontawesome-svg-core": "^7.0.0", - "@fortawesome/free-regular-svg-icons": "^7.0.0", - "@fortawesome/free-solid-svg-icons": "^7.0.0", - "@fortawesome/react-fontawesome": "^3.0.1", - "@fullcalendar/core": "^6.1.15", - "@fullcalendar/daygrid": "^6.1.15", - "@fullcalendar/interaction": "^6.1.15", - "@fullcalendar/react": "^6.1.15", - "@github/webauthn-json": "^2.1.1", - "@lingui/core": "^5.9.2", - "@lingui/react": "^5.9.2", - "@mantine/carousel": "^9.2.1", - "@mantine/charts": "^9.2.1", - "@mantine/core": "^9.2.1", - "@mantine/dates": "^9.2.1", - "@mantine/dropzone": "^9.2.1", - "@mantine/form": "^9.2.1", - "@mantine/hooks": "^9.2.1", - "@mantine/modals": "^9.2.1", - "@mantine/notifications": "^9.2.1", - "@mantine/spotlight": "^9.2.1", - "@mantine/vanilla-extract": "^9.2.1", - "@messageformat/date-skeleton": "^1.1.0", - "@sentry/react": "^10.43.0", - "@tabler/icons-react": "^3.17.0", - "@tanstack/react-query": "^5.56.2", - "@uiw/codemirror-theme-vscode": "^4.25.8", - "@uiw/react-codemirror": "^4.25.8", - "@uiw/react-split": "^5.9.4", - "@vanilla-extract/css": "^1.18.0", - "axios": "^1.13.6", - "clsx": "^2.1.1", - "codemirror": "^6.0.2", - "dayjs": "^1.11.13", - "dompurify": "^3.2.4", - "easymde": "^2.20.0", - "embla-carousel": "^8.5.2", - "embla-carousel-react": "^8.5.2", - "fuse.js": "^7.0.0", - "html5-qrcode": "^2.3.8", - "mantine-contextmenu": "^9.2.1", - "mantine-datatable": "^9.2.0", - "qrcode": "^1.5.4", - "react": "^19.2.4", - "react-dom": "^19.2.4", - "react-grid-layout": "1.4.4", - "react-hook-form": "^7.62.0", - "react-is": "^19.2.4", - "react-router-dom": "^6.26.2", - "react-select": "^5.9.0", - "react-simplemde-editor": "^5.2.0", - "react-window": "1.8.11", - "recharts": "^3.1.2", - "styled-components": "^6.1.14", - "undici": "^6.24.0", - "zustand": "^5.0.8" - }, - "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/preset-react": "^7.28.5", - "@babel/preset-typescript": "^7.28.5", - "@babel/runtime": "^7.28.6", - "@codecov/vite-plugin": "^1.9.1", - "@lingui/babel-plugin-lingui-macro": "^5.9.2", - "@lingui/cli": "^5.9.2", - "@lingui/macro": "^5.9.2", - "@playwright/test": "^1.16.0", - "@types/node": "^25.5.0", - "@types/qrcode": "^1.5.5", - "@types/react": "^19.2.14", - "@types/react-dom": "^19.2.3", - "@types/react-grid-layout": "^1.3.5", - "@types/react-router-dom": "^5.3.3", - "@types/react-window": "^1.8.8", - "@vanilla-extract/vite-plugin": "^5.1.4", - "@vitejs/plugin-react": "^5.2.0", - "babel-plugin-macros": "^3.1.0", - "nyc": "^18.0.0", - "otpauth": "^9.4.1", - "path": "^0.12.7", - "rollup": "^4.59.0", - "rollup-plugin-license": "^3.7.0", - "typescript": "^5.9.3", - "vite": "^6.4.2", - "vite-plugin-babel-macros": "^1.0.6", - "vite-plugin-dts": "^4.5.4", - "vite-plugin-externals": "^0.6.2", - "vite-plugin-istanbul": "^8.0.0" - } - }, - "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/github": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", - "integrity": "sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/http-client": "^2.2.0", - "@octokit/core": "^5.0.1", - "@octokit/plugin-paginate-rest": "^9.2.2", - "@octokit/plugin-rest-endpoint-methods": "^10.4.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "undici": "^5.28.5" - } - }, - "node_modules/@actions/github/node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@actions/http-client/node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", - "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", - "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", - "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", - "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", - "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-member-expression-to-functions": "^7.29.7", - "@babel/helper-optimise-call-expression": "^7.29.7", - "@babel/helper-replace-supers": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", - "@babel/traverse": "^7.29.7", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", - "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", - "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", - "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", - "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", - "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", - "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", - "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.29.7", - "@babel/helper-optimise-call-expression": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", - "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", - "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", - "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", - "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", - "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", - "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", - "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", - "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", - "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/plugin-syntax-jsx": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", - "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", - "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", - "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", - "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", - "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", - "@babel/plugin-syntax-typescript": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", - "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "@babel/plugin-transform-react-display-name": "^7.29.7", - "@babel/plugin-transform-react-jsx": "^7.29.7", - "@babel/plugin-transform-react-jsx-development": "^7.29.7", - "@babel/plugin-transform-react-pure-annotations": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", - "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "@babel/plugin-syntax-jsx": "^7.29.7", - "@babel/plugin-transform-modules-commonjs": "^7.29.7", - "@babel/plugin-transform-typescript": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", - "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", - "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", - "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@codecov/bundler-plugin-core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.9.1.tgz", - "integrity": "sha512-dt3ic7gMswz4p/qdkYPVJwXlLiLsz55rBBn2I7mr0HTG8pCoLRqnANJIwo5WrqGBZgPyVSMPBqBra6VxLWfDyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/core": "^1.10.1", - "@actions/github": "^6.0.0", - "chalk": "4.1.2", - "semver": "^7.5.4", - "unplugin": "^1.10.1", - "zod": "^3.22.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@codecov/bundler-plugin-core/node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@codecov/vite-plugin": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@codecov/vite-plugin/-/vite-plugin-1.9.1.tgz", - "integrity": "sha512-S6Yne7comVulJ1jD3T7rCfYFHPR0zUjAYoLjUDPXNJCUrdzWJdf/ak/UepE7TicqQG+yBa6eb5WusqcPgg+1AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codecov/bundler-plugin-core": "^1.9.1", - "unplugin": "^1.10.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "vite": "4.x || 5.x || 6.x" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.20.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", - "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.3.tgz", - "integrity": "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.6.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", - "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.1.7" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.11", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz", - "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.12" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", - "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-liquid": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.2.tgz", - "integrity": "sha512-6PDVU3ZnfeYyz1at1E/ttorErZvZFXXt1OPhtfe1EZJ2V2iDFa0CwPqPgG5F7NXN0yONGoBogKmFAafKTqlwIw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/language": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.3.tgz", - "integrity": "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.5.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.9.5", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", - "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", - "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.37.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.6.0.tgz", - "integrity": "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ==", - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", - "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.40.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.40.0.tgz", - "integrity": "sha512-WA0zdU7xfF10+5I3HhUUq3kqOx3KjqmtQ9lqZjfK7jtYk4G72YW9rezcSywpaUMCWOMlq+6E0pO1IWg1TNIhtg==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.6.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", - "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.3.3", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/@emotion/cache": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", - "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", - "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", - "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.2", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "license": "MIT" - }, - "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", - "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", - "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.11" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", - "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.5", - "@floating-ui/utils": "^0.2.11" - } - }, - "node_modules/@floating-ui/react": { - "version": "0.27.19", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.19.tgz", - "integrity": "sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.1.8", - "@floating-ui/utils": "^0.2.11", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=17.0.0", - "react-dom": ">=17.0.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", - "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.7.6" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", - "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", - "license": "MIT" - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.2.0.tgz", - "integrity": "sha512-IpR0bER9FY25p+e7BmFH25MZKEwFHTfRAfhOyJubgiDnoJNsSvJ7nigLraHtp4VOG/cy8D7uiV0dLkHOne5Fhw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.2.0.tgz", - "integrity": "sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==", - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "7.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.2.0.tgz", - "integrity": "sha512-iycmlN51EULlQ4D/UU9WZnHiN0CvjJ2TuuCrAh+1MVdzD+4ViKYH2deNAll4XAAYlZa8WAefHR5taSK8hYmSMw==", - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "7.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.2.0.tgz", - "integrity": "sha512-YTVITFGN0/24PxzXrwqCgnyd7njDuzp5ZvaCx5nq/jg55kUYd94Nj8UTchBdBofi/L0nwRfjGOg0E41d2u9T1w==", - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "7.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-3.3.0.tgz", - "integrity": "sha512-EHmHeTf8WgO29sdY3iX/7ekE3gNUdlc2RW6mm/FzELlHFKfTrA9S4MlyquRR+RRCRCn8+jXfLFpLGB2l7wCWyw==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~6 || ~7", - "react": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@fullcalendar/core": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", - "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", - "license": "MIT", - "dependencies": { - "preact": "~10.12.1" - } - }, - "node_modules/@fullcalendar/daygrid": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz", - "integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==", - "license": "MIT", - "peerDependencies": { - "@fullcalendar/core": "~6.1.20" - } - }, - "node_modules/@fullcalendar/interaction": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz", - "integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==", - "license": "MIT", - "peerDependencies": { - "@fullcalendar/core": "~6.1.20" - } - }, - "node_modules/@fullcalendar/react": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.20.tgz", - "integrity": "sha512-1w0pZtceaUdfAnxMSCGHCQalhi+mR1jOe76sXzyAXpcPz/Lf0zHSdcGK/U2XpZlnQgQtBZW+d+QBnnzVQKCxAA==", - "license": "MIT", - "peerDependencies": { - "@fullcalendar/core": "~6.1.20", - "react": "^16.7.0 || ^17 || ^18 || ^19", - "react-dom": "^16.7.0 || ^17 || ^18 || ^19" - } - }, - "node_modules/@github/webauthn-json": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@github/webauthn-json/-/webauthn-json-2.1.1.tgz", - "integrity": "sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==", - "deprecated": "Deprecated: Modern browsers support built-in WebAuthn JSON methods. Please use native browser methods instead. For more information, visit https://github.com/github/webauthn-json", - "license": "MIT", - "bin": { - "webauthn-json": "dist/bin/main.js" - } - }, - "node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", - "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", - "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", - "license": "MIT" - }, - "node_modules/@lezer/css": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.3.tgz", - "integrity": "sha512-RzBo8r+/6QJeow7aPHIpGVIH59xTcJXp399820gZoMo9noQDRVpJLheIBUicYwKcsbOYoBRoLZlf2720dG/4Tg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", - "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", - "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", - "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", - "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lingui/babel-plugin-extract-messages": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-5.9.3.tgz", - "integrity": "sha512-zm6QHDILmhj8olgLL2zHQn18yFA5mf4hX7QzCr1OOI/e815I0IkecCYue1Ych+y+B+V0eLriiW8AcfpDRCQFFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@lingui/babel-plugin-lingui-macro": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-5.9.3.tgz", - "integrity": "sha512-fLMhBarRsuqBGOq2YuEoqOjEAV2VNezz/+f/Dn0vLFHF/kAjnFwTHb8pL8DRSIMsWG16mPrGnLpdROZBmJlFtA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/runtime": "^7.20.13", - "@babel/types": "^7.20.7", - "@lingui/conf": "5.9.3", - "@lingui/core": "5.9.3", - "@lingui/message-utils": "5.9.3" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "babel-plugin-macros": "2 || 3" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/@lingui/cli": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-5.9.3.tgz", - "integrity": "sha512-KEE0J4eGlfpiLZ+l019qjraWfqfh5mUmQSJeTFw5PulO4v50zvxw5tDX8stpBzJ3QtgUQZlrMUh0OTGdURaAMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.0", - "@babel/generator": "^7.21.1", - "@babel/parser": "^7.22.0", - "@babel/runtime": "^7.21.0", - "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "5.9.3", - "@lingui/babel-plugin-lingui-macro": "5.9.3", - "@lingui/conf": "5.9.3", - "@lingui/core": "5.9.3", - "@lingui/format-po": "5.9.3", - "@lingui/message-utils": "5.9.3", - "chokidar": "3.5.1", - "cli-table": "^0.3.11", - "commander": "^10.0.0", - "convert-source-map": "^2.0.0", - "date-fns": "^3.6.0", - "esbuild": "^0.25.1", - "glob": "^11.0.0", - "micromatch": "^4.0.7", - "ms": "^2.1.3", - "normalize-path": "^3.0.0", - "ora": "^5.1.0", - "picocolors": "^1.1.1", - "pofile": "^1.1.4", - "pseudolocale": "^2.0.0", - "source-map": "^0.7.6", - "threads": "^1.7.0" - }, - "bin": { - "lingui": "dist/lingui.js" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@lingui/cli/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@lingui/conf": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-5.9.3.tgz", - "integrity": "sha512-hVEoYHmO2A3XmFX4A5RuBgcoVBoM7Xgoqejeq25XELvesJj2s2T15F47TA5n3/S7iTqngd6n/8KxBli9TYwgqQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.13", - "cosmiconfig": "^8.0.0", - "jest-validate": "^29.4.3", - "jiti": "^2.5.1", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@lingui/core": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/core/-/core-5.9.3.tgz", - "integrity": "sha512-3b8LnDjx8POdQ6q6UKBe2DHynyQFCO66vm8/UPQnvlQowUk4Xdu5bK6oet11D9/vrSznrDDS+Qb5JVcNBUImgg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@lingui/message-utils": "5.9.3" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.9.3", - "babel-plugin-macros": "2 || 3" - }, - "peerDependenciesMeta": { - "@lingui/babel-plugin-lingui-macro": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/@lingui/format-po": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-5.9.3.tgz", - "integrity": "sha512-+LMnhWl7EmXrdOv10gopE1g8w8vtPY5Fxk72OORrGQFVMGBIioz4BEnKrNdV1ek2M+GxoMZtnUs17KrJN5Jv9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lingui/conf": "5.9.3", - "@lingui/message-utils": "5.9.3", - "date-fns": "^3.6.0", - "pofile": "^1.1.4" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@lingui/macro": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-5.9.3.tgz", - "integrity": "sha512-xWqJ+hpp5T+xmE++VYlcfMxrF48LpY5Ak9N/luibY9d0AqvyYZiiv7Xaq7E2eK69v9CJWx+6eXA6uPhC8gHY+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lingui/core": "5.9.3", - "@lingui/react": "5.9.3" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.9.3", - "babel-plugin-macros": "2 || 3" - }, - "peerDependenciesMeta": { - "@lingui/babel-plugin-lingui-macro": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/@lingui/message-utils": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.9.3.tgz", - "integrity": "sha512-oAK7HA7lcQrzaEaM6G1T5RwwxJxaSKfG/IFIxpZIl49TSFQv+s9YPNgHnVi+d4DmterpXNxy9ZZ+NtckJx6u7g==", - "license": "MIT", - "dependencies": { - "@messageformat/parser": "^5.0.0", - "js-sha256": "^0.10.1" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@lingui/react": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@lingui/react/-/react-5.9.3.tgz", - "integrity": "sha512-aje78l3zGGZ3C75fiGhDVKyVALHfiKlYFjcOlZpgXY/JAVfFuZX+6wUGG9x1A8k7BfxrDy/ofHIBahPvNAqoKw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@lingui/core": "5.9.3" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.9.3", - "babel-plugin-macros": "2 || 3", - "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@lingui/babel-plugin-lingui-macro": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/@mantine/carousel": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-9.2.1.tgz", - "integrity": "sha512-b0ZBDnKhzztEFWNWbbFpPMqaV/4k/lclX8KB0PfU+qhu3Fa6wjS1VIn4XLZu9N3vgkzPkNXwDzpcwFShA9Uvqw==", - "license": "MIT", - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "embla-carousel": ">=8.0.0", - "embla-carousel-react": ">=8.0.0", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/charts": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-9.2.1.tgz", - "integrity": "sha512-AVP0VEfcsbWwLBeU8rbEsN2gz3GebQECTreRq5AJ0Z5V1eWmTO7XFkRP9C5C6oHnkY4Vppa1x8cRYgyTsc/YbQ==", - "license": "MIT", - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "recharts": ">=3.2.1" - } - }, - "node_modules/@mantine/core": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-9.2.1.tgz", - "integrity": "sha512-CicPg9i2dM2pGp1jj+dMiR/63OFDsPjgJke4v5+0nbfJ+C7gn4C+7ltrp4RIETDMZHcj0fFuDRG0qtbiyBxvWA==", - "license": "MIT", - "dependencies": { - "@floating-ui/react": "^0.27.19", - "clsx": "^2.1.1", - "react-number-format": "^5.4.5", - "react-remove-scroll": "^2.7.2", - "type-fest": "^5.6.0" - }, - "peerDependencies": { - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/dates": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-9.2.1.tgz", - "integrity": "sha512-cyRC8bnZ6W+SzQf/RM+/eDeWhZTZF148z+OcgqiERdkAujh0q88Ddybv/Hshv1EOf0rCe6oiHSZWxIxmUf7KAg==", - "license": "MIT", - "dependencies": { - "clsx": "^2.1.1" - }, - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "dayjs": ">=1.0.0", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/dropzone": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-9.2.1.tgz", - "integrity": "sha512-rgebEz2bUubqA5jQpsh0SZ9/4DJFnUSF+a4p8uzAVlgNfo6aU/r+I4lEsD8gzLKuxrfN0TgkwR1qmAjLWIy0yQ==", - "license": "MIT", - "dependencies": { - "react-dropzone": "15.0.0" - }, - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/form": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/form/-/form-9.2.1.tgz", - "integrity": "sha512-PV0dcbmsKhZkn3Ryztqp8Kb1N16v2nWXO71p4utTmN7E/lHWHO1ccj7Y72sIteWJo1YeNHzzkssaYRSnxgOvYA==", - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "fast-deep-equal": "^3.1.3", - "klona": "^2.0.6" - }, - "peerDependencies": { - "react": "^19.2.0" - } - }, - "node_modules/@mantine/hooks": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-9.2.1.tgz", - "integrity": "sha512-IX/ztVG9eWmQTRsN7G8odyW4JckNvN8qv5A2ULzXyazjtAKLuaUpuMz0c6XhRp10J0g4bVfV3rhrTgWeImqxqg==", - "license": "MIT", - "peerDependencies": { - "react": "^19.2.0" - } - }, - "node_modules/@mantine/modals": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-9.2.1.tgz", - "integrity": "sha512-YvZ85ZtMg6arFserkmmP18gJRD9ztLLT3vz8UrkwCdVwTGGr14X93hhS0UtR5X96ANXUzC8fU/S2ncQmNqw+NQ==", - "license": "MIT", - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/notifications": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-9.2.1.tgz", - "integrity": "sha512-H6lSsKUPdWPYcXFeOcqqcegUl72Iua9yD369s/gchfDvI+PrL4IM5UuWNHTeABJ1eb9FbTOw8B5RDSMZjTZNSA==", - "license": "MIT", - "dependencies": { - "@mantine/store": "9.2.1", - "react-transition-group": "4.4.5" - }, - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/spotlight": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-9.2.1.tgz", - "integrity": "sha512-D6/BJ8/ftUBwiSFGTtYUM/LqlBk40XZqZFlmEFRM8chDPzEId1O+5FU7mj8KapPR9zRgoAcdT4LMI6JaLp0c0A==", - "license": "MIT", - "dependencies": { - "@mantine/store": "9.2.1" - }, - "peerDependencies": { - "@mantine/core": "9.2.1", - "@mantine/hooks": "9.2.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" - } - }, - "node_modules/@mantine/store": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/store/-/store-9.2.1.tgz", - "integrity": "sha512-sBTHt9ilfSZAeXQlqFkm8nRm22RunhevxuOUtdSwS9HhuMuS8T27dRRgbdKH2oEFUbaccdQSy5bHbmGbEgVO8w==", - "license": "MIT", - "peerDependencies": { - "react": "^19.2.0" - } - }, - "node_modules/@mantine/vanilla-extract": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@mantine/vanilla-extract/-/vanilla-extract-9.2.1.tgz", - "integrity": "sha512-5cNesX5kdmClWCMFqxDIVZF2JRCne2OrIj5UE3tuyGJAY3IGkchBnAf/bEx3c5QDSXxq4+6y97hs5gQBgODePA==", - "license": "MIT", - "peerDependencies": { - "@mantine/core": "9.2.1" - } - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "license": "MIT" - }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", - "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", - "license": "MIT" - }, - "node_modules/@messageformat/parser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", - "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", - "license": "MIT", - "dependencies": { - "moo": "^0.5.1" - } - }, - "node_modules/@microsoft/api-extractor": { - "version": "7.58.7", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.58.7.tgz", - "integrity": "sha512-yK6OycD46gIzLRpj6ueVUWPk1ACSpkN1LBo05gY1qPTylbWyUCanXfH7+VgkI5LJrJoRSQR5F04XuCffCXLOBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/api-extractor-model": "7.33.8", - "@microsoft/tsdoc": "~0.16.0", - "@microsoft/tsdoc-config": "~0.18.1", - "@rushstack/node-core-library": "5.23.1", - "@rushstack/rig-package": "0.7.3", - "@rushstack/terminal": "0.24.0", - "@rushstack/ts-command-line": "5.3.9", - "diff": "~8.0.2", - "minimatch": "10.2.3", - "resolve": "~1.22.1", - "semver": "~7.7.4", - "source-map": "~0.6.1", - "typescript": "5.9.3" - }, - "bin": { - "api-extractor": "bin/api-extractor" - } - }, - "node_modules/@microsoft/api-extractor-model": { - "version": "7.33.8", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.8.tgz", - "integrity": "sha512-aIcoQggPyer3B6Ze3usz0YWC/oBwUHfRH5ETUsr+oT2BRA6SfTJl7IKPcPZkX4UR+PohowzW4uMxsvjrn8vm+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "~0.16.0", - "@microsoft/tsdoc-config": "~0.18.1", - "@rushstack/node-core-library": "5.23.1" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/minimatch": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", - "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@microsoft/tsdoc": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", - "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.1.tgz", - "integrity": "sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.16.0", - "ajv": "~8.18.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@noble/hashes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", - "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", - "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.133.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", - "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@playwright/test": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", - "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.60.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", - "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", - "immer": "^11.0.0", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@reduxjs/toolkit/node_modules/immer": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", - "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/@remix-run/router": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", - "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", - "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", - "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", - "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", - "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", - "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", - "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", - "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", - "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", - "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", - "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", - "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", - "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", - "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", - "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", - "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", - "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz", - "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz", - "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz", - "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz", - "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz", - "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz", - "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz", - "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz", - "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz", - "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz", - "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz", - "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz", - "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz", - "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz", - "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz", - "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz", - "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz", - "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz", - "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz", - "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz", - "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz", - "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz", - "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz", - "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz", - "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz", - "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rushstack/node-core-library": { - "version": "5.23.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.23.1.tgz", - "integrity": "sha512-wlKmIKIYCKuCASbITvOxLZXepPbwXvrv7S6ig6XNWFchSyhL/E2txmVXspHY49Wu2dzf7nI27a2k/yV5BA3EiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "~8.18.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~11.3.0", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.7.4" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/node-core-library/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rushstack/problem-matcher": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz", - "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/rig-package": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.3.tgz", - "integrity": "sha512-aAA518n6wxxjCfnTAOjQnm7ngNE0FVHxHAw2pxKlIhxrMn0XQjGcXKF0oKWpjBgJOmsaJpVob/v+zr3zxgPWuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jju": "~1.4.0", - "resolve": "~1.22.1" - } - }, - "node_modules/@rushstack/terminal": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.24.0.tgz", - "integrity": "sha512-8ZQS4MMaGsv27EXCBiH7WMPkRZrffeDoIevs6z9TM5dzqiY6+Hn4evfK/G+gvgBTjfvfkHIZPQQmalmI2sM4TQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rushstack/node-core-library": "5.23.1", - "@rushstack/problem-matcher": "0.2.1", - "supports-color": "~8.1.1" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/terminal/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@rushstack/ts-command-line": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.9.tgz", - "integrity": "sha512-GIHqU+sRGQ3LGWAZu1O+9Yh++qwtyNIIGuNbcWHJjBTm2qRez0cwINUHZ+pQLR8UuzZDcMajrDaNbUYoaL/XtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rushstack/terminal": "0.24.0", - "@types/argparse": "1.0.38", - "argparse": "~1.0.9", - "string-argv": "~0.3.1" - } - }, - "node_modules/@rushstack/ts-command-line/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@sentry-internal/browser-utils": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.46.0.tgz", - "integrity": "sha512-WB1gBT9G13V02ekZ6NpUhoI1aGHV2eNfjEPthkU2bGBvFpQKnstwzjg7waIRGR7cu+YSW2Q6UI6aQLgBeOPD1g==", - "license": "MIT", - "dependencies": { - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry-internal/feedback": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.46.0.tgz", - "integrity": "sha512-c4pI/z9nZCQXe9GYEw/hE/YTY9AxGBp8/wgKI+T8zylrN35SGHaXv63szzE1WbI8lacBY8lBF7rstq9bQVCaHw==", - "license": "MIT", - "dependencies": { - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry-internal/replay": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.46.0.tgz", - "integrity": "sha512-JBsWeXG6bRbxBFK8GzWymWGOB9QE7Kl57BeF3jzgdHTuHSWZ2mRnAmb1K05T4LU+gVygk6yW0KmdC8Py9Qzg9A==", - "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "10.46.0", - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.46.0.tgz", - "integrity": "sha512-ub314MWUsekVCuoH0/HJbbimlI24SkV745UW2pj9xRbxOAEf1wjkmIzxKrMDbTgJGuEunug02XZVdJFJUzOcDw==", - "license": "MIT", - "dependencies": { - "@sentry-internal/replay": "10.46.0", - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/browser": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.46.0.tgz", - "integrity": "sha512-80DmGlTk5Z2/OxVOzLNxwolMyouuAYKqG8KUcoyintZqHbF6kO1RulI610HmyUt3OagKeBCqt9S7w0VIfCRL+Q==", - "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "10.46.0", - "@sentry-internal/feedback": "10.46.0", - "@sentry-internal/replay": "10.46.0", - "@sentry-internal/replay-canvas": "10.46.0", - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/core": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.46.0.tgz", - "integrity": "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/react": { - "version": "10.46.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.46.0.tgz", - "integrity": "sha512-Rb1S+9OuUPVwsz7GWnQ6Kgf3azbsseUymIegg3JZHNcW/fM1nPpaljzTBnuineia113DH0pgMBcdrrZDLaosFQ==", - "license": "MIT", - "dependencies": { - "@sentry/browser": "10.46.0", - "@sentry/core": "10.46.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.14.0 || 17.x || 18.x || 19.x" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", - "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "license": "MIT" - }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", - "license": "MIT" - }, - "node_modules/@tabler/icons": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.40.0.tgz", - "integrity": "sha512-V/Q4VgNPKubRTiLdmWjV/zscYcj5IIk+euicUtaVVqF6luSC9rDngYWgST5/yh3Mrg/mYUwRv1YVTk71Jp0twQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/codecalm" - } - }, - "node_modules/@tabler/icons-react": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.40.0.tgz", - "integrity": "sha512-oO5+6QCnna4a//mYubx4euZfECtzQZFDGsDMIdzZUhbdyBCT+3bRVFBPueGIcemWld4Vb/0UQ39C/cmGfGylAg==", - "license": "MIT", - "dependencies": { - "@tabler/icons": "3.40.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/codecalm" - }, - "peerDependencies": { - "react": ">= 16" - } - }, - "node_modules/@tanstack/query-core": { - "version": "5.95.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", - "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "5.95.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", - "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", - "license": "MIT", - "dependencies": { - "@tanstack/query-core": "5.95.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^18 || ^19" - } - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/argparse": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", - "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/codemirror": { - "version": "5.60.17", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.17.tgz", - "integrity": "sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==", - "license": "MIT", - "dependencies": { - "@types/tern": "*" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/marked": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", - "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", - "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/qrcode": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.6.tgz", - "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "license": "MIT", - "dependencies": { - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.2.0" - } - }, - "node_modules/@types/react-grid-layout": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.6.tgz", - "integrity": "sha512-Cw7+sb3yyjtmxwwJiXtEXcu5h4cgs+sCGkHwHXsFmPyV30bf14LeD/fa2LwQovuD2HWxCcjIdNhDlcYGj95qGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-window": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.8.tgz", - "integrity": "sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/tern": { - "version": "0.23.9", - "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", - "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.25.9", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.9.tgz", - "integrity": "sha512-QFAqr+pu6lDmNpAlecODcF49TlsrZ0bj15zPzfhiqSDl+Um3EsDLFLppixC7kFLn+rdDM2LTvVjn5CPvefpRgw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/autocomplete": ">=6.0.0", - "@codemirror/commands": ">=6.0.0", - "@codemirror/language": ">=6.0.0", - "@codemirror/lint": ">=6.0.0", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/codemirror-theme-vscode": { - "version": "4.25.9", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.25.9.tgz", - "integrity": "sha512-9KTnScHTSk97yGnyNYvDm6QZuBCdbO1OzMQ5bHtoBSPSVtH0LjY3bS6CXsBagb22v8OLPx/XwrBYOjKFp409CQ==", - "license": "MIT", - "dependencies": { - "@uiw/codemirror-themes": "4.25.9" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - } - }, - "node_modules/@uiw/codemirror-themes": { - "version": "4.25.9", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.25.9.tgz", - "integrity": "sha512-DAHKb/L9ELwjY4nCf/MP/mIllHOn4GQe7RR4x8AMJuNeh9nGRRoo1uPxrxMmUL/bKqe6kDmDbIZ2AlhlqyIJuw==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/language": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/react-codemirror": { - "version": "4.25.9", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.9.tgz", - "integrity": "sha512-HftqCBUYShAOH0pGi1CHP8vfm5L8fQ3+0j0VI6lQD6QpK+UBu3J7nxfEN5O/BXMilMNf9ZyFJRvRcuMMOLHMng==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.25.9", - "codemirror": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.11.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.0.0", - "codemirror": ">=6.0.0", - "react": ">=17.0.0", - "react-dom": ">=17.0.0" - } - }, - "node_modules/@uiw/react-split": { - "version": "5.9.4", - "resolved": "https://registry.npmjs.org/@uiw/react-split/-/react-split-5.9.4.tgz", - "integrity": "sha512-gZbMMAV9xFDJQ3aKAzMXVvQfrCFWPILvxFGM2DSdIvhKwjSWP+yTl8fNI246Nu3XR4iHyB4Cohh9JJZEbfIXjQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@vanilla-extract/babel-plugin-debug-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.2.2.tgz", - "integrity": "sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.9" - } - }, - "node_modules/@vanilla-extract/compiler": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/compiler/-/compiler-0.6.0.tgz", - "integrity": "sha512-FlZM8s/h1obGHdYSTo05iIXUr6hsNvoE/okv/e9Sq7GN+niofhUKyuZPSwZNVYMK49xxeWNH9mopOlGRRPV4mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vanilla-extract/css": "^1.20.0", - "@vanilla-extract/integration": "^8.0.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "vite-node": "^3.2.2 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@vanilla-extract/css": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.20.0.tgz", - "integrity": "sha512-yKuajXFlghIjRZmEfy95z6MYj+mzJPoD3nbNLVAUB8Np6I1P9g5vBlznQPD+0A46osCn0za/wIvp/cg8HU3aig==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.0", - "@vanilla-extract/private": "^1.0.9", - "css-what": "^6.1.0", - "cssesc": "^3.0.0", - "csstype": "^3.2.3", - "dedent": "^1.5.3", - "deep-object-diff": "^1.1.9", - "deepmerge": "^4.2.2", - "lru-cache": "^10.4.3", - "media-query-parser": "^2.0.2", - "modern-ahocorasick": "^1.0.0", - "picocolors": "^1.0.0" - } - }, - "node_modules/@vanilla-extract/css/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@vanilla-extract/integration": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-8.0.9.tgz", - "integrity": "sha512-NP+CSo5IYHDmkMMy5vAxY4R9i2+CAg4sxgvVaxuHiuY9q30i6dNUTujNNKZGW2urEkd4HVVI6NggeIyYjbGPwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/plugin-syntax-typescript": "^7.23.3", - "@vanilla-extract/babel-plugin-debug-ids": "^1.2.2", - "@vanilla-extract/css": "^1.19.1", - "dedent": "^1.5.3", - "esbuild": "npm:esbuild@>=0.17.6 <0.28.0", - "eval": "0.1.8", - "find-up": "^5.0.0", - "javascript-stringify": "^2.0.1", - "mlly": "^1.4.2" - } - }, - "node_modules/@vanilla-extract/private": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.9.tgz", - "integrity": "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==", - "license": "MIT" - }, - "node_modules/@vanilla-extract/vite-plugin": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-5.2.1.tgz", - "integrity": "sha512-1dmCgmTmls/c4G+t453vZIzZ+82ftr+JC2J48C1drVkiwtZ7DscYSIko9Ci0CyDptBLWz5EO9fWnqzfHnns8tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vanilla-extract/compiler": "^0.6.0", - "@vanilla-extract/integration": "^8.0.9" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", - "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.29.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-rc.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.18.0" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", - "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/source-map": "2.4.28" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", - "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@volar/typescript": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", - "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.28", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz", - "integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.2", - "@vue/shared": "3.5.31", - "entities": "^7.0.1", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz", - "integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.31", - "@vue/shared": "3.5.31" - } - }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/@vue/language-core": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", - "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "~2.4.11", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^0.4.9", - "minimatch": "^9.0.3", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/language-core/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vue/language-core/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@vue/language-core/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz", - "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==", - "dev": true, - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/alien-signals": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", - "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "devOptional": true, - "license": "Python-2.0" - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/attr-accept": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", - "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", - "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/babel-plugin-macros/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.32", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", - "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", - "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", - "devOptional": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cac": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", - "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001793", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", - "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", - "devOptional": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", - "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", - "dev": true, - "dependencies": { - "colors": "1.0.3" - }, - "engines": { - "node": ">= 0.2.0" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/codemirror": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", - "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "node_modules/codemirror-spell-checker": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", - "integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==", - "license": "MIT", - "dependencies": { - "typo-js": "*" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/commenting": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", - "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/compare-versions": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", - "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", - "dev": true, - "license": "MIT" - }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", - "license": "MIT", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/dayjs": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", - "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", - "license": "MIT" - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/dedent": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", - "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-object-diff": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", - "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/diff": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", - "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", - "license": "MIT" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dompurify": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", - "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/easymde": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/easymde/-/easymde-2.20.0.tgz", - "integrity": "sha512-V1Z5f92TfR42Na852OWnIZMbM7zotWQYTddNaLYZFVKj7APBbyZ3FYJ27gBw2grMW3R6Qdv9J8n5Ij7XRSIgXQ==", - "license": "MIT", - "dependencies": { - "@types/codemirror": "^5.60.10", - "@types/marked": "^4.0.7", - "codemirror": "^5.65.15", - "codemirror-spell-checker": "1.1.2", - "marked": "^4.1.0" - } - }, - "node_modules/easymde/node_modules/codemirror": { - "version": "5.65.21", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.21.tgz", - "integrity": "sha512-6teYk0bA0nR3QP0ihGMoxuKzpl5W80FpnHpBJpgy66NK3cZv5b/d/HY8PnRvfSsCG1MTfr92u2WUl+wT0E40mQ==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.361", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", - "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/embla-carousel": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", - "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", - "license": "MIT" - }, - "node_modules/embla-carousel-react": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", - "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", - "license": "MIT", - "dependencies": { - "embla-carousel": "8.6.0", - "embla-carousel-reactive-utils": "8.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/embla-carousel-reactive-utils": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", - "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", - "license": "MIT", - "peerDependencies": { - "embla-carousel": "8.6.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-toolkit": { - "version": "1.45.1", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.45.1.tgz", - "integrity": "sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==", - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/espree": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", - "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.16.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" - }, - "node_modules/exsolve": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", - "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-equals": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", - "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/file-selector": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", - "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", - "license": "MIT", - "dependencies": { - "tslib": "^2.7.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", - "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fuse.js": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", - "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", - "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/html5-qrcode": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.3.8.tgz", - "integrity": "sha512-jsr4vafJhwoLVEDW3n1KvPnCCXWaQfRng0/EEYk1vNcQGcG/htAdhJX0be8YyqMoSz7+hZvOZSTAepsabiuhiQ==", - "license": "Apache-2.0" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/immer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", - "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", - "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-observable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", - "integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-3.0.0.tgz", - "integrity": "sha512-P7nLXRRlo7Sqinty6lNa7+4o9jBUYGpqtejqCOZKfgXlRoxY/QArflcB86YO500Ahj4pDJEG34JjMRbQgePLnQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^9.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "devOptional": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-sha256": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.10.1.tgz", - "integrity": "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==", - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "devOptional": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", - "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/local-pkg": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", - "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mlly": "^1.7.4", - "pkg-types": "^2.3.0", - "quansync": "^0.2.11" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/local-pkg/node_modules/confbox": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", - "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/local-pkg/node_modules/pkg-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", - "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.2.2", - "exsolve": "^1.0.7", - "pathe": "^2.0.3" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "devOptional": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mantine-contextmenu": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/mantine-contextmenu/-/mantine-contextmenu-9.2.1.tgz", - "integrity": "sha512-oqFPT9qOQBPgf2eSuiujGQp38QgV0WsIIMxQkPfkjVc8FWAKcnXv7OGxGN1ctRrcMqUbsS34rjI0SvNdmFwG8A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/icflorescu" - }, - "peerDependencies": { - "@mantine/core": ">=9", - "@mantine/hooks": ">=9", - "clsx": ">=2", - "react": ">=19", - "react-dom": ">=19" - } - }, - "node_modules/mantine-datatable": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mantine-datatable/-/mantine-datatable-9.2.0.tgz", - "integrity": "sha512-TK6SZ6dH/PQUedfhkJuSLMcd4P4m5L6kMJWfAF9cS4wBeoAtBWGpLs+n/E8yI6w1rYAtLsGQvFA6S9Xnfw0JFw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/icflorescu" - }, - "peerDependencies": { - "@mantine/core": ">=9.0", - "@mantine/hooks": ">=9.0", - "clsx": ">=2", - "react": ">=19", - "react-dom": ">=19" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-query-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", - "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - } - }, - "node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mlly": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", - "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.16.0", - "pathe": "^2.0.3", - "pkg-types": "^1.3.1", - "ufo": "^1.6.3" - } - }, - "node_modules/modern-ahocorasick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz", - "integrity": "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==", - "license": "MIT" - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/moo": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz", - "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==", - "license": "BSD-3-Clause" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", - "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-18.0.0.tgz", - "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/observable-fns": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz", - "integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==", - "dev": true, - "license": "MIT" - }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/otpauth": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.5.0.tgz", - "integrity": "sha512-Ldhc6UYl4baR5toGr8nfKC+L/b8/RgHKoIixAebgoNGzUUCET02g04rMEZ2ZsPfeVQhMHcuaOgb28nwMr81zCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "2.0.1" - }, - "funding": { - "url": "https://github.com/hectorm/otpauth?sponsor=1" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/package-name-regex": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", - "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/dword-design" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.0.tgz", - "integrity": "sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/playwright": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", - "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.60.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pofile": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/pofile/-/pofile-1.1.4.tgz", - "integrity": "sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/preact": { - "version": "10.12.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", - "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-on-spawn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", - "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/pseudolocale": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pseudolocale/-/pseudolocale-2.2.0.tgz", - "integrity": "sha512-O+D2eU7fO9wVLqrohvt9V/9fwMadnJQ4jxwiK+LeNEqhMx8JYx4xQHkArDCJFAdPPOp/pQq6z5L37eBvAoc8jw==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^10.0.0" - }, - "bin": { - "pseudolocale": "dist/cli.mjs" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/qrcode": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", - "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", - "license": "MIT", - "dependencies": { - "dijkstrajs": "^1.0.1", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/quansync": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", - "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/antfu" - }, - { - "type": "individual", - "url": "https://github.com/sponsors/sxzz" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.4" - } - }, - "node_modules/react-draggable": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", - "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", - "license": "MIT", - "dependencies": { - "clsx": "^2.1.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-dropzone": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-15.0.0.tgz", - "integrity": "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==", - "license": "MIT", - "dependencies": { - "attr-accept": "^2.2.4", - "file-selector": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "react": ">= 16.8 || 18.0.0" - } - }, - "node_modules/react-grid-layout": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz", - "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", - "license": "MIT", - "dependencies": { - "clsx": "^2.0.0", - "fast-equals": "^4.0.3", - "prop-types": "^15.8.1", - "react-draggable": "^4.4.5", - "react-resizable": "^3.0.5", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-hook-form": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.72.0.tgz", - "integrity": "sha512-V4v6jubaf6JAurEaVnT9aUPKFbNtDgohj5CIgVGyPHvT9wRx5OZHVjz31GsxnPNI278XMu+ruFz+wGOscHaLKw==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18 || ^19" - } - }, - "node_modules/react-is": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", - "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", - "license": "MIT" - }, - "node_modules/react-number-format": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.5.tgz", - "integrity": "sha512-y8O2yHHj3w0aE9XO8d2BCcUOOdQTRSVq+WIuMlLVucAm5XNjJAy+BoOJiuQMldVYVOKTMyvVNfnbl2Oqp+YxGw==", - "license": "MIT", - "peerDependencies": { - "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-redux": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", - "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "use-sync-external-store": "^1.4.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25 || ^19", - "react": "^18.0 || ^19", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-refresh": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", - "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-resizable": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.1.3.tgz", - "integrity": "sha512-liJBNayhX7qA4tBJiBD321FDhJxgGTJ07uzH5zSORXoE8h7PyEZ8mLqmosST7ppf6C4zUsbd2gzDMmBCfFp9Lw==", - "license": "MIT", - "dependencies": { - "prop-types": "15.x", - "react-draggable": "^4.5.0" - }, - "peerDependencies": { - "react": ">= 16.3", - "react-dom": ">= 16.3" - } - }, - "node_modules/react-router": { - "version": "6.30.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", - "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.30.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", - "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.2", - "react-router": "6.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-select": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.2.tgz", - "integrity": "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.8.1", - "@floating-ui/dom": "^1.0.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^6.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0", - "use-isomorphic-layout-effect": "^1.2.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-simplemde-editor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-simplemde-editor/-/react-simplemde-editor-5.2.0.tgz", - "integrity": "sha512-GkTg1MlQHVK2Rks++7sjuQr/GVS/xm6y+HchZ4GPBWrhcgLieh4CjK04GTKbsfYorSRYKa0n37rtNSJmOzEDkQ==", - "license": "MIT", - "dependencies": { - "@types/codemirror": "~5.60.5" - }, - "peerDependencies": { - "easymde": ">= 2.0.0 < 3.0.0", - "react": ">=16.8.2", - "react-dom": ">=16.8.2" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-window": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", - "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-window/node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "license": "MIT" - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recharts": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.8.1.tgz", - "integrity": "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==", - "license": "MIT", - "workspaces": [ - "www" - ], - "dependencies": { - "@reduxjs/toolkit": "^1.9.0 || 2.x.x", - "clsx": "^2.1.1", - "decimal.js-light": "^2.5.1", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "immer": "^10.1.1", - "react-redux": "8.x.x || 9.x.x", - "reselect": "5.1.1", - "tiny-invariant": "^1.3.3", - "use-sync-external-store": "^1.2.2", - "victory-vendor": "^37.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, - "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", - "license": "MIT" - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/rimraf": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", - "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rolldown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", - "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.133.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.3", - "@rolldown/binding-darwin-arm64": "1.0.3", - "@rolldown/binding-darwin-x64": "1.0.3", - "@rolldown/binding-freebsd-x64": "1.0.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", - "@rolldown/binding-linux-arm64-gnu": "1.0.3", - "@rolldown/binding-linux-arm64-musl": "1.0.3", - "@rolldown/binding-linux-ppc64-gnu": "1.0.3", - "@rolldown/binding-linux-s390x-gnu": "1.0.3", - "@rolldown/binding-linux-x64-gnu": "1.0.3", - "@rolldown/binding-linux-x64-musl": "1.0.3", - "@rolldown/binding-openharmony-arm64": "1.0.3", - "@rolldown/binding-wasm32-wasi": "1.0.3", - "@rolldown/binding-win32-arm64-msvc": "1.0.3", - "@rolldown/binding-win32-x64-msvc": "1.0.3" - } - }, - "node_modules/rolldown/node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", - "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.0", - "@rollup/rollup-android-arm64": "4.60.0", - "@rollup/rollup-darwin-arm64": "4.60.0", - "@rollup/rollup-darwin-x64": "4.60.0", - "@rollup/rollup-freebsd-arm64": "4.60.0", - "@rollup/rollup-freebsd-x64": "4.60.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", - "@rollup/rollup-linux-arm-musleabihf": "4.60.0", - "@rollup/rollup-linux-arm64-gnu": "4.60.0", - "@rollup/rollup-linux-arm64-musl": "4.60.0", - "@rollup/rollup-linux-loong64-gnu": "4.60.0", - "@rollup/rollup-linux-loong64-musl": "4.60.0", - "@rollup/rollup-linux-ppc64-gnu": "4.60.0", - "@rollup/rollup-linux-ppc64-musl": "4.60.0", - "@rollup/rollup-linux-riscv64-gnu": "4.60.0", - "@rollup/rollup-linux-riscv64-musl": "4.60.0", - "@rollup/rollup-linux-s390x-gnu": "4.60.0", - "@rollup/rollup-linux-x64-gnu": "4.60.0", - "@rollup/rollup-linux-x64-musl": "4.60.0", - "@rollup/rollup-openbsd-x64": "4.60.0", - "@rollup/rollup-openharmony-arm64": "4.60.0", - "@rollup/rollup-win32-arm64-msvc": "4.60.0", - "@rollup/rollup-win32-ia32-msvc": "4.60.0", - "@rollup/rollup-win32-x64-gnu": "4.60.0", - "@rollup/rollup-win32-x64-msvc": "4.60.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-license": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.7.1.tgz", - "integrity": "sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "commenting": "^1.1.0", - "fdir": "^6.4.3", - "lodash": "^4.17.21", - "magic-string": "^0.30.0", - "moment": "^2.30.1", - "package-name-regex": "^2.0.6", - "spdx-expression-validate": "^2.0.0", - "spdx-satisfies": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/rollup-plugin-license/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-license/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "devOptional": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true, - "license": "MIT" - }, - "node_modules/spawn-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-3.0.0.tgz", - "integrity": "sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/spawn-wrap/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/spdx-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-expression-validate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", - "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", - "dev": true, - "license": "(MIT AND CC-BY-3.0)", - "dependencies": { - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/spdx-ranges": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", - "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", - "dev": true, - "license": "(MIT AND CC-BY-3.0)" - }, - "node_modules/spdx-satisfies": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", - "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/style-mod": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", - "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", - "license": "MIT" - }, - "node_modules/styled-components": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.4.2.tgz", - "integrity": "sha512-xZBhBJsMtGqb+aKcwKgaT+BtuFums9VynX2JRvXJGTx5UfZzN12rk5r4nVdhXYvRw+hE7yiYxVrOqJZaK2+Txg==", - "license": "MIT", - "dependencies": { - "@emotion/is-prop-valid": "1.4.0", - "css-to-react-native": "3.2.0", - "csstype": "3.2.3", - "stylis": "4.3.6" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "css-to-react-native": ">= 3.2.0", - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-native": ">= 0.68.0" - }, - "peerDependenciesMeta": { - "css-to-react-native": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/styled-components/node_modules/stylis": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", - "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", - "license": "MIT" - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tabbable": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", - "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", - "license": "MIT" - }, - "node_modules/tagged-tag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", - "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-8.0.0.tgz", - "integrity": "sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/threads": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz", - "integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.1.0", - "debug": "^4.2.0", - "is-observable": "^2.1.0", - "observable-fns": "^0.6.1" - }, - "funding": { - "url": "https://github.com/andywer/threads.js?sponsor=1" - }, - "optionalDependencies": { - "tiny-worker": ">= 2" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tiny-worker": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", - "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "esm": "^3.2.25" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-fest": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", - "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", - "license": "(MIT OR CC0-1.0)", - "dependencies": { - "tagged-tag": "^1.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typo-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.3.1.tgz", - "integrity": "sha512-elJkpCL6Z77Ghw0Lv0lGnhBAjSTOQ5FhiVOCfOuxhaoTT2xtLVbqikYItK5HHchzPbHEUFAcjOH669T2ZzeCbg==", - "license": "BSD-3-Clause" - }, - "node_modules/ufo": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", - "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", - "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unplugin": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", - "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "devOptional": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", - "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/victory-vendor": { - "version": "37.3.6", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", - "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/vite": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", - "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-6.0.0.tgz", - "integrity": "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^7.0.0", - "es-module-lexer": "^2.0.0", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "vite": "^8.0.0" - }, - "bin": { - "vite-node": "dist/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://opencollective.com/antfu" - } - }, - "node_modules/vite-node/node_modules/@esbuild/aix-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/vite-node/node_modules/esbuild": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", - "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.0", - "@esbuild/android-arm": "0.28.0", - "@esbuild/android-arm64": "0.28.0", - "@esbuild/android-x64": "0.28.0", - "@esbuild/darwin-arm64": "0.28.0", - "@esbuild/darwin-x64": "0.28.0", - "@esbuild/freebsd-arm64": "0.28.0", - "@esbuild/freebsd-x64": "0.28.0", - "@esbuild/linux-arm": "0.28.0", - "@esbuild/linux-arm64": "0.28.0", - "@esbuild/linux-ia32": "0.28.0", - "@esbuild/linux-loong64": "0.28.0", - "@esbuild/linux-mips64el": "0.28.0", - "@esbuild/linux-ppc64": "0.28.0", - "@esbuild/linux-riscv64": "0.28.0", - "@esbuild/linux-s390x": "0.28.0", - "@esbuild/linux-x64": "0.28.0", - "@esbuild/netbsd-arm64": "0.28.0", - "@esbuild/netbsd-x64": "0.28.0", - "@esbuild/openbsd-arm64": "0.28.0", - "@esbuild/openbsd-x64": "0.28.0", - "@esbuild/openharmony-arm64": "0.28.0", - "@esbuild/sunos-x64": "0.28.0", - "@esbuild/win32-arm64": "0.28.0", - "@esbuild/win32-ia32": "0.28.0", - "@esbuild/win32-x64": "0.28.0" - } - }, - "node_modules/vite-node/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/vite-node/node_modules/vite": { - "version": "8.0.16", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", - "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.3", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-plugin-babel-macros": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vite-plugin-babel-macros/-/vite-plugin-babel-macros-1.0.6.tgz", - "integrity": "sha512-7cCT8jtu5UjpE46pH7RyVltWw5FbhDAtQliZ6QGqRNR5RUZKdAsB0CDjuF+VBoDpnl0KuESPu22SoNqXRYYWyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.17.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7", - "@types/babel__core": "^7.1.18", - "babel-plugin-macros": "^3.1.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "vite": ">=2" - } - }, - "node_modules/vite-plugin-dts": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz", - "integrity": "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/api-extractor": "^7.50.1", - "@rollup/pluginutils": "^5.1.4", - "@volar/typescript": "^2.4.11", - "@vue/language-core": "2.2.0", - "compare-versions": "^6.1.1", - "debug": "^4.4.0", - "kolorist": "^1.8.0", - "local-pkg": "^1.0.0", - "magic-string": "^0.30.17" - }, - "peerDependencies": { - "typescript": "*", - "vite": "*" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/vite-plugin-externals": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/vite-plugin-externals/-/vite-plugin-externals-0.6.2.tgz", - "integrity": "sha512-R5oVY8xDJjLXLTs2XDYzvYbc/RTZuIwOx2xcFbYf+/VXB6eJuatDgt8jzQ7kZ+IrgwQhe6tU8U2fTyy72C25CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.4.0", - "es-module-lexer": "^0.4.1", - "fs-extra": "^10.0.0", - "magic-string": "^0.25.7" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, - "node_modules/vite-plugin-externals/node_modules/es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite-plugin-externals/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-plugin-externals/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/vite-plugin-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-istanbul/-/vite-plugin-istanbul-8.0.0.tgz", - "integrity": "sha512-r6L7cg2iwPqNnY/rWFyemWeDTIKRZjekEWS90e2FsTjDYH4UdTS6hvW1nEX1B++PKPCnqCaj5BJTDn5Cy5jYoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.29.1", - "@istanbuljs/load-nyc-config": "^1.1.0", - "@types/babel__generator": "7.27.0", - "espree": "^11.2.0", - "istanbul-lib-instrument": "^6.0.3", - "picocolors": "^1.1.1", - "source-map": "^0.7.6", - "test-exclude": "^8.0.0" - }, - "peerDependencies": { - "vite": ">=4" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/vscode-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", - "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "license": "ISC" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zustand": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz", - "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } - } - } + "name": "@inventreedb/ui", + "version": "1.4.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@inventreedb/ui", + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.20.1", + "@codemirror/lang-liquid": "^6.3.2", + "@codemirror/language": "^6.12.2", + "@codemirror/lint": "^6.9.5", + "@codemirror/search": "^6.6.0", + "@codemirror/state": "^6.6.0", + "@codemirror/theme-one-dark": "^6.1.3", + "@codemirror/view": "^6.40.0", + "@emotion/react": "^11.13.3", + "@fortawesome/fontawesome-svg-core": "^7.0.0", + "@fortawesome/free-regular-svg-icons": "^7.0.0", + "@fortawesome/free-solid-svg-icons": "^7.0.0", + "@fortawesome/react-fontawesome": "^3.0.1", + "@fullcalendar/core": "^6.1.15", + "@fullcalendar/daygrid": "^6.1.15", + "@fullcalendar/interaction": "^6.1.15", + "@fullcalendar/react": "^6.1.15", + "@github/webauthn-json": "^2.1.1", + "@lingui/core": "^5.9.2", + "@lingui/react": "^5.9.2", + "@mantine/carousel": "^9.2.1", + "@mantine/charts": "^9.2.1", + "@mantine/core": "^9.2.1", + "@mantine/dates": "^9.2.1", + "@mantine/dropzone": "^9.2.1", + "@mantine/form": "^9.2.1", + "@mantine/hooks": "^9.2.1", + "@mantine/modals": "^9.2.1", + "@mantine/notifications": "^9.2.1", + "@mantine/spotlight": "^9.2.1", + "@mantine/vanilla-extract": "^9.2.1", + "@messageformat/date-skeleton": "^1.1.0", + "@sentry/react": "^10.43.0", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-query": "^5.56.2", + "@uiw/codemirror-theme-vscode": "^4.25.8", + "@uiw/react-codemirror": "^4.25.8", + "@uiw/react-split": "^5.9.4", + "@vanilla-extract/css": "^1.18.0", + "axios": "^1.13.6", + "clsx": "^2.1.1", + "codemirror": "^6.0.2", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", + "easymde": "^2.20.0", + "embla-carousel": "^8.5.2", + "embla-carousel-react": "^8.5.2", + "fuse.js": "^7.0.0", + "html5-qrcode": "^2.3.8", + "mantine-contextmenu": "^9.2.1", + "mantine-datatable": "^9.2.0", + "qrcode": "^1.5.4", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "react-grid-layout": "1.4.4", + "react-hook-form": "^7.62.0", + "react-is": "^19.2.4", + "react-router-dom": "^6.26.2", + "react-select": "^5.9.0", + "react-simplemde-editor": "^5.2.0", + "react-window": "1.8.11", + "recharts": "^3.1.2", + "styled-components": "^6.1.14", + "undici": "^6.24.0", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@babel/core": "^7.29.0", + "@babel/preset-react": "^7.28.5", + "@babel/preset-typescript": "^7.28.5", + "@babel/runtime": "^7.28.6", + "@codecov/vite-plugin": "^1.9.1", + "@lingui/babel-plugin-lingui-macro": "^5.9.2", + "@lingui/cli": "^5.9.2", + "@lingui/macro": "^5.9.2", + "@playwright/test": "^1.16.0", + "@types/node": "^25.5.0", + "@types/qrcode": "^1.5.5", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@types/react-grid-layout": "^1.3.5", + "@types/react-router-dom": "^5.3.3", + "@types/react-window": "^1.8.8", + "@vanilla-extract/vite-plugin": "^5.1.4", + "@vitejs/plugin-react": "^5.2.0", + "babel-plugin-macros": "^3.1.0", + "nyc": "^18.0.0", + "otpauth": "^9.4.1", + "path": "^0.12.7", + "rollup": "^4.59.0", + "rollup-plugin-license": "^3.7.0", + "typescript": "^5.9.3", + "vite": "^6.4.2", + "vite-plugin-babel-macros": "^1.0.6", + "vite-plugin-dts": "^4.5.4", + "vite-plugin-externals": "^0.6.2", + "vite-plugin-istanbul": "^8.0.0" + } + }, + "node_modules/@actions/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", + "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/exec": "^1.1.1", + "@actions/http-client": "^2.0.1" + } + }, + "node_modules/@actions/exec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/io": "^1.0.1" + } + }, + "node_modules/@actions/github": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", + "integrity": "sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.2.2", + "@octokit/plugin-rest-endpoint-methods": "^10.4.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "undici": "^5.28.5" + } + }, + "node_modules/@actions/github/node_modules/undici": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", + "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@actions/http-client/node_modules/undici": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@actions/io": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", + "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codecov/bundler-plugin-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.9.1.tgz", + "integrity": "sha512-dt3ic7gMswz4p/qdkYPVJwXlLiLsz55rBBn2I7mr0HTG8pCoLRqnANJIwo5WrqGBZgPyVSMPBqBra6VxLWfDyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/github": "^6.0.0", + "chalk": "4.1.2", + "semver": "^7.5.4", + "unplugin": "^1.10.1", + "zod": "^3.22.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@codecov/bundler-plugin-core/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@codecov/vite-plugin": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@codecov/vite-plugin/-/vite-plugin-1.9.1.tgz", + "integrity": "sha512-S6Yne7comVulJ1jD3T7rCfYFHPR0zUjAYoLjUDPXNJCUrdzWJdf/ak/UepE7TicqQG+yBa6eb5WusqcPgg+1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@codecov/bundler-plugin-core": "^1.9.1", + "unplugin": "^1.10.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "vite": "4.x || 5.x || 6.x" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", + "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.3.tgz", + "integrity": "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.6.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", + "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.1.7" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz", + "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.12" + } + }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", + "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-liquid": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.2.tgz", + "integrity": "sha512-6PDVU3ZnfeYyz1at1E/ttorErZvZFXXt1OPhtfe1EZJ2V2iDFa0CwPqPgG5F7NXN0yONGoBogKmFAafKTqlwIw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.1" + } + }, + "node_modules/@codemirror/language": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.3.tgz", + "integrity": "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.9.5", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", + "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.35.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", + "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.6.0.tgz", + "integrity": "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", + "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.40.0.tgz", + "integrity": "sha512-WA0zdU7xfF10+5I3HhUUq3kqOx3KjqmtQ9lqZjfK7jtYk4G72YW9rezcSywpaUMCWOMlq+6E0pO1IWg1TNIhtg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.6.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.19", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.19.tgz", + "integrity": "sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.8", + "@floating-ui/utils": "^0.2.11", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.2.0.tgz", + "integrity": "sha512-IpR0bER9FY25p+e7BmFH25MZKEwFHTfRAfhOyJubgiDnoJNsSvJ7nigLraHtp4VOG/cy8D7uiV0dLkHOne5Fhw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.2.0.tgz", + "integrity": "sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.2.0.tgz", + "integrity": "sha512-iycmlN51EULlQ4D/UU9WZnHiN0CvjJ2TuuCrAh+1MVdzD+4ViKYH2deNAll4XAAYlZa8WAefHR5taSK8hYmSMw==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.2.0.tgz", + "integrity": "sha512-YTVITFGN0/24PxzXrwqCgnyd7njDuzp5ZvaCx5nq/jg55kUYd94Nj8UTchBdBofi/L0nwRfjGOg0E41d2u9T1w==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-3.3.0.tgz", + "integrity": "sha512-EHmHeTf8WgO29sdY3iX/7ekE3gNUdlc2RW6mm/FzELlHFKfTrA9S4MlyquRR+RRCRCn8+jXfLFpLGB2l7wCWyw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~6 || ~7", + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@fullcalendar/core": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", + "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", + "license": "MIT", + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz", + "integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz", + "integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/react": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.20.tgz", + "integrity": "sha512-1w0pZtceaUdfAnxMSCGHCQalhi+mR1jOe76sXzyAXpcPz/Lf0zHSdcGK/U2XpZlnQgQtBZW+d+QBnnzVQKCxAA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20", + "react": "^16.7.0 || ^17 || ^18 || ^19", + "react-dom": "^16.7.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/@github/webauthn-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@github/webauthn-json/-/webauthn-json-2.1.1.tgz", + "integrity": "sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==", + "deprecated": "Deprecated: Modern browsers support built-in WebAuthn JSON methods. Please use native browser methods instead. For more information, visit https://github.com/github/webauthn-json", + "license": "MIT", + "bin": { + "webauthn-json": "dist/bin/main.js" + } + }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", + "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", + "license": "MIT" + }, + "node_modules/@lezer/css": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.3.tgz", + "integrity": "sha512-RzBo8r+/6QJeow7aPHIpGVIH59xTcJXp399820gZoMo9noQDRVpJLheIBUicYwKcsbOYoBRoLZlf2720dG/4Tg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/html": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", + "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/javascript": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", + "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lingui/babel-plugin-extract-messages": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-5.9.3.tgz", + "integrity": "sha512-zm6QHDILmhj8olgLL2zHQn18yFA5mf4hX7QzCr1OOI/e815I0IkecCYue1Ych+y+B+V0eLriiW8AcfpDRCQFFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/babel-plugin-lingui-macro": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-5.9.3.tgz", + "integrity": "sha512-fLMhBarRsuqBGOq2YuEoqOjEAV2VNezz/+f/Dn0vLFHF/kAjnFwTHb8pL8DRSIMsWG16mPrGnLpdROZBmJlFtA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/runtime": "^7.20.13", + "@babel/types": "^7.20.7", + "@lingui/conf": "5.9.3", + "@lingui/core": "5.9.3", + "@lingui/message-utils": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/cli": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-5.9.3.tgz", + "integrity": "sha512-KEE0J4eGlfpiLZ+l019qjraWfqfh5mUmQSJeTFw5PulO4v50zvxw5tDX8stpBzJ3QtgUQZlrMUh0OTGdURaAMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.0", + "@babel/generator": "^7.21.1", + "@babel/parser": "^7.22.0", + "@babel/runtime": "^7.21.0", + "@babel/types": "^7.21.2", + "@lingui/babel-plugin-extract-messages": "5.9.3", + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "@lingui/conf": "5.9.3", + "@lingui/core": "5.9.3", + "@lingui/format-po": "5.9.3", + "@lingui/message-utils": "5.9.3", + "chokidar": "3.5.1", + "cli-table": "^0.3.11", + "commander": "^10.0.0", + "convert-source-map": "^2.0.0", + "date-fns": "^3.6.0", + "esbuild": "^0.25.1", + "glob": "^11.0.0", + "micromatch": "^4.0.7", + "ms": "^2.1.3", + "normalize-path": "^3.0.0", + "ora": "^5.1.0", + "picocolors": "^1.1.1", + "pofile": "^1.1.4", + "pseudolocale": "^2.0.0", + "source-map": "^0.7.6", + "threads": "^1.7.0" + }, + "bin": { + "lingui": "dist/lingui.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/cli/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@lingui/conf": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-5.9.3.tgz", + "integrity": "sha512-hVEoYHmO2A3XmFX4A5RuBgcoVBoM7Xgoqejeq25XELvesJj2s2T15F47TA5n3/S7iTqngd6n/8KxBli9TYwgqQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "cosmiconfig": "^8.0.0", + "jest-validate": "^29.4.3", + "jiti": "^2.5.1", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/core": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/core/-/core-5.9.3.tgz", + "integrity": "sha512-3b8LnDjx8POdQ6q6UKBe2DHynyQFCO66vm8/UPQnvlQowUk4Xdu5bK6oet11D9/vrSznrDDS+Qb5JVcNBUImgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@lingui/message-utils": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/format-po": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-5.9.3.tgz", + "integrity": "sha512-+LMnhWl7EmXrdOv10gopE1g8w8vtPY5Fxk72OORrGQFVMGBIioz4BEnKrNdV1ek2M+GxoMZtnUs17KrJN5Jv9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lingui/conf": "5.9.3", + "@lingui/message-utils": "5.9.3", + "date-fns": "^3.6.0", + "pofile": "^1.1.4" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/macro": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-5.9.3.tgz", + "integrity": "sha512-xWqJ+hpp5T+xmE++VYlcfMxrF48LpY5Ak9N/luibY9d0AqvyYZiiv7Xaq7E2eK69v9CJWx+6eXA6uPhC8gHY+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lingui/core": "5.9.3", + "@lingui/react": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@lingui/message-utils": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.9.3.tgz", + "integrity": "sha512-oAK7HA7lcQrzaEaM6G1T5RwwxJxaSKfG/IFIxpZIl49TSFQv+s9YPNgHnVi+d4DmterpXNxy9ZZ+NtckJx6u7g==", + "license": "MIT", + "dependencies": { + "@messageformat/parser": "^5.0.0", + "js-sha256": "^0.10.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@lingui/react": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@lingui/react/-/react-5.9.3.tgz", + "integrity": "sha512-aje78l3zGGZ3C75fiGhDVKyVALHfiKlYFjcOlZpgXY/JAVfFuZX+6wUGG9x1A8k7BfxrDy/ofHIBahPvNAqoKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@lingui/core": "5.9.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@lingui/babel-plugin-lingui-macro": "5.9.3", + "babel-plugin-macros": "2 || 3", + "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@lingui/babel-plugin-lingui-macro": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@mantine/carousel": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-9.2.1.tgz", + "integrity": "sha512-b0ZBDnKhzztEFWNWbbFpPMqaV/4k/lclX8KB0PfU+qhu3Fa6wjS1VIn4XLZu9N3vgkzPkNXwDzpcwFShA9Uvqw==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "embla-carousel": ">=8.0.0", + "embla-carousel-react": ">=8.0.0", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/charts": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-9.2.1.tgz", + "integrity": "sha512-AVP0VEfcsbWwLBeU8rbEsN2gz3GebQECTreRq5AJ0Z5V1eWmTO7XFkRP9C5C6oHnkY4Vppa1x8cRYgyTsc/YbQ==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "recharts": ">=3.2.1" + } + }, + "node_modules/@mantine/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-9.2.1.tgz", + "integrity": "sha512-CicPg9i2dM2pGp1jj+dMiR/63OFDsPjgJke4v5+0nbfJ+C7gn4C+7ltrp4RIETDMZHcj0fFuDRG0qtbiyBxvWA==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.19", + "clsx": "^2.1.1", + "react-number-format": "^5.4.5", + "react-remove-scroll": "^2.7.2", + "type-fest": "^5.6.0" + }, + "peerDependencies": { + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/dates": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-9.2.1.tgz", + "integrity": "sha512-cyRC8bnZ6W+SzQf/RM+/eDeWhZTZF148z+OcgqiERdkAujh0q88Ddybv/Hshv1EOf0rCe6oiHSZWxIxmUf7KAg==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "dayjs": ">=1.0.0", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/dropzone": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-9.2.1.tgz", + "integrity": "sha512-rgebEz2bUubqA5jQpsh0SZ9/4DJFnUSF+a4p8uzAVlgNfo6aU/r+I4lEsD8gzLKuxrfN0TgkwR1qmAjLWIy0yQ==", + "license": "MIT", + "dependencies": { + "react-dropzone": "15.0.0" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/form": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-9.2.1.tgz", + "integrity": "sha512-PV0dcbmsKhZkn3Ryztqp8Kb1N16v2nWXO71p4utTmN7E/lHWHO1ccj7Y72sIteWJo1YeNHzzkssaYRSnxgOvYA==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "fast-deep-equal": "^3.1.3", + "klona": "^2.0.6" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/hooks": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-9.2.1.tgz", + "integrity": "sha512-IX/ztVG9eWmQTRsN7G8odyW4JckNvN8qv5A2ULzXyazjtAKLuaUpuMz0c6XhRp10J0g4bVfV3rhrTgWeImqxqg==", + "license": "MIT", + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/modals": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-9.2.1.tgz", + "integrity": "sha512-YvZ85ZtMg6arFserkmmP18gJRD9ztLLT3vz8UrkwCdVwTGGr14X93hhS0UtR5X96ANXUzC8fU/S2ncQmNqw+NQ==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/notifications": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-9.2.1.tgz", + "integrity": "sha512-H6lSsKUPdWPYcXFeOcqqcegUl72Iua9yD369s/gchfDvI+PrL4IM5UuWNHTeABJ1eb9FbTOw8B5RDSMZjTZNSA==", + "license": "MIT", + "dependencies": { + "@mantine/store": "9.2.1", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/spotlight": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-9.2.1.tgz", + "integrity": "sha512-D6/BJ8/ftUBwiSFGTtYUM/LqlBk40XZqZFlmEFRM8chDPzEId1O+5FU7mj8KapPR9zRgoAcdT4LMI6JaLp0c0A==", + "license": "MIT", + "dependencies": { + "@mantine/store": "9.2.1" + }, + "peerDependencies": { + "@mantine/core": "9.2.1", + "@mantine/hooks": "9.2.1", + "react": "^19.2.0", + "react-dom": "^19.2.0" + } + }, + "node_modules/@mantine/store": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-9.2.1.tgz", + "integrity": "sha512-sBTHt9ilfSZAeXQlqFkm8nRm22RunhevxuOUtdSwS9HhuMuS8T27dRRgbdKH2oEFUbaccdQSy5bHbmGbEgVO8w==", + "license": "MIT", + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/@mantine/vanilla-extract": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@mantine/vanilla-extract/-/vanilla-extract-9.2.1.tgz", + "integrity": "sha512-5cNesX5kdmClWCMFqxDIVZF2JRCne2OrIj5UE3tuyGJAY3IGkchBnAf/bEx3c5QDSXxq4+6y97hs5gQBgODePA==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "9.2.1" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", + "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", + "license": "MIT" + }, + "node_modules/@messageformat/parser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", + "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "license": "MIT", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.58.7", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.58.7.tgz", + "integrity": "sha512-yK6OycD46gIzLRpj6ueVUWPk1ACSpkN1LBo05gY1qPTylbWyUCanXfH7+VgkI5LJrJoRSQR5F04XuCffCXLOBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.33.8", + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1", + "@rushstack/rig-package": "0.7.3", + "@rushstack/terminal": "0.24.0", + "@rushstack/ts-command-line": "5.3.9", + "diff": "~8.0.2", + "minimatch": "10.2.3", + "resolve": "~1.22.1", + "semver": "~7.7.4", + "source-map": "~0.6.1", + "typescript": "5.9.3" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.33.8", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.8.tgz", + "integrity": "sha512-aIcoQggPyer3B6Ze3usz0YWC/oBwUHfRH5ETUsr+oT2BRA6SfTJl7IKPcPZkX4UR+PohowzW4uMxsvjrn8vm+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", + "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.1.tgz", + "integrity": "sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.16.0", + "ajv": "~8.18.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", + "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", + "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@playwright/test": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", + "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", + "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz", + "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz", + "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz", + "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz", + "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz", + "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz", + "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz", + "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz", + "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz", + "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz", + "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz", + "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz", + "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz", + "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz", + "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz", + "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz", + "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz", + "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz", + "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz", + "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz", + "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz", + "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz", + "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz", + "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz", + "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz", + "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.23.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.23.1.tgz", + "integrity": "sha512-wlKmIKIYCKuCASbITvOxLZXepPbwXvrv7S6ig6XNWFchSyhL/E2txmVXspHY49Wu2dzf7nI27a2k/yV5BA3EiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.18.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~11.3.0", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.7.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/problem-matcher": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz", + "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.3.tgz", + "integrity": "sha512-aAA518n6wxxjCfnTAOjQnm7ngNE0FVHxHAw2pxKlIhxrMn0XQjGcXKF0oKWpjBgJOmsaJpVob/v+zr3zxgPWuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jju": "~1.4.0", + "resolve": "~1.22.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.24.0.tgz", + "integrity": "sha512-8ZQS4MMaGsv27EXCBiH7WMPkRZrffeDoIevs6z9TM5dzqiY6+Hn4evfK/G+gvgBTjfvfkHIZPQQmalmI2sM4TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.23.1", + "@rushstack/problem-matcher": "0.2.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.9.tgz", + "integrity": "sha512-GIHqU+sRGQ3LGWAZu1O+9Yh++qwtyNIIGuNbcWHJjBTm2qRez0cwINUHZ+pQLR8UuzZDcMajrDaNbUYoaL/XtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.24.0", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@sentry-internal/browser-utils": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.46.0.tgz", + "integrity": "sha512-WB1gBT9G13V02ekZ6NpUhoI1aGHV2eNfjEPthkU2bGBvFpQKnstwzjg7waIRGR7cu+YSW2Q6UI6aQLgBeOPD1g==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.46.0.tgz", + "integrity": "sha512-c4pI/z9nZCQXe9GYEw/hE/YTY9AxGBp8/wgKI+T8zylrN35SGHaXv63szzE1WbI8lacBY8lBF7rstq9bQVCaHw==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.46.0.tgz", + "integrity": "sha512-JBsWeXG6bRbxBFK8GzWymWGOB9QE7Kl57BeF3jzgdHTuHSWZ2mRnAmb1K05T4LU+gVygk6yW0KmdC8Py9Qzg9A==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.46.0.tgz", + "integrity": "sha512-ub314MWUsekVCuoH0/HJbbimlI24SkV745UW2pj9xRbxOAEf1wjkmIzxKrMDbTgJGuEunug02XZVdJFJUzOcDw==", + "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/browser": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.46.0.tgz", + "integrity": "sha512-80DmGlTk5Z2/OxVOzLNxwolMyouuAYKqG8KUcoyintZqHbF6kO1RulI610HmyUt3OagKeBCqt9S7w0VIfCRL+Q==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.46.0", + "@sentry-internal/feedback": "10.46.0", + "@sentry-internal/replay": "10.46.0", + "@sentry-internal/replay-canvas": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/core": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.46.0.tgz", + "integrity": "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/react": { + "version": "10.46.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.46.0.tgz", + "integrity": "sha512-Rb1S+9OuUPVwsz7GWnQ6Kgf3azbsseUymIegg3JZHNcW/fM1nPpaljzTBnuineia113DH0pgMBcdrrZDLaosFQ==", + "license": "MIT", + "dependencies": { + "@sentry/browser": "10.46.0", + "@sentry/core": "10.46.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@tabler/icons": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.40.0.tgz", + "integrity": "sha512-V/Q4VgNPKubRTiLdmWjV/zscYcj5IIk+euicUtaVVqF6luSC9rDngYWgST5/yh3Mrg/mYUwRv1YVTk71Jp0twQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.40.0.tgz", + "integrity": "sha512-oO5+6QCnna4a//mYubx4euZfECtzQZFDGsDMIdzZUhbdyBCT+3bRVFBPueGIcemWld4Vb/0UQ39C/cmGfGylAg==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "3.40.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + }, + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", + "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", + "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.95.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/codemirror": { + "version": "5.60.17", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.17.tgz", + "integrity": "sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==", + "license": "MIT", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/marked": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/qrcode": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.6.tgz", + "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/react-grid-layout": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.6.tgz", + "integrity": "sha512-Cw7+sb3yyjtmxwwJiXtEXcu5h4cgs+sCGkHwHXsFmPyV30bf14LeD/fa2LwQovuD2HWxCcjIdNhDlcYGj95qGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.8.tgz", + "integrity": "sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@uiw/codemirror-extensions-basic-setup": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.9.tgz", + "integrity": "sha512-QFAqr+pu6lDmNpAlecODcF49TlsrZ0bj15zPzfhiqSDl+Um3EsDLFLppixC7kFLn+rdDM2LTvVjn5CPvefpRgw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/autocomplete": ">=6.0.0", + "@codemirror/commands": ">=6.0.0", + "@codemirror/language": ">=6.0.0", + "@codemirror/lint": ">=6.0.0", + "@codemirror/search": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/codemirror-theme-vscode": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.25.9.tgz", + "integrity": "sha512-9KTnScHTSk97yGnyNYvDm6QZuBCdbO1OzMQ5bHtoBSPSVtH0LjY3bS6CXsBagb22v8OLPx/XwrBYOjKFp409CQ==", + "license": "MIT", + "dependencies": { + "@uiw/codemirror-themes": "4.25.9" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/@uiw/codemirror-themes": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.25.9.tgz", + "integrity": "sha512-DAHKb/L9ELwjY4nCf/MP/mIllHOn4GQe7RR4x8AMJuNeh9nGRRoo1uPxrxMmUL/bKqe6kDmDbIZ2AlhlqyIJuw==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/language": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/react-codemirror": { + "version": "4.25.9", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.9.tgz", + "integrity": "sha512-HftqCBUYShAOH0pGi1CHP8vfm5L8fQ3+0j0VI6lQD6QpK+UBu3J7nxfEN5O/BXMilMNf9ZyFJRvRcuMMOLHMng==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@codemirror/commands": "^6.1.0", + "@codemirror/state": "^6.1.1", + "@codemirror/theme-one-dark": "^6.0.0", + "@uiw/codemirror-extensions-basic-setup": "4.25.9", + "codemirror": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.11.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/theme-one-dark": ">=6.0.0", + "@codemirror/view": ">=6.0.0", + "codemirror": ">=6.0.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@uiw/react-split": { + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/@uiw/react-split/-/react-split-5.9.4.tgz", + "integrity": "sha512-gZbMMAV9xFDJQ3aKAzMXVvQfrCFWPILvxFGM2DSdIvhKwjSWP+yTl8fNI246Nu3XR4iHyB4Cohh9JJZEbfIXjQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@vanilla-extract/babel-plugin-debug-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.2.2.tgz", + "integrity": "sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.9" + } + }, + "node_modules/@vanilla-extract/compiler": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/compiler/-/compiler-0.6.0.tgz", + "integrity": "sha512-FlZM8s/h1obGHdYSTo05iIXUr6hsNvoE/okv/e9Sq7GN+niofhUKyuZPSwZNVYMK49xxeWNH9mopOlGRRPV4mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vanilla-extract/css": "^1.20.0", + "@vanilla-extract/integration": "^8.0.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vite-node": "^3.2.2 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vanilla-extract/css": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.20.0.tgz", + "integrity": "sha512-yKuajXFlghIjRZmEfy95z6MYj+mzJPoD3nbNLVAUB8Np6I1P9g5vBlznQPD+0A46osCn0za/wIvp/cg8HU3aig==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.9", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.2.3", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "lru-cache": "^10.4.3", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/css/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/@vanilla-extract/integration": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-8.0.9.tgz", + "integrity": "sha512-NP+CSo5IYHDmkMMy5vAxY4R9i2+CAg4sxgvVaxuHiuY9q30i6dNUTujNNKZGW2urEkd4HVVI6NggeIyYjbGPwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/plugin-syntax-typescript": "^7.23.3", + "@vanilla-extract/babel-plugin-debug-ids": "^1.2.2", + "@vanilla-extract/css": "^1.19.1", + "dedent": "^1.5.3", + "esbuild": "npm:esbuild@>=0.17.6 <0.28.0", + "eval": "0.1.8", + "find-up": "^5.0.0", + "javascript-stringify": "^2.0.1", + "mlly": "^1.4.2" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.9.tgz", + "integrity": "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==", + "license": "MIT" + }, + "node_modules/@vanilla-extract/vite-plugin": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-5.2.1.tgz", + "integrity": "sha512-1dmCgmTmls/c4G+t453vZIzZ+82ftr+JC2J48C1drVkiwtZ7DscYSIko9Ci0CyDptBLWz5EO9fWnqzfHnns8tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vanilla-extract/compiler": "^0.6.0", + "@vanilla-extract/integration": "^8.0.9" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", + "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.29.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-rc.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.18.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz", + "integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.31", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz", + "integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.31", + "@vue/shared": "3.5.31" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", + "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.4.9", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz", + "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/alien-signals": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", + "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "devOptional": true, + "license": "Python-2.0" + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/attr-accept": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-plugin-macros/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dev": true, + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==", + "license": "MIT", + "dependencies": { + "typo-js": "*" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/commenting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", + "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/dayjs": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dompurify": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", + "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/easymde": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/easymde/-/easymde-2.20.0.tgz", + "integrity": "sha512-V1Z5f92TfR42Na852OWnIZMbM7zotWQYTddNaLYZFVKj7APBbyZ3FYJ27gBw2grMW3R6Qdv9J8n5Ij7XRSIgXQ==", + "license": "MIT", + "dependencies": { + "@types/codemirror": "^5.60.10", + "@types/marked": "^4.0.7", + "codemirror": "^5.65.15", + "codemirror-spell-checker": "1.1.2", + "marked": "^4.1.0" + } + }, + "node_modules/easymde/node_modules/codemirror": { + "version": "5.65.21", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.21.tgz", + "integrity": "sha512-6teYk0bA0nR3QP0ihGMoxuKzpl5W80FpnHpBJpgy66NK3cZv5b/d/HY8PnRvfSsCG1MTfr92u2WUl+wT0E40mQ==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.361", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", + "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/embla-carousel-react": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", + "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", + "license": "MIT", + "dependencies": { + "embla-carousel": "8.6.0", + "embla-carousel-reactive-utils": "8.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/embla-carousel-reactive-utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", + "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-toolkit": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.45.1.tgz", + "integrity": "sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/file-selector": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "license": "MIT", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", + "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html5-qrcode": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.3.8.tgz", + "integrity": "sha512-jsr4vafJhwoLVEDW3n1KvPnCCXWaQfRng0/EEYk1vNcQGcG/htAdhJX0be8YyqMoSz7+hZvOZSTAepsabiuhiQ==", + "license": "Apache-2.0" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-observable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", + "integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-3.0.0.tgz", + "integrity": "sha512-P7nLXRRlo7Sqinty6lNa7+4o9jBUYGpqtejqCOZKfgXlRoxY/QArflcB86YO500Ahj4pDJEG34JjMRbQgePLnQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^6.1.3", + "uuid": "^8.3.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-sha256": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.10.1.tgz", + "integrity": "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "devOptional": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/local-pkg/node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/local-pkg/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mantine-contextmenu": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/mantine-contextmenu/-/mantine-contextmenu-9.2.1.tgz", + "integrity": "sha512-oqFPT9qOQBPgf2eSuiujGQp38QgV0WsIIMxQkPfkjVc8FWAKcnXv7OGxGN1ctRrcMqUbsS34rjI0SvNdmFwG8A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/icflorescu" + }, + "peerDependencies": { + "@mantine/core": ">=9", + "@mantine/hooks": ">=9", + "clsx": ">=2", + "react": ">=19", + "react-dom": ">=19" + } + }, + "node_modules/mantine-datatable": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mantine-datatable/-/mantine-datatable-9.2.0.tgz", + "integrity": "sha512-TK6SZ6dH/PQUedfhkJuSLMcd4P4m5L6kMJWfAF9cS4wBeoAtBWGpLs+n/E8yI6w1rYAtLsGQvFA6S9Xnfw0JFw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/icflorescu" + }, + "peerDependencies": { + "@mantine/core": ">=9.0", + "@mantine/hooks": ">=9.0", + "clsx": ">=2", + "react": ">=19", + "react-dom": ">=19" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz", + "integrity": "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==", + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moo": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz", + "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==", + "license": "BSD-3-Clause" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-18.0.0.tgz", + "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^3.3.0", + "get-package-type": "^0.1.0", + "glob": "^13.0.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^6.0.2", + "istanbul-lib-processinfo": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^6.1.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^3.0.0", + "test-exclude": "^8.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/observable-fns": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz", + "integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/otpauth": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.5.0.tgz", + "integrity": "sha512-Ldhc6UYl4baR5toGr8nfKC+L/b8/RgHKoIixAebgoNGzUUCET02g04rMEZ2ZsPfeVQhMHcuaOgb28nwMr81zCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.0.1" + }, + "funding": { + "url": "https://github.com/hectorm/otpauth?sponsor=1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/package-name-regex": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", + "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/dword-design" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.0.tgz", + "integrity": "sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/playwright": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pofile": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/pofile/-/pofile-1.1.4.tgz", + "integrity": "sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/pseudolocale": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pseudolocale/-/pseudolocale-2.2.0.tgz", + "integrity": "sha512-O+D2eU7fO9wVLqrohvt9V/9fwMadnJQ4jxwiK+LeNEqhMx8JYx4xQHkArDCJFAdPPOp/pQq6z5L37eBvAoc8jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "pseudolocale": "dist/cli.mjs" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-draggable": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", + "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-dropzone": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-15.0.0.tgz", + "integrity": "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==", + "license": "MIT", + "dependencies": { + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/react-grid-layout": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz", + "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "fast-equals": "^4.0.3", + "prop-types": "^15.8.1", + "react-draggable": "^4.4.5", + "react-resizable": "^3.0.5", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.72.0.tgz", + "integrity": "sha512-V4v6jubaf6JAurEaVnT9aUPKFbNtDgohj5CIgVGyPHvT9wRx5OZHVjz31GsxnPNI278XMu+ruFz+wGOscHaLKw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", + "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", + "license": "MIT" + }, + "node_modules/react-number-format": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.5.tgz", + "integrity": "sha512-y8O2yHHj3w0aE9XO8d2BCcUOOdQTRSVq+WIuMlLVucAm5XNjJAy+BoOJiuQMldVYVOKTMyvVNfnbl2Oqp+YxGw==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-resizable": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.1.3.tgz", + "integrity": "sha512-liJBNayhX7qA4tBJiBD321FDhJxgGTJ07uzH5zSORXoE8h7PyEZ8mLqmosST7ppf6C4zUsbd2gzDMmBCfFp9Lw==", + "license": "MIT", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.5.0" + }, + "peerDependencies": { + "react": ">= 16.3", + "react-dom": ">= 16.3" + } + }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-select": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.2.tgz", + "integrity": "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-simplemde-editor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-simplemde-editor/-/react-simplemde-editor-5.2.0.tgz", + "integrity": "sha512-GkTg1MlQHVK2Rks++7sjuQr/GVS/xm6y+HchZ4GPBWrhcgLieh4CjK04GTKbsfYorSRYKa0n37rtNSJmOzEDkQ==", + "license": "MIT", + "dependencies": { + "@types/codemirror": "~5.60.5" + }, + "peerDependencies": { + "easymde": ">= 2.0.0 < 3.0.0", + "react": ">=16.8.2", + "react-dom": ">=16.8.2" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-window": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-window/node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.8.1.tgz", + "integrity": "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "^1.9.0 || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^10.1.1", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.1.1", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/rimraf": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rolldown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", + "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.0", + "@rollup/rollup-android-arm64": "4.60.0", + "@rollup/rollup-darwin-arm64": "4.60.0", + "@rollup/rollup-darwin-x64": "4.60.0", + "@rollup/rollup-freebsd-arm64": "4.60.0", + "@rollup/rollup-freebsd-x64": "4.60.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", + "@rollup/rollup-linux-arm-musleabihf": "4.60.0", + "@rollup/rollup-linux-arm64-gnu": "4.60.0", + "@rollup/rollup-linux-arm64-musl": "4.60.0", + "@rollup/rollup-linux-loong64-gnu": "4.60.0", + "@rollup/rollup-linux-loong64-musl": "4.60.0", + "@rollup/rollup-linux-ppc64-gnu": "4.60.0", + "@rollup/rollup-linux-ppc64-musl": "4.60.0", + "@rollup/rollup-linux-riscv64-gnu": "4.60.0", + "@rollup/rollup-linux-riscv64-musl": "4.60.0", + "@rollup/rollup-linux-s390x-gnu": "4.60.0", + "@rollup/rollup-linux-x64-gnu": "4.60.0", + "@rollup/rollup-linux-x64-musl": "4.60.0", + "@rollup/rollup-openbsd-x64": "4.60.0", + "@rollup/rollup-openharmony-arm64": "4.60.0", + "@rollup/rollup-win32-arm64-msvc": "4.60.0", + "@rollup/rollup-win32-ia32-msvc": "4.60.0", + "@rollup/rollup-win32-x64-gnu": "4.60.0", + "@rollup/rollup-win32-x64-msvc": "4.60.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-license": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.7.1.tgz", + "integrity": "sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commenting": "^1.1.0", + "fdir": "^6.4.3", + "lodash": "^4.17.21", + "magic-string": "^0.30.0", + "moment": "^2.30.1", + "package-name-regex": "^2.0.6", + "spdx-expression-validate": "^2.0.0", + "spdx-satisfies": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/rollup-plugin-license/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-license/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" + }, + "node_modules/spawn-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-3.0.0.tgz", + "integrity": "sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "cross-spawn": "^7.0.6", + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^6.1.3", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/spawn-wrap/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-expression-validate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", + "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)", + "dependencies": { + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)" + }, + "node_modules/spdx-satisfies": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", + "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT" + }, + "node_modules/styled-components": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.4.2.tgz", + "integrity": "sha512-xZBhBJsMtGqb+aKcwKgaT+BtuFums9VynX2JRvXJGTx5UfZzN12rk5r4nVdhXYvRw+hE7yiYxVrOqJZaK2+Txg==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.4.0", + "css-to-react-native": "3.2.0", + "csstype": "3.2.3", + "stylis": "4.3.6" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "css-to-react-native": ">= 3.2.0", + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-native": ">= 0.68.0" + }, + "peerDependenciesMeta": { + "css-to-react-native": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT" + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-8.0.0.tgz", + "integrity": "sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^13.0.6", + "minimatch": "^10.2.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/threads": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz", + "integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.1.0", + "debug": "^4.2.0", + "is-observable": "^2.1.0", + "observable-fns": "^0.6.1" + }, + "funding": { + "url": "https://github.com/andywer/threads.js?sponsor=1" + }, + "optionalDependencies": { + "tiny-worker": ">= 2" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-worker": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", + "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "esm": "^3.2.25" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typo-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.3.1.tgz", + "integrity": "sha512-elJkpCL6Z77Ghw0Lv0lGnhBAjSTOQ5FhiVOCfOuxhaoTT2xtLVbqikYItK5HHchzPbHEUFAcjOH669T2ZzeCbg==", + "license": "BSD-3-Clause" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", + "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", + "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-6.0.0.tgz", + "integrity": "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^7.0.0", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^8.0.0" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vite-node/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "node_modules/vite-node/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-babel-macros": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-babel-macros/-/vite-plugin-babel-macros-1.0.6.tgz", + "integrity": "sha512-7cCT8jtu5UjpE46pH7RyVltWw5FbhDAtQliZ6QGqRNR5RUZKdAsB0CDjuF+VBoDpnl0KuESPu22SoNqXRYYWyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.17.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7", + "@types/babel__core": "^7.1.18", + "babel-plugin-macros": "^3.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "vite": ">=2" + } + }, + "node_modules/vite-plugin-dts": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz", + "integrity": "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor": "^7.50.1", + "@rollup/pluginutils": "^5.1.4", + "@volar/typescript": "^2.4.11", + "@vue/language-core": "2.2.0", + "compare-versions": "^6.1.1", + "debug": "^4.4.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite-plugin-externals": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/vite-plugin-externals/-/vite-plugin-externals-0.6.2.tgz", + "integrity": "sha512-R5oVY8xDJjLXLTs2XDYzvYbc/RTZuIwOx2xcFbYf+/VXB6eJuatDgt8jzQ7kZ+IrgwQhe6tU8U2fTyy72C25CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.4.0", + "es-module-lexer": "^0.4.1", + "fs-extra": "^10.0.0", + "magic-string": "^0.25.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-externals/node_modules/es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-externals/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-externals/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/vite-plugin-istanbul": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-istanbul/-/vite-plugin-istanbul-8.0.0.tgz", + "integrity": "sha512-r6L7cg2iwPqNnY/rWFyemWeDTIKRZjekEWS90e2FsTjDYH4UdTS6hvW1nEX1B++PKPCnqCaj5BJTDn5Cy5jYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.29.1", + "@istanbuljs/load-nyc-config": "^1.1.0", + "@types/babel__generator": "7.27.0", + "espree": "^11.2.0", + "istanbul-lib-instrument": "^6.0.3", + "picocolors": "^1.1.1", + "source-map": "^0.7.6", + "test-exclude": "^8.0.0" + }, + "peerDependencies": { + "vite": ">=4" + } + }, + "node_modules/vite-plugin-istanbul/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zustand": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz", + "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } } diff --git a/src/frontend/src/components/calendar/OrderCalendar.tsx b/src/frontend/src/components/calendar/OrderCalendar.tsx index 8ecf517b6e7a..ae34a5828bba 100644 --- a/src/frontend/src/components/calendar/OrderCalendar.tsx +++ b/src/frontend/src/components/calendar/OrderCalendar.tsx @@ -30,7 +30,7 @@ import { ProjectCodeFilter, ResponsibleFilter } from '../../tables/Filter'; -import { StatusRenderer, getStatusColor } from '../render/StatusRenderer'; +import { getStatusColor, StatusRenderer } from '../render/StatusRenderer'; import Calendar from './Calendar'; /** diff --git a/src/frontend/src/components/nav/Layout.tsx b/src/frontend/src/components/nav/Layout.tsx index f957ff032d66..180524c3ed61 100644 --- a/src/frontend/src/components/nav/Layout.tsx +++ b/src/frontend/src/components/nav/Layout.tsx @@ -118,34 +118,32 @@ export default function LayoutComponent() { return ( - <> - -
- - - - - {/* */} - - -