// ═══════════════════════════════════════════════════════════
// Asset Types — from CONTRACTS.md §1.4
// ═══════════════════════════════════════════════════════════

import type { PipelineStage } from "./pipeline.js";

export type AssetType = "code" | "config" | "docs" | "build" | "test_report" | "screenshot";

export interface Asset {
  id: string;
  pipelineId: string;
  stageName: PipelineStage | null;
  type: AssetType;
  name: string;
  path: string | null;
  storageKey: string;
  storageBucket: string | null;
  sizeBytes: number;
  contentType: string;
  checksumSha256: string;
  version: number;
  previousVersionId: string | null;
  generatedBy: string;
  generatorType: "user" | "agent" | "ci";
  metadata: Record<string, unknown>;
  createdAt: string;
}
