File

src/client-portal/dto/create-portal-token.dto.ts

Index

Properties

Properties

Optional commodity
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
Optional deliveryDate
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsDateString()
destAddress
Type : string
Decorators :
@ApiProperty()
@IsString()
Optional destName
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
originAddress
Type : string
Decorators :
@ApiProperty()
@IsString()
Optional originName
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
Optional pallets
Type : number
Decorators :
@ApiPropertyOptional()
@IsOptional()
Optional pickupDate
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsDateString()
Optional pieces
Type : number
Decorators :
@ApiPropertyOptional()
@IsOptional()
Optional priority
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
Optional referenceNumber
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
Optional specialInstructions
Type : string
Decorators :
@ApiPropertyOptional()
@IsOptional()
@IsString()
Optional website
Type : string
Decorators :
@ApiPropertyOptional({description: 'Honeypot — bots fill this, humans leave it empty'})
@IsOptional()
@IsString()
Optional weight
Type : number
Decorators :
@ApiPropertyOptional()
@IsOptional()
import { IsUUID, IsOptional, IsString, IsInt, Min, IsDateString } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

export class CreatePortalTokenDto {
  @ApiProperty({ description: 'Client ID to generate the portal link for' })
  @IsUUID()
  clientId: string;

  @ApiPropertyOptional({ description: 'Friendly label (e.g. "Main contact", "Ops team")' })
  @IsOptional()
  @IsString()
  label?: string;

  @ApiPropertyOptional({ description: 'Optional ISO date when the token expires' })
  @IsOptional()
  @IsDateString()
  expiresAt?: string;

  @ApiPropertyOptional({ description: 'Maximum number of submissions allowed' })
  @IsOptional()
  @IsInt()
  @Min(1)
  maxUses?: number;
}

export class SubmitPortalOrderDto {
  @ApiProperty()
  @IsString()
  originAddress: string;

  @ApiProperty()
  @IsString()
  destAddress: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  originName?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  destName?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  commodity?: string;

  @ApiPropertyOptional()
  @IsOptional()
  weight?: number;

  @ApiPropertyOptional()
  @IsOptional()
  pieces?: number;

  @ApiPropertyOptional()
  @IsOptional()
  pallets?: number;

  @ApiPropertyOptional()
  @IsOptional()
  @IsDateString()
  pickupDate?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsDateString()
  deliveryDate?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  priority?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  specialInstructions?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  referenceNumber?: string;

  @ApiPropertyOptional({ description: 'Honeypot — bots fill this, humans leave it empty' })
  @IsOptional()
  @IsString()
  website?: string;
}

results matching ""

    No results matching ""