import type { Meta, StoryObj } from '@storybook/angular';
import { AanvraagBlockComponent } from './aanvraag-block.component';
import { Aanvraag } from '@registratie/domain/aanvraag';

const base = {
  id: 'a1',
  type: 'registratie',
  documentIds: [],
  createdAt: '2026-06-28T10:00:00Z',
  updatedAt: '2026-06-28T10:05:00Z',
  submittedAt: '2026-06-28T10:05:00Z',
} satisfies Omit<Aanvraag, 'status'>;

const meta: Meta<AanvraagBlockComponent> = {
  title: 'Organisms/Aanvraag Block',
  component: AanvraagBlockComponent,
};
export default meta;
type Story = StoryObj<AanvraagBlockComponent>;

// One story per status variant; the block renders its own body + actions.
export const Concept: Story = { args: { aanvraag: { ...base, status: { tag: 'Concept', stepIndex: 1, stepCount: 3 } } } };
export const InBehandelingAuto: Story = { args: { aanvraag: { ...base, status: { tag: 'InBehandeling', referentie: 'BIG-2026-456789', manual: false } } } };
export const InBehandelingManual: Story = { args: { aanvraag: { ...base, type: 'registratie', status: { tag: 'InBehandeling', referentie: 'BIG-2026-456789', manual: true } } } };
export const Goedgekeurd: Story = { args: { aanvraag: { ...base, status: { tag: 'Goedgekeurd', referentie: 'BIG-2026-456789' } } } };
export const Afgewezen: Story = { args: { aanvraag: { ...base, type: 'herregistratie', status: { tag: 'Afgewezen', referentie: 'BIG-2026-456789', reden: 'Aanvraag afgewezen: geen gewerkte uren geregistreerd.' } } } };
