Initial WhaleTown V2 backend

This commit is contained in:
2026-07-20 02:00:52 +08:00
commit c995891c1f
265 changed files with 75689 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import { IsString, IsOptional, IsNumber, IsEnum, IsDateString, IsObject } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { NoticeType } from '../notice.entity';
export class CreateNoticeDto {
@ApiProperty({ description: '通知标题' })
@IsString()
title: string;
@ApiProperty({ description: '通知内容' })
@IsString()
content: string;
@ApiPropertyOptional({ enum: NoticeType, description: '通知类型' })
@IsOptional()
@IsEnum(NoticeType)
type?: NoticeType;
@ApiPropertyOptional({ description: '接收者用户ID不填表示广播' })
@IsOptional()
@IsNumber()
userId?: number;
@ApiPropertyOptional({ description: '发送者用户ID' })
@IsOptional()
@IsNumber()
senderId?: number;
@ApiPropertyOptional({ description: '计划发送时间' })
@IsOptional()
@IsDateString()
scheduledAt?: string;
@ApiPropertyOptional({ description: '额外元数据' })
@IsOptional()
@IsObject()
metadata?: Record<string, any>;
}