update and sync prisma schema and create ad dto
This commit is contained in:
		
							parent
							
								
									362452fc10
								
							
						
					
					
						commit
						def8caa6e1
					
				|  | @ -17,7 +17,7 @@ model Ad { | ||||||
|   passenger      Boolean    |   passenger      Boolean    | ||||||
|   frequency      Frequency  |   frequency      Frequency  | ||||||
|   fromDate       DateTime  @db.Date |   fromDate       DateTime  @db.Date | ||||||
|   toDate         DateTime @db.Date |   toDate         DateTime  @db.Date | ||||||
|   monTime        DateTime? @db.Timestamptz() |   monTime        DateTime? @db.Timestamptz() | ||||||
|   tueTime        DateTime? @db.Timestamptz() |   tueTime        DateTime? @db.Timestamptz() | ||||||
|   wedTime        DateTime? @db.Timestamptz() |   wedTime        DateTime? @db.Timestamptz() | ||||||
|  | @ -25,23 +25,19 @@ model Ad { | ||||||
|   friTime        DateTime? @db.Timestamptz() |   friTime        DateTime? @db.Timestamptz() | ||||||
|   satTime        DateTime? @db.Timestamptz() |   satTime        DateTime? @db.Timestamptz() | ||||||
|   sunTime        DateTime? @db.Timestamptz() |   sunTime        DateTime? @db.Timestamptz() | ||||||
|   monMargin      Int? |   monMargin      Int | ||||||
|   tueMargin      Int? |   tueMargin      Int | ||||||
|   wedMargin      Int? |   wedMargin      Int | ||||||
|   thuMargin      Int? |   thuMargin      Int | ||||||
|   friMargin      Int? |   friMargin      Int | ||||||
|   satMargin      Int? |   satMargin      Int | ||||||
|   sunMargin      Int? |   sunMargin      Int | ||||||
|   seatsDriver    Int      @db.SmallInt |   seatsDriver    Int       @db.SmallInt | ||||||
|   seatsPassenger Int      @db.SmallInt |   seatsPassenger Int       @db.SmallInt | ||||||
|   createdAt      DateTime  @default(now()) |   createdAt      DateTime  @default(now()) | ||||||
|   updatedAt      DateTime  @default(now()) @updatedAt |   updatedAt      DateTime  @default(now()) @updatedAt | ||||||
|   addresses      Address[] |   addresses      Address[] | ||||||
| 
 | 
 | ||||||
|   @@index([driver]) |  | ||||||
|   @@index([passenger]) |  | ||||||
|   @@index([fromDate]) |  | ||||||
|   @@index([toDate]) |  | ||||||
|   @@map("ad") |   @@map("ad") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -56,8 +52,8 @@ model Address { | ||||||
|   street      String? |   street      String? | ||||||
|   locality    String? |   locality    String? | ||||||
|   postalCode  String? |   postalCode  String? | ||||||
|   country     String? |   country     String?   | ||||||
|   type        AddressType?    |   countryCode String? | ||||||
|   createdAt   DateTime     @default(now()) |   createdAt   DateTime     @default(now()) | ||||||
|   updatedAt   DateTime     @default(now()) @updatedAt |   updatedAt   DateTime     @default(now()) @updatedAt | ||||||
|   Ad          Ad           @relation(fields: [adUuid], references: [uuid], onDelete: Cascade) |   Ad          Ad           @relation(fields: [adUuid], references: [uuid], onDelete: Cascade) | ||||||
|  | @ -69,11 +65,3 @@ enum Frequency { | ||||||
|   PUNCTUAL |   PUNCTUAL | ||||||
|   RECURRENT |   RECURRENT | ||||||
| } | } | ||||||
| 
 |  | ||||||
| enum AddressType { |  | ||||||
|   HOUSE_NUMBER |  | ||||||
|   STREET_ADDRESS |  | ||||||
|   LOCALITY |  | ||||||
|   VENUE |  | ||||||
|   OTHER |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  | @ -6,51 +6,53 @@ import { | ||||||
|   IsDate, |   IsDate, | ||||||
|   IsInt, |   IsInt, | ||||||
|   ValidateIf, |   ValidateIf, | ||||||
|   IsArray, |  | ||||||
|   IsEnum, |   IsEnum, | ||||||
|   IsNumber, |   IsNumber, | ||||||
|   ValidateNested, |   ValidateNested, | ||||||
|  |   IsLongitude, | ||||||
|  |   IsLatitude, | ||||||
| } from 'class-validator'; | } from 'class-validator'; | ||||||
| import { Frequency } from '../entities/frequency.enum'; | import { Frequency } from '../entities/frequency.enum'; | ||||||
| import { Transform, Type } from 'class-transformer'; | import { Transform, Type } from 'class-transformer'; | ||||||
| import { AddressType } from '../entities/address.enum'; | import { AddressType } from '../entities/address.enum'; | ||||||
| 
 | 
 | ||||||
| export class CreateAdRequest { | export class CreateAdRequest { | ||||||
|   @IsString() |  | ||||||
|   @IsOptional() |  | ||||||
|   @AutoMap() |  | ||||||
|   uuid?: string; |  | ||||||
| 
 |  | ||||||
|   @IsString() |   @IsString() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   userUuid: string; |   userUuid: string; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.passenger ? false : true)) |  | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @IsBoolean() |   @IsBoolean() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   driver?: boolean; |   driver?: boolean; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.driver ? false : true)) |  | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @IsBoolean() |   @IsBoolean() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   passenger?: boolean; |   passenger?: boolean; | ||||||
| 
 | 
 | ||||||
