9ec6313f4d
- Add CalendarSource Prisma model with encrypted credentials (AES-256-GCM) - Create CalendarCryptoService with encrypt/decrypt using CALENDAR_ENCRYPTION_KEY - Create CalendarController with source CRUD endpoints (GET/POST/PATCH/DELETE) - Create CalendarService with ownership checks and SSRF URL validation - Add DTOs with https-only URL validation and class-validator decorators - Register CalendarModule in AppModule - Install tsdav, node-ical, ews-javascript-api, @microsoft/microsoft-graph-client - Stub provider files for Task 2 compilation
17 lines
331 B
TypeScript
17 lines
331 B
TypeScript
import { IsDateString, IsOptional } from 'class-validator';
|
|
|
|
/**
|
|
* DTO for querying aggregated calendar events.
|
|
*
|
|
* Default window: now to now + 30 days (applied in CalendarService).
|
|
*/
|
|
export class CalendarEventsQueryDto {
|
|
@IsOptional()
|
|
@IsDateString()
|
|
from?: string;
|
|
|
|
@IsOptional()
|
|
@IsDateString()
|
|
to?: string;
|
|
}
|