import type { Response } from 'express';
import { env } from '../config/env.js';

export function successResponse<T>(res: Response, message = 'Success', data: T | null = null, statusCode = 200) {
  return res.status(statusCode).json({ success: true, message, data });
}

export function errorResponse(res: Response, message = 'Something went wrong', statusCode = 500, errors: unknown = null) {
  return res.status(statusCode).json({ success: false, message, errors });
}

// 403 for every request from a suspended organization. The apps recognise
// `code: 'tenant_suspended'` and show a "suspended" screen with support contact.
export function tenantSuspendedResponse(res: Response, organizationName: string) {
  return res.status(403).json({
    success: false,
    message: `${organizationName}'s BlenAxis subscription is suspended`,
    errors: null,
    code: 'tenant_suspended',
    organizationName,
    supportEmail: env.SUPPORT_EMAIL,
  });
}
