namespace FlatRender.ContentSvc.Domain.Entities; public class SceneCharacter { public Guid Id { get; set; } = Guid.NewGuid(); public Guid SceneId { get; set; } public Scene Scene { get; set; } = default!; public string Key { get; set; } = default!; public string Name { get; set; } = default!; public string? Icon { get; set; } public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public ICollection Controllers { get; set; } = []; } public class SceneCharacterController { public Guid Id { get; set; } = Guid.NewGuid(); public Guid SceneCharacterId { get; set; } public SceneCharacter Character { get; set; } = default!; public string Name { get; set; } = default!; public string Key { get; set; } = default!; public string? DefaultValue { get; set; } public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public ICollection Options { get; set; } = []; } public class SceneControllerOption { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ControllerId { get; set; } public SceneCharacterController Controller { get; set; } = default!; public string Name { get; set; } = default!; public string? Icon { get; set; } public string Value { get; set; } = default!; public int Sort { get; set; } } public class ProjectCharacterController { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ProjectId { get; set; } public Project Project { get; set; } = default!; public string Name { get; set; } = default!; public string Key { get; set; } = default!; public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public ICollection Options { get; set; } = []; } public class ProjectCharacterControllerOption { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ControllerId { get; set; } public ProjectCharacterController Controller { get; set; } = default!; public string Name { get; set; } = default!; public string? Icon { get; set; } public string Value { get; set; } = default!; public int Sort { get; set; } } public class ProjectCharacterPreset { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ProjectId { get; set; } public Project Project { get; set; } = default!; public Guid Key { get; set; } = Guid.NewGuid(); public string Name { get; set; } = default!; public string? Icon { get; set; } public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public ICollection PresetControllers { get; set; } = []; } public class PresetCharacterController { public Guid Id { get; set; } = Guid.NewGuid(); public Guid CharacterPresetId { get; set; } public ProjectCharacterPreset Preset { get; set; } = default!; public string Name { get; set; } = default!; public string Key { get; set; } = default!; public string Value { get; set; } = default!; public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } public class PresetStory { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ProjectId { get; set; } public Project Project { get; set; } = default!; public string Name { get; set; } = default!; public string? Description { get; set; } public string? Demo { get; set; } public Guid? MusicId { get; set; } public MusicTrack? Music { get; set; } public string? ScenesSpa { get; set; } public int Sort { get; set; } public bool IsPublished { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public DateTime? DeletedAt { get; set; } public ICollection Scenes { get; set; } = []; } public class PresetScene { public Guid Id { get; set; } = Guid.NewGuid(); public Guid PresetStoryId { get; set; } public PresetStory Story { get; set; } = default!; public Guid SceneId { get; set; } public Scene Scene { get; set; } = default!; public int Sort { get; set; } public decimal? DefaultDurationSec { get; set; } }