namespace AnalyticsDAL.DTO.Wizard { /// One join the user accepted (verbatim or edited) out of the client-computed /// suggestions (see JoinSuggestionService — the wizard FE runs the same table-name-based /// matching logic against DiscoverSchema's raw ForeignKeys before any DBOBJECT exists) — this, /// not the suggestion itself, is what QuickBuildAsync persists as a DBJOIN row. /// /// References tables by name, not DBObjectId: for a brand-new (not-yet-registered) table, no /// DBObjectId exists until QuickBuildAsync itself creates one earlier in the same call, so the /// caller cannot know it in advance. FromTableName/ToTableName must each match the TableName of /// an entry in AnalyticsWizardBuildRequestDTO.SelectedTables — QuickBuildAsync resolves the real /// DBObjectId internally once every selected table has been registered. public class WizardJoinSelectionDTO { public string FromTableName { get; set; } = string.Empty; public string ToTableName { get; set; } = string.Empty; public string Expression { get; set; } = string.Empty; } }