Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-- AlterEnum
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'shoppingVenues';
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'hospitals';
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'seniorCenter';
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'recreationalFacilities';
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'playgrounds';
ALTER TYPE "neighborhood_amenities_enum" ADD VALUE 'busStops';

-- AlterTable
ALTER TABLE "listing_neighborhood_amenities" ADD COLUMN "bus_stops" TEXT,
ADD COLUMN "hospitals" TEXT,
ADD COLUMN "playgrounds" TEXT,
ADD COLUMN "recreational_facilities" TEXT,
ADD COLUMN "senior_center" TEXT,
ADD COLUMN "shopping_venues" TEXT;
12 changes: 12 additions & 0 deletions api/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -998,6 +998,12 @@ model ListingNeighborhoodAmenities {
parksAndCommunityCenters String? @map("parks_and_community_centers")
schools String?
publicTransportation String? @map("public_transportation")
shoppingVenues String? @map("shopping_venues")
hospitals String?
seniorCenter String? @map("senior_center")
recreationalFacilities String? @map("recreational_facilities")
playgrounds String?
busStops String? @map("bus_stops")
listings Listings?

@@map("listing_neighborhood_amenities")
Expand Down Expand Up @@ -1304,6 +1310,12 @@ enum NeighborhoodAmenitiesEnum {
parksAndCommunityCenters
pharmacies
healthCareResources
shoppingVenues
hospitals
seniorCenter
recreationalFacilities
playgrounds
busStops

@@map("neighborhood_amenities_enum")
}
6 changes: 6 additions & 0 deletions api/prisma/seed-staging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,12 @@ export const stagingSeed = async (
visibleNeighborhoodAmenities: [
NeighborhoodAmenitiesEnum.groceryStores,
NeighborhoodAmenitiesEnum.pharmacies,
NeighborhoodAmenitiesEnum.shoppingVenues,
NeighborhoodAmenitiesEnum.hospitals,
NeighborhoodAmenitiesEnum.seniorCenter,
NeighborhoodAmenitiesEnum.recreationalFacilities,
NeighborhoodAmenitiesEnum.playgrounds,
NeighborhoodAmenitiesEnum.busStops,
],
requiredListingFields: [
'listingsBuildingAddress',
Expand Down
36 changes: 36 additions & 0 deletions api/src/dtos/listings/listing-neighborhood-amenities.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,40 @@ export class ListingNeighborhoodAmenities {
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
healthCareResources?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
shoppingVenues?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
hospitals?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
seniorCenter?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
recreationalFacilities?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
playgrounds?: string | null;

@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional()
busStops?: string | null;
}
24 changes: 24 additions & 0 deletions api/src/services/listing-csv-export.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -843,6 +843,30 @@ export class ListingCsvExporterService implements CsvExporterServiceInterface {
path: 'listingNeighborhoodAmenities.healthCareResources',
label: 'Neighborhood Amenities - Health Care Resources',
},
[NeighborhoodAmenitiesEnum.shoppingVenues]: {
path: 'listingNeighborhoodAmenities.shoppingVenues',
label: 'Neighborhood Amenities - Shopping Venues',
},
[NeighborhoodAmenitiesEnum.hospitals]: {
path: 'listingNeighborhoodAmenities.hospitals',
label: 'Neighborhood Amenities - Hospitals',
},
[NeighborhoodAmenitiesEnum.seniorCenter]: {
path: 'listingNeighborhoodAmenities.seniorCenter',
label: 'Neighborhood Amenities - Senior Center',
},
[NeighborhoodAmenitiesEnum.recreationalFacilities]: {
path: 'listingNeighborhoodAmenities.recreationalFacilities',
label: 'Neighborhood Amenities - Recreational Facilities',
},
[NeighborhoodAmenitiesEnum.playgrounds]: {
path: 'listingNeighborhoodAmenities.playgrounds',
label: 'Neighborhood Amenities - Playgrounds',
},
[NeighborhoodAmenitiesEnum.busStops]: {
path: 'listingNeighborhoodAmenities.busStops',
label: 'Neighborhood Amenities - Bus Stops',
},
};

Object.keys(amenityHeaderMap).forEach((key) => {
Expand Down
48 changes: 48 additions & 0 deletions api/test/unit/services/listing.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,12 @@ describe('Testing listing service', () => {
parksAndCommunityCenters: 'parks',
schools: 'schools',
publicTransportation: 'public transportation',
busStops: 'bus stops',
hospitals: 'hospitals',
playgrounds: 'playgrounds',
recreationalFacilities: 'recreational facilities',
seniorCenter: 'senior center',
shoppingVenues: 'shopping venues',
},
marketingType: undefined,
};
Expand Down Expand Up @@ -3482,6 +3488,12 @@ describe('Testing listing service', () => {
parksAndCommunityCenters: 'parks',
schools: 'schools',
publicTransportation: 'public transportation',
busStops: 'bus stops',
hospitals: 'hospitals',
playgrounds: 'playgrounds',
recreationalFacilities: 'recreational facilities',
seniorCenter: 'senior center',
shoppingVenues: 'shopping venues',
},
},
jurisdictions: {
Expand Down Expand Up @@ -3984,6 +3996,12 @@ describe('Testing listing service', () => {
parksAndCommunityCenters: 'parks',
schools: 'schools',
publicTransportation: 'public transportation',
busStops: 'bus stops',
hospitals: 'hospitals',
playgrounds: 'playgrounds',
recreationalFacilities: 'recreational facilities',
seniorCenter: 'senior center',
shoppingVenues: 'shopping venues',
},
},
jurisdictions: {
Expand Down Expand Up @@ -4463,6 +4481,12 @@ describe('Testing listing service', () => {
parksAndCommunityCenters: 'parks',
schools: 'schools',
publicTransportation: 'public transportation',
busStops: 'bus stops',
hospitals: 'hospitals',
playgrounds: 'playgrounds',
recreationalFacilities: 'recreational facilities',
seniorCenter: 'senior center',
shoppingVenues: 'shopping venues',
};

const calculatedUnitsAvailable = service.calculateUnitsAvailable(
Expand Down Expand Up @@ -4842,6 +4866,12 @@ describe('Testing listing service', () => {
pharmacies: null,
publicTransportation: null,
schools: null,
busStops: null,
hospitals: null,
playgrounds: null,
recreationalFacilities: null,
seniorCenter: null,
shoppingVenues: null,
},
update: {
groceryStores: null,
Expand All @@ -4850,6 +4880,12 @@ describe('Testing listing service', () => {
pharmacies: null,
publicTransportation: null,
schools: null,
busStops: null,
hospitals: null,
playgrounds: null,
recreationalFacilities: null,
seniorCenter: null,
shoppingVenues: null,
},
where: {
id: undefined,
Expand Down Expand Up @@ -4993,6 +5029,12 @@ describe('Testing listing service', () => {
pharmacies: null,
publicTransportation: null,
schools: null,
busStops: null,
hospitals: null,
playgrounds: null,
recreationalFacilities: null,
seniorCenter: null,
shoppingVenues: null,
},
update: {
groceryStores: null,
Expand All @@ -5001,6 +5043,12 @@ describe('Testing listing service', () => {
pharmacies: null,
publicTransportation: null,
schools: null,
busStops: null,
hospitals: null,
playgrounds: null,
recreationalFacilities: null,
seniorCenter: null,
shoppingVenues: null,
},
where: {
id: undefined,
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "الصيدليات",
"listings.amenities.publicTransportation": "المواصلات العامة",
"listings.amenities.schools": "المدارس",
"listings.amenities.shoppingVenues": "أماكن التسوق",
"listings.amenities.hospitals": "المستشفيات",
"listings.amenities.seniorCenter": "مركز كبار السن",
"listings.amenities.recreationalFacilities": "المرافق الترفيهية",
"listings.amenities.playgrounds": "ملاعب",
"listings.amenities.busStops": "محطات الحافلات",
"listings.annualIncome": "%{income} في السنة",
"listings.applicationAlreadySubmitted": "لقد تم تقديم هذا الطلب بالفعل.",
"listings.applicationDeadline": "تاريخ استحقاق الطلب",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "ফার্মেসী",
"listings.amenities.publicTransportation": "গণপরিবহন",
"listings.amenities.schools": "স্কুল",
"listings.amenities.shoppingVenues": "শপিং ভেন্যু",
"listings.amenities.hospitals": "হাসপাতাল",
"listings.amenities.seniorCenter": "সিনিয়র সেন্টার",
"listings.amenities.recreationalFacilities": "বিনোদন সুবিধা",
"listings.amenities.playgrounds": "খেলার মাঠ",
"listings.amenities.busStops": "বাস স্টপ",
"listings.annualIncome": "%{আয়} প্রতি বছর",
"listings.applicationAlreadySubmitted": "এই আবেদনটি ইতিমধ্যেই জমা দেওয়া হয়েছে।",
"listings.applicationDeadline": "আবেদনের শেষ তারিখ",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "Farmacias",
"listings.amenities.publicTransportation": "Transporte público",
"listings.amenities.schools": "Escuelas",
"listings.amenities.shoppingVenues": "Lugares de compras",
"listings.amenities.hospitals": "Hospitales",
"listings.amenities.seniorCenter": "Centro para personas mayores",
"listings.amenities.recreationalFacilities": "Instalaciones recreativas",
"listings.amenities.playgrounds": "Parques infantiles",
"listings.amenities.busStops": "Paradas de autobús",
"listings.annualIncome": "%{income} al año",
"listings.applicationAlreadySubmitted": "Ya ha enviado una solicitud para este listado.",
"listings.applicationDeadline": "Fecha límite de solicitud",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/general.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "Pharmacies",
"listings.amenities.publicTransportation": "Public transportation",
"listings.amenities.schools": "Schools",
"listings.amenities.shoppingVenues": "Shopping venues",
"listings.amenities.hospitals": "Hospitals",
"listings.amenities.seniorCenter": "Senior center",
"listings.amenities.recreationalFacilities": "Recreational facilities",
"listings.amenities.playgrounds": "Playgrounds",
"listings.amenities.busStops": "Bus stops",
"listings.annualIncome": "%{income} per year",
"listings.applicationAlreadySubmitted": "This application has already been submitted.",
"listings.applicationDeadline": "Application due date",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/tl.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "Mga botika",
"listings.amenities.publicTransportation": "Pampublikong transportasyon",
"listings.amenities.schools": "Mga paaralan",
"listings.amenities.shoppingVenues": "Mga lugar ng pamimili",
"listings.amenities.hospitals": "Mga ospital",
"listings.amenities.seniorCenter": "Sentro ng mga nakatatanda",
"listings.amenities.recreationalFacilities": "Mga pasilidad ng libangan",
"listings.amenities.playgrounds": "Mga palaruan",
"listings.amenities.busStops": "Mga hintuan ng bus",
"listings.annualIncome": "%{income} kada taon",
"listings.applicationAlreadySubmitted": "Nagsumite ka na ng aplikasyon para sa listahang ito.",
"listings.applicationDeadline": "Takdang petsa ng aplikasyon",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "Nhà thuốc",
"listings.amenities.publicTransportation": "Giao thông công cộng",
"listings.amenities.schools": "Trường học",
"listings.amenities.shoppingVenues": "Địa điểm mua sắm",
"listings.amenities.hospitals": "Bệnh viện",
"listings.amenities.seniorCenter": "Trung tâm người cao tuổi",
"listings.amenities.recreationalFacilities": "Cơ sở giải trí",
"listings.amenities.playgrounds": "Sân chơi",
"listings.amenities.busStops": "Trạm xe buýt",
"listings.annualIncome": "%{income} mỗi năm",
"listings.applicationAlreadySubmitted": "Bạn đã nộp đơn đăng ký cho danh sách này.",
"listings.applicationDeadline": "Ngày hết hạn nộp đơn",
Expand Down
6 changes: 6 additions & 0 deletions shared-helpers/src/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,12 @@
"listings.amenities.pharmacies": "药店",
"listings.amenities.publicTransportation": "公共交通",
"listings.amenities.schools": "学校",
"listings.amenities.shoppingVenues": "購物場所",
"listings.amenities.hospitals": "醫院",
"listings.amenities.seniorCenter": "老年中心",
"listings.amenities.recreationalFacilities": "休閒設施",
"listings.amenities.playgrounds": "遊樂場",
"listings.amenities.busStops": "公車站",
"listings.annualIncome": "每年 %{income}",
"listings.applicationAlreadySubmitted": "您已經提交了此清單的申請。",
"listings.applicationDeadline": "申请截止日期",
Expand Down
24 changes: 24 additions & 0 deletions shared-helpers/src/types/backend-swagger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3923,6 +3923,24 @@ export interface ListingNeighborhoodAmenities {

/** */
healthCareResources?: string

/** */
shoppingVenues?: string

/** */
hospitals?: string

/** */
seniorCenter?: string

/** */
recreationalFacilities?: string

/** */
playgrounds?: string

/** */
busStops?: string
}

export interface Listing {
Expand Down Expand Up @@ -7557,6 +7575,12 @@ export enum NeighborhoodAmenitiesEnum {
"parksAndCommunityCenters" = "parksAndCommunityCenters",
"pharmacies" = "pharmacies",
"healthCareResources" = "healthCareResources",
"shoppingVenues" = "shoppingVenues",
"hospitals" = "hospitals",
"seniorCenter" = "seniorCenter",
"recreationalFacilities" = "recreationalFacilities",
"playgrounds" = "playgrounds",
"busStops" = "busStops",
}

export enum FeatureFlagEnum {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ describe("NeighborhoodAmenities", () => {
NeighborhoodAmenitiesEnum.parksAndCommunityCenters,
NeighborhoodAmenitiesEnum.pharmacies,
NeighborhoodAmenitiesEnum.healthCareResources,
NeighborhoodAmenitiesEnum.shoppingVenues,
NeighborhoodAmenitiesEnum.hospitals,
NeighborhoodAmenitiesEnum.seniorCenter,
NeighborhoodAmenitiesEnum.recreationalFacilities,
NeighborhoodAmenitiesEnum.playgrounds,
NeighborhoodAmenitiesEnum.busStops,
],
}

Expand Down
Loading