// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Schema Validation AcknowledgmentRequestSchema should validate acknowledgment request: acknowledgment-request 1`] = `
{
  "acknowledgedAt": "2025-01-01T12:00:00Z",
  "acknowledgedJwtIds": [
    "1704067200_abc123_12345678",
    "1704153600_mno345_87654321",
  ],
  "clientVersion": "TimeSafari-DailyNotificationPlugin/1.0.0",
}
`;

exports[`Schema Validation AcknowledgmentResponseSchema should validate acknowledgment response: acknowledgment-response 1`] = `
{
  "acknowledged": 2,
  "acknowledgmentId": "ack_xyz789",
  "alreadyAcknowledged": 0,
  "failed": 0,
  "timestamp": "2025-01-01T12:00:00Z",
}
`;

exports[`Schema Validation ClockSyncResponseSchema should validate clock sync response: clock-sync-response 1`] = `
{
  "clientTime": 1704067195000,
  "ntpServers": [
    "pool.ntp.org",
    "time.google.com",
  ],
  "offset": 5000,
  "serverTime": 1704067200000,
}
`;

exports[`Schema Validation DeepLinkParamsSchema should reject invalid params: invalid-params-error 1`] = `
[ZodError: [
  {
    "validation": "regex",
    "code": "invalid_string",
    "message": "Invalid",
    "path": [
      "jwtIds",
      0
    ]
  },
  {
    "validation": "regex",
    "code": "invalid_string",
    "message": "Invalid",
    "path": [
      "projectId"
    ]
  }
]]
`;

exports[`Schema Validation DeepLinkParamsSchema should validate multiple JWT IDs params: multiple-jwt-ids-params 1`] = `
{
  "jwtIds": [
    "1704067200_abc123_12345678",
    "1704153600_mno345_87654321",
    "1704240000_new123_abcdef01",
  ],
}
`;

exports[`Schema Validation DeepLinkParamsSchema should validate project ID params: project-id-params 1`] = `
{
  "projectId": "test_project_123",
}
`;

exports[`Schema Validation DeepLinkParamsSchema should validate shortlink params: shortlink-params 1`] = `
{
  "shortlink": "abc123def456789",
}
`;

exports[`Schema Validation DeepLinkParamsSchema should validate single JWT ID params: single-jwt-id-params 1`] = `
{
  "jwtId": "1704067200_abc123_def45678",
}
`;

exports[`Schema Validation ErrorResponseSchema should validate generic error: generic-error 1`] = `
{
  "details": {
    "component": "database",
    "operation": "query_starred_projects",
  },
  "error": "internal_server_error",
  "message": "Database connection timeout",
  "requestId": "req_mno345",
}
`;

exports[`Schema Validation ErrorResponseSchema should validate rate limit error: rate-limit-error 1`] = `
{
  "code": "RATE_LIMIT_EXCEEDED",
  "details": {
    "limit": 100,
    "resetAt": "2025-01-01T12:01:00Z",
    "window": "1m",
  },
  "error": "Rate limit exceeded",
  "message": "Rate limit exceeded for DID",
  "requestId": "req_jkl012",
  "retryAfter": 60,
}
`;

exports[`Schema Validation StarredProjectsResponseSchema should validate canonical response envelope: canonical-response-envelope 1`] = `
{
  "data": [
    {
      "planSummary": {
        "agentDid": "did:key:test_agent_1",
        "description": "First test project",
        "endTime": "2025-01-31T23:59:59Z",
        "handleId": "test_project_1",
        "issuerDid": "did:key:test_issuer_1",
        "jwtId": "1704067200_abc123_def45678",
        "locLat": 40.7128,
        "locLon": -74.006,
        "name": "Test Project 1",
        "startTime": "2025-01-01T00:00:00Z",
        "url": "https://project-url.com",
        "version": "1.0.0",
      },
      "previousClaim": {
        "claimData": {
          "progress": 0.75,
          "status": "in_progress",
        },
        "claimType": "project_update",
        "jwtId": "1703980800_xyz789_12345678",
        "metadata": {
          "createdAt": "2025-01-01T10:00:00Z",
          "updatedAt": "2025-01-01T12:00:00Z",
        },
      },
    },
  ],
  "hitLimit": false,
  "pagination": {
    "hasMore": false,
    "nextAfterId": null,
  },
}
`;

exports[`Schema Validation StarredProjectsResponseSchema should validate empty response: empty-response 1`] = `
{
  "data": [],
  "hitLimit": false,
  "pagination": {
    "hasMore": false,
    "nextAfterId": null,
  },
}
`;

exports[`Schema Validation StarredProjectsResponseSchema should validate paginated response: paginated-response 1`] = `
{
  "data": [],
  "hitLimit": true,
  "pagination": {
    "hasMore": true,
    "nextAfterId": "1704153600_mno345_87654321",
  },
}
`;
