using Tiku.Domain.Tenancy; namespace Tiku.Application.Auth; public sealed record AuthTokenPair( string AccessToken, string RefreshToken, DateTimeOffset AccessTokenExpiresAt, DateTimeOffset RefreshTokenExpiresAt); public sealed record TenantMembershipSummary( Guid TenantId, string TenantName, TenantRole Role, MembershipStatus Status); public sealed record AuthenticatedUser( Guid UserId, string? Phone, string? Email, string? Name, TenantMembershipSummary Tenant, AuthTokenPair Tokens); public sealed record PasswordLoginRequest( Guid TenantId, string Phone, string Password, string? IpAddress, string? UserAgent); public sealed record SmsLoginRequest( Guid TenantId, string Phone, string Code, string? IpAddress, string? UserAgent); public sealed record RefreshSessionRequest( string RefreshToken, string? IpAddress, string? UserAgent); public sealed record LogoutSessionRequest( string RefreshToken); public sealed record SmsSendResult( Guid VerificationId, DateTimeOffset ExpiresAt); public sealed record SendSmsCodeRequest( Guid TenantId, string Phone, SmsPurpose Purpose, string? IpAddress, string? UserAgent);