Initial commit: Meshkee CMS API
NestJS backend with Prisma, Docker Compose for Postgres/Redis, and deploy docs for the production VM.
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
import { Type } from 'class-transformer';
|
||||
import {
|
||||
IsArray,
|
||||
IsIn,
|
||||
IsInt,
|
||||
IsOptional,
|
||||
IsString,
|
||||
MinLength,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
|
||||
class BusinessPhoneNumberDto {
|
||||
@IsIn(['landline', 'cell'])
|
||||
type!: 'landline' | 'cell';
|
||||
|
||||
@IsString()
|
||||
@MinLength(3)
|
||||
number!: string;
|
||||
}
|
||||
|
||||
class BusinessSocialMediaDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
whatsapp?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
telegram?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
instagram?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
linkedin?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
youtube?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
aparat?: string;
|
||||
}
|
||||
|
||||
class BusinessAddressDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
id?: string;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1)
|
||||
province!: string;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1)
|
||||
city!: string;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1)
|
||||
address!: string;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1)
|
||||
postalCode!: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
landline?: string | null;
|
||||
}
|
||||
|
||||
export class UpdateBusinessProfileDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@MinLength(2)
|
||||
nameEn?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@MinLength(2)
|
||||
nameFa?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
about?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
vision?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@IsString({ each: true })
|
||||
emails?: string[];
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => BusinessPhoneNumberDto)
|
||||
phoneNumbers?: BusinessPhoneNumberDto[];
|
||||
|
||||
@IsOptional()
|
||||
@ValidateNested()
|
||||
@Type(() => BusinessSocialMediaDto)
|
||||
socialMedia?: BusinessSocialMediaDto;
|
||||
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
@IsInt()
|
||||
logoMediaId?: number | null;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@Type(() => Number)
|
||||
@IsInt({ each: true })
|
||||
categoryIds?: number[];
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => BusinessAddressDto)
|
||||
addresses?: BusinessAddressDto[];
|
||||
}
|
||||
Reference in New Issue
Block a user