DPCModel
Version: v19.0.0
Partition key pk, sort key sk
Overview
DPC Model - Complete DynamoDB structure
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
pk | str | ✅ | — | — |
sk | str | ✅ | — | — |
type | str | ✅ | — | — |
dpc_schema_version | str | ✅ | — | — |
id | str | ✅ | — | — |
dpc_number | str | ✅ | — | — |
created_at | str | ✅ | — | — |
updated_at | str | ✅ | — | — |
is_system_wide | bool | ❌ | False | — |
tenant_id | str | ❌ | — | — |
part_type | str | ✅ | — | — |
part_type_id | str | ✅ | — | — |
more_precise_part_type | str | ❌ | — | — |
more_precise_part_type_id | str | ❌ | — | — |
part_numbers | List[PartNumber] | ❌ | [] | — |
superseded_part_numbers | List[PartNumber] | ❌ | [] | — |
interchangeable_part_numbers | List[PartNumber] | ❌ | [] | — |
weight_g | float | ❌ | — | — |
height_mm | float | ❌ | — | — |
length_mm | float | ❌ | — | — |
width_mm | float | ❌ | — | — |
is_deleted | bool | ❌ | False | — |
deleted_at | str | ❌ | — | — |
is_universal_fitment | bool | ❌ | False | — |
part_attributes | List[PartAttribute] | ❌ | [] | — |
fitment | List[Fitment] | ❌ | [] | — |
interchangeable_parts | List[InterchangeablePart] | ❌ | [] | — |
images | List[Image] | ❌ | [] | — |
applicable_regions | List[ApplicableRegion] | ❌ | [] | — |
dpc_source | DPCSourceEnum | ❌ | — | — |
additional_notes | str | ❌ | — | — |
title | str | ❌ | — | — |
images_status | DPCImagesStatus | ❌ | — | — |
Embedded models
Models embedded in the fields above — shown inline; they have no separate page.
PartNumber — v2.0.0
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
part_number | str | ✅ | — | — |
part_number_clean | str | ✅ | — | — |
Change history
v2.0.0· 2025-10-24 · Olaniyi Ajayi · Removed fieldis_primary(breaking).; Removed fieldmanufacturer(breaking).; Removed fieldnumber(breaking).; Added required fieldpart_number.; Added required fieldpart_number_clean. (bd5ef3280)v1.0.0· 2025-10-02 · Olaniyi Ajayi · Initial version. (310a3b54d)
PartAttribute — v4.0.0
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
value | `str | bool | int | float` |
value_type | ValueTypeEnum (STRING, FLOAT, INTEGER, BOOLEAN) | ✅ | — | Value Type Enum for attributes |
display_name | str | ✅ | — | — |
created_at | str | ❌ | — | — |
updated_at | str | ❌ | — | — |
Change history
v4.0.0· 2025-12-22 · Olaniyi Ajayi · Fieldvaluetype changed: str → Union[str, bool, int, float] (breaking). (72439152a)v3.0.0· 2025-10-24 · Olaniyi Ajayi · Removed fieldid(breaking).; Removed fieldname(breaking).; Removed fieldvalues(breaking).; Added optional fieldcreated_at.; Added required fielddisplay_name.; Added optional fieldupdated_at.; Added required fieldvalue.; Added required fieldvalue_type. (bd5ef3280)v2.0.0· 2025-10-17 · Olaniyi Ajayi · Removed fieldcreated_at(breaking).; Removed fielddescription(breaking).; Removed fieldupdated_at(breaking). (d69979131)v1.0.0· 2025-10-02 · Olaniyi Ajayi · Initial version. (310a3b54d)
InterchangeablePart — v3.0.0
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | str | ✅ | — | — |
dpc_id | str | ✅ | — | — |
dpc_number | str | ✅ | — | — |
interchange_source | InterchangeSourceEnum (SATURN, TENANT, DISMANTLY_RESEARCHED) | ❌ | SATURN | Interchange source. |
is_exact_interchange | bool | ✅ | — | — |
relationship_type | InterchangeRelationshipTypeEnum (DIRECT_SUBSTITUTE, CONDITIONAL_SUBSTITUTE, DIRECTIONAL_SUBSTITUTE, COMPONENT_FULFILLMENT) | ✅ | — | Interchange relationship type. |
substitution_direction | InterchangeSubstitutionDirectionEnum | ✅ | — | — |
display_note | str | ✅ | — | — |
check_notes | List[str] | ✅ | — | — |
created_at | str | ✅ | — | — |
updated_at | str | ✅ | — | — |
Change history
v3.0.0· 2026-05-17 · Cian (shared account) · Removed fieldnotes(breaking).; Removed fieldpart_type(breaking).; Removed fieldpart_type_id(breaking).; Added required fieldcheck_notes.; Added optional fielddisplay_note.; Added required fielddpc_id.; Added optional fieldinterchange_source.; Added required fieldrelationship_type.; Added optional fieldsubstitution_direction.; Fieldcreated_atbecame required (breaking).; Fieldcreated_atdefault changed: Field(default_factory=lambda : datetime.now(timezone.utc).isoformat()) → None.; Fieldis_exact_interchangebecame required (breaking).; Fieldis_exact_interchangedefault changed: False → None.; Fieldupdated_atbecame required (breaking).; Fieldupdated_atdefault changed: Field(default_factory=lambda : datetime.now(timezone.utc).isoformat()) → None. (1ee3bc2c6)v2.0.0· 2025-10-24 · Olaniyi Ajayi · Removed fieldis_in_exact_interchange(breaking).; Added optional fieldis_exact_interchange.; Fielddpc_numbertype changed: Optional[str] → str (breaking).; Fielddpc_numberbecame required (breaking).; Fieldidbecame required (breaking).; Fieldiddefault changed: Field(default_factory=lambda : str(uuid4())) → None. (bd5ef3280)v1.0.0· 2025-10-02 · Olaniyi Ajayi · Initial version. (310a3b54d)
Image — v1.0.0
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | str | ✅ | — | — |
order | int | ✅ | — | — |
is_private | bool | ❌ | False | — |
Change history
v1.0.0· 2025-10-02 · Olaniyi Ajayi · Initial version. (310a3b54d)
ApplicableRegion — v2.2.0
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
country_code | CountryCodeEnum (NZ, AUS, SA, US, GB, JP, IND, DNK) | ✅ | — | Country Code Enum for applicable regions |
created_at | str | ❌ | — | — |
Change history
v2.2.0· 2026-06-07 · Cian (shared account) · Fieldcountry_codeenum valueSAadded. (01a5f766a)v2.1.0· 2025-11-07 · Cian (shared account) · Fieldcountry_codeenum valueDNKadded.; Fieldcountry_codeenum valueINDadded. (3d5227b6d)v2.0.0· 2025-11-05 · Cian (shared account) · Fieldcountry_codeenum valueUKremoved (breaking).; Fieldcountry_codeenum valueGBadded. (364e097e2)v1.0.0· 2025-10-24 · Olaniyi Ajayi · Initial version. (bd5ef3280)
APIs / Triggers
| Trigger | Endpoint / Source | Detail | Handler |
|---|---|---|---|
| API | POST / | — | src/dpc_post.py |
Change history
v19.0.0 · 2026-05-21 · Cian (shared account) · 5dc069f60
Refactor DPC models and update interchangeable parts handling for improved compatibility and clarity. Introduce new utility functions for ISO datetime parsing and nested row management in validation processes.
- Field
interchangeable_partstype changed: List[DPCInterchangeablePart] → List[InterchangeablePart] (breaking).
v18.0.0 · 2026-05-17 · Cian (shared account) · bc3538fd9
Add interchange group GET endpoint
- Field
interchangeable_partstype changed: List[InterchangeablePart] → List[DPCInterchangeablePart] (breaking).
v17.0.0 · 2026-05-21 · Cian (shared account) · 1769b7342
Refactor DPC models and update interchangeable parts handling for improved compatibility and clarity. Introduce new utility functions for ISO datetime parsing and nested row management in validation processes.
- Field
interchangeable_partstype changed: List[DPCInterchangeablePart] → List[InterchangeablePart] (breaking).
v16.0.0 · 2026-05-17 · Cian (shared account) · 1ee3bc2c6
Add interchange group GET endpoint
- Field
interchangeable_partstype changed: List[InterchangeablePart] → List[DPCInterchangeablePart] (breaking).
v15.2.0 · 2026-05-09 · Cian (shared account) · abf653e48
Consolidate image processing into deterministic handlers
- Added optional field
images_status.
v15.1.0 · 2026-03-13 · genius-autos-dev · 7234c1087
Add more precise part type fields to DPC models and update related functions
- Added optional field
more_precise_part_type. - Added optional field
more_precise_part_type_id.
v15.0.0 · 2026-03-11 · Cian (shared account) · 8abd4a54a
Add DPCStockLimit model and related functions for stock limit management
- Removed field
stock_limit(breaking).
v14.0.0 · 2026-03-11 · Cian (shared account) · aba260abe
Add interchangeable_part_numbers field to DPC models and update related functions
- Removed field
applicable_years(breaking). - Removed field
model_aliases(breaking). - Removed field
month_from(breaking). - Removed field
month_to(breaking). - Removed field
veh_make(breaking). - Removed field
veh_make_id(breaking). - Removed field
veh_make_model(breaking). - Removed field
veh_model(breaking). - Removed field
veh_model_id(breaking). - Removed field
vehicle_attributes(breaking). - Removed field
year_from(breaking). - Removed field
year_to(breaking). - Added optional field
interchangeable_part_numbers. - Added optional field
stock_limit.
v13.0.0 · 2026-03-07 · Clifford Usidamen · 7c5f4ca1e
added dpc and vehicle images
- Removed field
stock_limit(breaking). - Added optional field
applicable_years. - Added optional field
model_aliases. - Added optional field
month_from. - Added optional field
month_to. - Added optional field
veh_make. - Added optional field
veh_make_id. - Added optional field
veh_make_model. - Added optional field
veh_model. - Added optional field
veh_model_id. - Added optional field
vehicle_attributes. - Added optional field
year_from. - Added optional field
year_to.
v12.0.0 · 2026-03-06 · Cian (shared account) · 1808b0b9a
refactor(dpc): split put lambdas and migrate fitment-first schema
- Removed field
applicable_years(breaking). - Removed field
model_aliases(breaking). - Removed field
month_from(breaking). - Removed field
month_to(breaking). - Removed field
veh_make(breaking). - Removed field
veh_make_id(breaking). - Removed field
veh_make_model(breaking). - Removed field
veh_model(breaking). - Removed field
veh_model_id(breaking). - Removed field
vehicle_attributes(breaking). - Removed field
year_from(breaking). - Removed field
year_to(breaking).
v11.1.0 · 2026-03-06 · Cian (shared account) · e6e7eb19b
feat(dpc): add custom/system-wide update contracts
- Added optional field
stock_limit.
v11.0.0 · 2026-02-21 · Cian (shared account) · ebc6ae8ef
Decouple ebay fitments into EBAY_FITMENT records
- Removed field
ebay_fitments(breaking).
v10.0.0 · 2026-02-21 · Cian (shared account) · 361b064be
Update ebay_fitments type annotations to List[EbayFitment] and change logging level from info to warning in dpc_post.py for improved clarity and error handling.
- Field
ebay_fitmentstype changed: list → List[EbayFitment] (breaking).
v9.1.0 · 2026-01-26 · Cian (shared account) · bfd9298b6
feat(models): Add title field to DPC models and update build functions
- Added optional field
title.
v9.0.0 · 2025-12-22 · Olaniyi Ajayi · 72439152a
fx
- Field
ebay_fitmentstype changed: List[EbayFitment] → list (breaking).
v8.0.0 · 2025-11-04 · Cian (shared account) · a27e5f27a
fx
- Field
month_fromtype changed: Optional[str] → Optional[int] (breaking). - Field
month_totype changed: Optional[str] → Optional[int] (breaking). - Field
year_fromtype changed: Optional[str] → Optional[int] (breaking). - Field
year_totype changed: Optional[str] → Optional[int] (breaking).
v7.0.0 · 2025-11-03 · Olaniyi Ajayi · aeeedac4f
pricing fx
- Removed field
supersedded_part_numbers(breaking). - Added optional field
superseded_part_numbers. - Field
ebay_fitmentstype changed: list → List[EbayFitment] (breaking).
v6.0.0 · 2025-10-30 · Cian (shared account) · 662787d9a
Revert "Dev v5"
- Removed field
superseded_part_numbers(breaking). - Added optional field
supersedded_part_numbers. - Field
ebay_fitmentstype changed: List[EbayFitment] → list (breaking).
v5.0.0 · 2025-10-30 · Olaniyi Ajayi · 086cd860d
fx
- Removed field
supersedded_part_numbers(breaking). - Added optional field
superseded_part_numbers.
v4.0.0 · 2025-10-29 · Your Name · 4deeb48c2
fx
- Field
ebay_fitmentstype changed: list → List[EbayFitment] (breaking).
v3.1.0 · 2025-10-29 · Olaniyi Ajayi · fba40b748
fx
- Added optional field
ebay_fitments.
v3.0.0 · 2025-10-24 · Olaniyi Ajayi · bd5ef3280
updated dpc model
- Removed field
dpc_id(breaking). - Removed field
height(breaking). - Removed field
height_metric(breaking). - Removed field
is_reported(breaking). - Removed field
length(breaking). - Removed field
length_metric(breaking). - Removed field
oem_part_numbers(breaking). - Removed field
pricing(breaking). - Removed field
superseded_part_numbers(breaking). - Removed field
weight(breaking). - Removed field
weight_metric(breaking). - Removed field
width(breaking). - Removed field
width_metric(breaking). - Added optional field
applicable_regions. - Added optional field
applicable_years. - Added optional field
dpc_source. - Added optional field
height_mm. - Added required field
id. - Added optional field
length_mm. - Added optional field
model_aliases. - Added optional field
supersedded_part_numbers. - Added optional field
veh_make_model. - Added optional field
weight_g. - Added optional field
width_mm. - Field
fitmenttype changed: Optional[List[Fitment]] → List[Fitment] (breaking). - Field
imagesbecame optional. - Field
imagesdefault changed: None → []. - Field
interchangeable_partsbecame optional. - Field
interchangeable_partsdefault changed: None → []. - Field
is_deletedbecame optional. - Field
is_deleteddefault changed: None → False. - Field
is_system_widetype changed: Optional[bool] → bool (breaking). - Field
is_universal_fitmentbecame optional. - Field
is_universal_fitmentdefault changed: None → False. - Field
month_fromtype changed: Optional[int] → Optional[str] (breaking). - Field
month_totype changed: Optional[int] → Optional[str] (breaking). - Field
part_attributesbecame optional. - Field
part_attributesdefault changed: None → []. - Field
part_numbersbecame optional. - Field
part_numbersdefault changed: None → []. - Field
vehicle_attributesbecame optional. - Field
vehicle_attributesdefault changed: None → []. - Field
year_fromtype changed: Optional[int] → Optional[str] (breaking). - Field
year_totype changed: Optional[int] → Optional[str] (breaking).
v2.2.0 · 2025-10-22 · Olaniyi Ajayi · 8d6556c72
added additional notes to dpc model
- Added optional field
additional_notes.
v2.1.0 · 2025-10-17 · Olaniyi Ajayi · d69979131
fix
- Added optional field
is_reported. - Added optional field
oem_part_numbers. - Added optional field
superseded_part_numbers.
v2.0.0 · 2025-10-03 · Olaniyi Ajayi · de10e3bc5
fx
- Removed field
id(breaking). - Added required field
dpc_id. - Field
is_system_widetype changed: bool → Optional[bool] (breaking). - Field
is_system_widebecame optional. - Field
is_system_widedefault changed: None → False.
v1.0.0 · 2025-10-02 · Olaniyi Ajayi · 310a3b54d
init
- Initial version.
Generated from
dismantly-backend/Microservices/DismantlyPartCatalog/dependencies/models.py. Do not edit by hand.