# Admin Subscription API

## Get Current Subscription

Returns the current subscription plan and status for the admin's company.

```
GET /api/subscription/admin/my-status
```

**Headers:**
```http
Authorization: Bearer <admin-jwt-token>
```

**Response (200 OK):**
```json
{
  "status": "success",
  "data": {
    "reg_id": 1,
    "company_name": "My Company",
    "plan": {
      "id": 1,
      "name": "Annual Plan",
      "price": 0.00
    },
    "subscription_amount": 0.00,
    "subscription_valid_until": "2027-07-15",
    "subscription_status": "active",
    "subscription_start_date": "2026-07-15",
    "is_active": true,
    "remaining_days": 360,
    "show_warning": false
  }
}
```

---

## Get Subscription History

Returns all payment/subscription history entries for the admin's company.

```
GET /api/subscription/admin/my-history
```

**Headers:**
```http
Authorization: Bearer <admin-jwt-token>
```

**Response (200 OK):**
```json
{
  "status": "success",
  "count": 2,
  "subscription": {
    "valid_until": "2027-07-15",
    "status": "active",
    "amount": 0.00,
    "start_date": "2026-07-15",
    "is_active": true,
    "remaining_days": 360
  },
  "data": [
    {
      "id": 1,
      "reg_id": 1,
      "plan_id": 1,
      "amount": 0.00,
      "razorpay_order_id": null,
      "razorpay_payment_id": null,
      "razorpay_signature": null,
      "payment_method": "manual",
      "status": "completed",
      "paid_by": "Admin",
      "valid_from": "2026-07-15",
      "valid_until": "2027-07-15",
      "notes": null,
      "created_at": "2026-07-15T12:00:00.000Z",
      "updated_at": "2026-07-15T12:00:00.000Z",
      "plan": {
        "id": 1,
        "name": "Annual Plan",
        "slug": "annual-plan",
        "price": 0.00
      }
    }
  ]
}
```

---

## Implementation Details

- `reg_id` is resolved automatically from the authenticated admin's JWT token (either from `req.admin.reg_id` directly, or looked up via `Company → reg_id` using `req.admin.com_id`)
- Subscription status is computed dynamically:
  - `is_active`: `true` if `subscription_valid_until` is in the future
  - `remaining_days`: days until expiry
  - `show_warning`: `true` if 30 or fewer days remaining
- **Source files**:
  - Controller: `controllers/SubscriptionController.js` — methods `adminMyStatus` (line ~309), `adminMyHistory` (line ~356)
  - Routes: `routes/subscriptionRoutes.js` (lines 21-22)
