feat(creator): Refactor Creator flow, implement book creation pipeline & versioning, and setup Docker staging
- Relocate dashboard routing to /creator and editor workspace to /creator/edit/{BookId}
- Implement CreateBookCommand and handler with transactional default chapter seeding
- Implement PublishBookVersionCommand and GetCreatorDashboardDataQuery
- Build CreatorDashboard modal and UI components with customized dark input styles
- Add run-stage.sh script to automate staging environment setup, database migrations, and health checks
- Update developer workflow rules in GEMINI.md
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NexusReader.Application.DTOs.Creator;
|
||||
|
||||
/// <summary>
|
||||
/// Telemetry metrics for the Creator Dashboard.
|
||||
/// </summary>
|
||||
public record DashboardMetricsDto(
|
||||
int TotalReads,
|
||||
double AvgReadTimeMinutes,
|
||||
int ActiveReaders,
|
||||
decimal GrossRevenue
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Lightweight revision details for the Creator Dashboard.
|
||||
/// </summary>
|
||||
public record CreatorBookRevisionDto(
|
||||
Guid Id,
|
||||
string VersionString,
|
||||
bool IsPublished,
|
||||
DateTime CreatedAt,
|
||||
DateTime? PublishedAt
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Lightweight book publication details for the Creator Dashboard.
|
||||
/// </summary>
|
||||
public record CreatorBookDto(
|
||||
Guid Id,
|
||||
string Title,
|
||||
int WordCount,
|
||||
int AggregatedReads,
|
||||
Guid? FirstChapterId,
|
||||
CreatorBookRevisionDto? LivePublishedRevision,
|
||||
CreatorBookRevisionDto? CurrentDraftRevision
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Root data envelope for Creator Dashboard loading.
|
||||
/// </summary>
|
||||
public record CreatorDashboardDataDto(
|
||||
DashboardMetricsDto Metrics,
|
||||
List<CreatorBookDto> Books
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Request DTO for creating a new Book.
|
||||
/// </summary>
|
||||
public record CreateBookRequestDto(
|
||||
string Title,
|
||||
string? Description
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Response DTO for creating a new Book.
|
||||
/// </summary>
|
||||
public record CreateBookResponseDto(
|
||||
Guid BookId
|
||||
);
|
||||
Reference in New Issue
Block a user