diff --git a/package.json b/package.json index fc50ba29c..7c23829d2 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "webpack-cli": "^5.0.1" }, "dependencies": { + "@fragaria/address-formatter": "^6.6.1", "@fullcalendar/core": "^6.1.4", "@fullcalendar/daygrid": "^6.1.4", "@fullcalendar/interaction": "^6.1.4", diff --git a/src/Bundle/ChillMainBundle/Repository/AddressReferenceRepository.php b/src/Bundle/ChillMainBundle/Repository/AddressReferenceRepository.php index d55068e0f..c9cbeb3b7 100644 --- a/src/Bundle/ChillMainBundle/Repository/AddressReferenceRepository.php +++ b/src/Bundle/ChillMainBundle/Repository/AddressReferenceRepository.php @@ -97,7 +97,9 @@ final readonly class AddressReferenceRepository implements AddressReferenceRepos $result = $qb->executeQuery(); - return $result->iterateAssociative(); + foreach ($result->iterateAssociative() as $row) { + yield [...$row, 'positions' => json_decode($row['positions'], true, 512, JSON_THROW_ON_ERROR)]; + } } /** diff --git a/src/Bundle/ChillMainBundle/Resources/public/types.ts b/src/Bundle/ChillMainBundle/Resources/public/types.ts index 2cd83bc64..97ec3c497 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/types.ts +++ b/src/Bundle/ChillMainBundle/Resources/public/types.ts @@ -74,6 +74,7 @@ export interface Postcode { name: string; code: string; center: Point; + country: Country; } export interface Point { @@ -89,6 +90,28 @@ export interface Country { export type AddressRefStatus = "match" | "to_review" | "reviewed"; +/** + * An interface to create an address + */ +export interface AddressCreation { + confidential: boolean; + isNoAddress: boolean; + street: string; + streetNumber: string; + postcode: Postcode; + point: Point; // [number, number]; // [longitude, latitude] + addressReference: AddressReference; + validFrom: DateTime|null; + floor: string; + corridor: string; + steps: string; + flat: string; + buildingName: string; + distribution: string; + extra: string; +} + + export interface Address { type: "address"; address_id: number; @@ -107,7 +130,7 @@ export interface Address { confidential: boolean; lines: string[]; addressReference: AddressReference | null; - validFrom: DateTime; + validFrom: DateTime | null; // TODO there is no null for validFrom validTo: DateTime | null; point: Point | null; refStatus: AddressRefStatus; diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/AddressPicker/AddressButton.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/AddressPicker/AddressButton.vue index 70480fdb2..84bc47a1c 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/AddressPicker/AddressButton.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/AddressPicker/AddressButton.vue @@ -19,7 +19,7 @@ const closeModal = () => {