[ { "id": "F001", "description": "Add 'Drafts' tab to Contracts management page (third tab after Templates and Client Contracts)", "implemented": true, "prdRefs": ["FR1"] }, { "id": "F002", "description": "Drafts tab shows count badge indicating number of draft contracts", "implemented": true, "prdRefs": ["FR1"] }, { "id": "F003", "description": "Create getDraftContracts action to fetch all draft contracts for tenant", "implemented": true, "prdRefs": ["FR5"] }, { "id": "F004", "description": "Drafts DataTable displays contract name column", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F005", "description": "Drafts DataTable displays client name column", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F006", "description": "Drafts DataTable displays created date column", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F007", "description": "Drafts DataTable displays last modified date column", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F008", "description": "Drafts DataTable displays actions dropdown column with Resume and Discard options", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F009", "description": "Drafts list supports sorting by columns (default: last modified descending)", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F010", "description": "Drafts list supports search/filter by contract name", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F011", "description": "Drafts list supports search/filter by client name", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F012", "description": "Drafts list uses existing pagination patterns", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F013", "description": "Drafts list shows empty state when no drafts exist", "implemented": true, "prdRefs": ["FR2"] }, { "id": "F014", "description": "Create getDraftContractForResume action to fetch complete draft data for wizard", "implemented": true, "prdRefs": ["FR5"] }, { "id": "F015", "description": "Resume action opens ContractWizard dialog with draft data pre-populated", "implemented": true, "prdRefs": ["FR3"] }, { "id": "F016", "description": "Resumed wizard starts at Step 1 (Contract Basics)", "implemented": true, "prdRefs": ["FR3"] }, { "id": "F017", "description": "All wizard steps pre-populate with saved draft data when resuming", "implemented": true, "prdRefs": ["FR3"] }, { "id": "F018", "description": "Save Draft in resumed wizard updates the existing draft (not creates new)", "implemented": true, "prdRefs": ["FR3", "FR5"] }, { "id": "F019", "description": "Completing wizard from resumed draft activates contract (status changes from draft to active)", "implemented": true, "prdRefs": ["FR3"] }, { "id": "F020", "description": "Discard action shows confirmation dialog with contract name and client name", "implemented": true, "prdRefs": ["FR4"] }, { "id": "F021", "description": "Confirmation dialog has Cancel and Discard buttons", "implemented": true, "prdRefs": ["FR4"] }, { "id": "F022", "description": "Confirming discard deletes the draft contract using existing deleteContract action", "implemented": true, "prdRefs": ["FR4"] }, { "id": "F023", "description": "Drafts list refreshes after successful deletion", "implemented": true, "prdRefs": ["FR4"] }, { "id": "F024", "description": "All draft queries filter by tenant for multi-tenant isolation", "implemented": true, "prdRefs": ["FR5"] }, { "id": "F025", "description": "Drafts functionality respects existing contract permissions (create, delete)", "implemented": true, "prdRefs": ["FR5"] } ]