Skip to content

Commit

Permalink
redo migration
Browse files Browse the repository at this point in the history
  • Loading branch information
abbiefarr committed Aug 17, 2021
1 parent 1b861a5 commit c10bcf5
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 28 deletions.
20 changes: 0 additions & 20 deletions backend/core/src/migration/1628714025901-listings-units-summary.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import {MigrationInterface, QueryRunner} from "typeorm";

export class updateUnitsSummaryStructure1629225262377 implements MigrationInterface {
name = 'updateUnitsSummaryStructure1629225262377'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "units_summary" DROP CONSTRAINT "FK_a2b6519fc3d102d4611a0e2b879"`);
await queryRunner.query(`ALTER TABLE "units_summary" DROP CONSTRAINT "PK_dd5b004243c1536a412e425a9ec"`);
await queryRunner.query(`ALTER TABLE "units_summary" DROP COLUMN "property_id"`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD "id" uuid NOT NULL DEFAULT uuid_generate_v4()`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD "listing_id" uuid`);
await queryRunner.query(`ALTER TABLE "units_summary" ALTER COLUMN "unit_type_id" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "units_summary" ALTER COLUMN "monthly_rent" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD CONSTRAINT "PK_8d8c4940fab2a9d1b2e7ddd9e49" PRIMARY KEY ("id")`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "units_summary" DROP CONSTRAINT "PK_8d8c4940fab2a9d1b2e7ddd9e49"`);
await queryRunner.query(`ALTER TABLE "units_summary" ALTER COLUMN "monthly_rent" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "units_summary" ALTER COLUMN "unit_type_id" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "units_summary" DROP COLUMN "listing_id"`);
await queryRunner.query(`ALTER TABLE "units_summary" DROP COLUMN "id"`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD "property_id" uuid NOT NULL`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD CONSTRAINT "PK_dd5b004243c1536a412e425a9ec" PRIMARY KEY ("monthly_rent", "unit_type_id", "property_id")`);
await queryRunner.query(`ALTER TABLE "units_summary" ADD CONSTRAINT "FK_a2b6519fc3d102d4611a0e2b879" FOREIGN KEY ("property_id") REFERENCES "property"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
}

}
13 changes: 11 additions & 2 deletions backend/core/src/units-summary/dto/units-summary.dto.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
import { OmitType } from "@nestjs/swagger"
import { Expose } from "class-transformer"
import { IsString, IsUUID } from "class-validator"
import { ValidationsGroupsEnum } from "../../shared/types/validations-groups-enum"
import { UnitsSummary } from "../entities/units-summary.entity"

export class UnitsSummaryDto extends OmitType(UnitsSummary, [] as const) {}
export class UnitsSummaryCreateDto extends OmitType(UnitsSummaryDto, [] as const) {}
export class UnitsSummaryUpdateDto extends OmitType(UnitsSummaryDto, [] as const) {}

export class UnitsSummaryCreateDto extends OmitType(UnitsSummaryDto, ["id"] as const) {}
export class UnitsSummaryUpdateDto extends OmitType(UnitsSummaryCreateDto, [] as const) {
@Expose()
@IsString({ groups: [ValidationsGroupsEnum.default] })
@IsUUID()
id: string
}
25 changes: 19 additions & 6 deletions backend/core/src/units-summary/entities/units-summary.entity.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm"
import { IsNumber, IsNumberString, IsOptional, IsString, ValidateNested } from "class-validator"
import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"
import {
IsNumber,
IsNumberString,
IsOptional,
IsString,
IsUUID,
ValidateNested,
} from "class-validator"
import { Expose, Type } from "class-transformer"
import { ValidationsGroupsEnum } from "../../shared/types/validations-groups-enum"
import { UnitType } from "../../unit-types/entities/unit-type.entity"
Expand All @@ -8,21 +15,27 @@ import { Listing } from "../..//listings/entities/listing.entity"

@Entity({ name: "units_summary" })
class UnitsSummary {
@ManyToOne(() => UnitType, { primary: true, eager: true })
@PrimaryGeneratedColumn("uuid")
@Expose()
@IsUUID(4, { groups: [ValidationsGroupsEnum.default] })
@IsString({ groups: [ValidationsGroupsEnum.default] })
id: string

@ManyToOne(() => UnitType, { eager: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@ValidateNested({ groups: [ValidationsGroupsEnum.default] })
@Type(() => UnitType)
unitType: UnitType

@ManyToOne(() => Listing, (listing) => listing.unitsSummary, { primary: true })
@ManyToOne(() => Listing, (listing) => listing.unitsSummary, {})
listing: Listing

@PrimaryColumn()
@Column({ nullable: true, type: "integer" })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsNumberString({}, { groups: [ValidationsGroupsEnum.default] })
monthlyRent: string
monthlyRent?: string

@Column({ nullable: true, type: "numeric", precision: 8, scale: 2 })
@Expose()
Expand Down
56 changes: 56 additions & 0 deletions backend/core/types/src/backend-swagger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3788,6 +3788,59 @@ export interface ReservedCommunityType {
description?: string
}

export interface UnitsSummary {
/** */
id: string

/** */
unitType: UnitType

/** */
listing: Listing

/** */
monthlyRent?: string

/** */
monthlyRentAsPercentOfIncome?: string

/** */
amiPercentage?: string

/** */
minimumIncomeMin?: string

/** */
minimumIncomeMax?: string

/** */
maxOccupancy?: number

/** */
minOccupancy?: number

/** */
floorMin?: number

/** */
floorMax?: number

/** */
sqFeetMin?: string

/** */
sqFeetMax?: string

/** */
priorityType?: UnitAccessibilityPriorityType

/** */
totalCount?: number

/** */
totalAvailable?: number
}

export interface UnitType {
/** */
id: string
Expand Down Expand Up @@ -4241,6 +4294,9 @@ export interface Listing {

/** */
waitlistOpenSpots?: number

/** */
unitsSummary: UnitsSummary[]
}

export interface PaginatedListing {
Expand Down

0 comments on commit c10bcf5

Please sign in to comment.