namespace AdsAnalyticsService.API.Application.DTOs;

/// <summary>
/// EN: Report list item DTO.
/// VI: DTO item danh sách báo cáo.
/// </summary>
public record ReportListDto(
    Guid Id,
    string Name,
    string ReportType,
    DateTime StartDate,
    DateTime EndDate,
    string Status,
    DateTime CreatedAt);

/// <summary>
/// EN: Create report request DTO.
/// VI: DTO request tạo báo cáo.
/// </summary>
public record CreateReportRequest(
    string Name,
    string ReportType,
    DateTime StartDate,
    DateTime EndDate,
    Dictionary<string, object>? Filters = null);

/// <summary>
/// EN: Report detail DTO.
/// VI: DTO chi tiết báo cáo.
/// </summary>
public record ReportDetailDto(
    Guid Id,
    string Name,
    string ReportType,
    DateTime StartDate,
    DateTime EndDate,
    string Status,
    object? Data,
    DateTime CreatedAt);

/// <summary>
/// EN: Schedule report request DTO.
/// VI: DTO request lên lịch báo cáo.
/// </summary>
public record ScheduleReportRequest(
    string Name,
    string ReportType,
    string Schedule, // daily, weekly, monthly
    Dictionary<string, object>? Filters = null);