|   @Transform(({ value }) => Frequency[value], { toClassOnly: true }) |   @Transform(({ value }) => Frequency[value - 1], { toClassOnly: true }) | ||||||
|   @IsEnum(Frequency) |   @IsEnum(Frequency) | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   frequency: Frequency; |   frequency: Frequency; | ||||||
| 
 | 
 | ||||||
|   @Type(() => Date) |   @Type(() => Date) | ||||||
|   @IsDate() |   @IsDate() | ||||||
|  |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   fromDate: Date; |   departure?: Date; | ||||||
| 
 | 
 | ||||||
|   @Type(() => Date) |   @Type(() => Date) | ||||||
|   @IsDate() |   @IsDate() | ||||||
|  |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   toDate: Date; |   fromDate?: Date; | ||||||
|  | 
 | ||||||
|  |   @Type(() => Date) | ||||||
|  |   @IsDate() | ||||||
|  |   @IsOptional() | ||||||
|  |   @AutoMap() | ||||||
|  |   toDate?: Date; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsDate() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|  | @ -122,14 +124,11 @@ export class CreateAdRequest { | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   sunMargin?: number; |   sunMargin?: number; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.passenger ? false : true)) |  | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @IsInt() |   @IsInt() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   seatsDriver?: number; |   seatsDriver?: number; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.driver ? false : true)) |  | ||||||
|   //@Transform(({ value }) => (value ? value : 0), { toClassOnly: true })
 |  | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @IsInt() |   @IsInt() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|  | @ -140,18 +139,6 @@ export class CreateAdRequest { | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   strict?: boolean; |   strict?: boolean; | ||||||
| 
 | 
 | ||||||
|   @Type(() => Date) |  | ||||||
|   @IsDate() |  | ||||||
|   @IsOptional() |  | ||||||
|   @AutoMap() |  | ||||||
|   createdAt?: Date; |  | ||||||
| 
 |  | ||||||
|   @Type(() => Date) |  | ||||||
|   @IsDate() |  | ||||||
|   @IsOptional() |  | ||||||
|   @AutoMap() |  | ||||||
|   updatedAt?: Date; |  | ||||||
| 
 |  | ||||||
|   @ValidateNested({ each: true }) |   @ValidateNested({ each: true }) | ||||||
|   @Transform( |   @Transform( | ||||||
|     ({ value }) => { |     ({ value }) => { | ||||||
|  | @ -167,15 +154,15 @@ export class CreateAdRequest { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class AddressDTO { | class AddressDTO { | ||||||
|   @IsNumber() |   @IsInt() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   position: number; |   position: number; | ||||||
| 
 | 
 | ||||||
|   @IsNumber() |   @IsLongitude() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   lon: number; |   lon: number; | ||||||
| 
 | 
 | ||||||
|   @IsNumber() |   @IsLatitude() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   lat: number; |   lat: number; | ||||||
| 
 | 
 | ||||||
|  | @ -197,19 +184,20 @@ class AddressDTO { | ||||||
|   @IsString() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   locality: string; |   locality?: string; | ||||||
| 
 | 
 | ||||||
|   @IsString() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   postalCode: string; |   postalCode?: string; | ||||||
| 
 | 
 | ||||||
|   @IsString() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   country: string; |   country?: string; | ||||||
| 
 | 
 | ||||||
|   @Transform(({ value }) => AddressType[value], { toClassOnly: true }) |   @IsString() | ||||||
|  |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   type: AddressType; |   countryCode?: string; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -5,10 +5,10 @@ import { | ||||||
|   IsBoolean, |   IsBoolean, | ||||||
|   IsDate, |   IsDate, | ||||||
|   IsInt, |   IsInt, | ||||||
|   MinLength, |   IsEnum, | ||||||
|   ValidateIf, |  | ||||||
| } from 'class-validator'; | } from 'class-validator'; | ||||||
| import { Address } from '../entities/address'; | import { Address } from '../entities/address'; | ||||||
|  | import { Frequency } from './frequency.enum'; | ||||||
| 
 | 
 | ||||||
| export class Ad { | export class Ad { | ||||||
|   @IsString() |   @IsString() | ||||||
|  | @ -19,59 +19,60 @@ export class Ad { | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   userUuid: string; |   userUuid: string; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.passenger ? false : true)) |  | ||||||
|   @IsBoolean() |   @IsBoolean() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   driver?: boolean; |   driver?: boolean; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.driver ? false : true)) |  | ||||||
|   @IsBoolean() |   @IsBoolean() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   passenger?: boolean; |   passenger?: boolean; | ||||||
| 
 | 
 | ||||||
|  |   @IsEnum(Frequency) | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   frequency: string; |   frequency: Frequency; | ||||||
| 
 | 
 | ||||||
|  |   @IsDate() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   fromDate: Date; |   fromDate: Date; | ||||||
| 
 | 
 | ||||||
|  |   @IsDate() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   toDate: Date; |   toDate: Date; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsDate() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   monTime?: Date; |   monTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   tueTime?: Date; |   tueTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   wedTime?: Date; |   wedTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   thuTime?: Date; |   thuTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   friTime?: Date; |   friTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   satTime?: Date; |   satTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsDate() |   @IsString() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   sunTime?: Date; |   sunTime?: string; | ||||||
| 
 | 
 | ||||||
|   @IsInt() |   @IsInt() | ||||||
|   @IsOptional() |   @IsOptional() | ||||||
|  | @ -108,12 +109,10 @@ export class Ad { | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   sunMargin?: number; |   sunMargin?: number; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.passenger ? false : true)) |  | ||||||
|   @IsInt() |   @IsInt() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   seatsDriver?: number; |   seatsDriver?: number; | ||||||
| 
 | 
 | ||||||
|   @ValidateIf((ad) => (ad.driver ? false : true)) |  | ||||||
|   @IsInt() |   @IsInt() | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   seatsPassenger?: number; |   seatsPassenger?: number; | ||||||
|  | @ -127,7 +126,6 @@ export class Ad { | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   updatedAt?: Date; |   updatedAt?: Date; | ||||||
| 
 | 
 | ||||||
|   @MinLength(2) |  | ||||||
|   @AutoMap() |   @AutoMap() | ||||||
|   addresses?: Array<Address>; |   addresses?: Array<Address>; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| export enum AddressType { | export enum AddressType { | ||||||
|   HOUSE_NUMBER = 1, |   HOUSE_NUMBER, | ||||||
|   STREET_ADDRESS, |   STREET_ADDRESS, | ||||||
|   LOCALITY, |   LOCALITY, | ||||||
|   VENUE, |   VENUE, | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| export enum Frequency { | export enum Frequency { | ||||||
|   PUNCTUAL = 1, |   PUNCTUAL, | ||||||
|   RECURRENT, |   RECURRENT, | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue