namespace PostgresService.WebApi; public sealed record LoginRequest(string Username, string Password); public sealed record EnrollRequest( string AppId, string DisplayName, IReadOnlyList? RequestedExtensions); public sealed record PostgresClientCredential( string Host, int Port, string Database, string Username, string Password, string SslMode, string ServiceVersion); public sealed record CreateDatabaseRequest(string Name, string? Owner); public sealed record CreateRoleRequest(string Name, string Password); public sealed record QueryRequest(string Database, string Sql); public sealed record BackupRequest(string Database); public sealed record RestoreRequest( string BackupFileName, string TargetDatabase, bool Overwrite, string Confirmation); public sealed record ManagedClient( string AppId, string DisplayName, string DatabaseName, string RoleName, string[] Extensions, string Status, DateTimeOffset CreatedAt, DateTimeOffset UpdatedAt); public sealed record DatabaseSummary( string Name, string Owner, long SizeBytes, int ActiveConnections, bool IsManaged); public sealed record RoleSummary( string Name, bool CanLogin, int ConnectionLimit, bool IsManaged); public sealed record SessionSummary( int ProcessId, string Database, string Username, string State, string? Query, DateTimeOffset? QueryStartedAt); public sealed record BackupSummary( string FileName, string Database, long SizeBytes, DateTimeOffset CreatedAt, string Sha256); public sealed record QueryResult( string[] Columns, IReadOnlyList Rows, int RowCount, bool Truncated, long ElapsedMilliseconds);