package usecase import ( "context" "time" ) // CreateLoginSessionRequest binds tenant/provider before OAuth login redirect. type CreateLoginSessionRequest struct { TenantID string TenantSlug string Provider string RedirectURI string TTL time.Duration } // LoginSessionView is returned to clients before OAuth login redirect. type LoginSessionView struct { SessionID string ExpiresIn int } // LoginSessionUseCase manages social login sessions (no invite / registration metadata). type LoginSessionUseCase interface { Create(ctx context.Context, req *CreateLoginSessionRequest) (*LoginSessionView, error) Get(ctx context.Context, sessionID string) (*CreateLoginSessionRequest, error) Delete(ctx context.Context, sessionID string) error }