# meeting-management Specification ## Purpose TBD - created by archiving change add-meeting-assistant-mvp. Update Purpose after archive. ## Requirements ### Requirement: Create Meeting The system SHALL allow users to create meetings with required metadata. #### Scenario: Create meeting with all fields - **WHEN** user submits POST /api/meetings with subject, meeting_time, chairperson, location, recorder, attendees - **THEN** a new meeting record SHALL be created with auto-generated UUID and the meeting data SHALL be returned #### Scenario: Create meeting with missing required fields - **WHEN** user submits POST /api/meetings without subject or meeting_time - **THEN** the server SHALL return HTTP 400 with validation error details #### Scenario: Recorder defaults to current user - **WHEN** user creates meeting without specifying recorder - **THEN** the recorder field SHALL default to the logged-in user's email ### Requirement: List Meetings The system SHALL allow users to retrieve a list of meetings. #### Scenario: List all meetings for admin - **WHEN** admin user requests GET /api/meetings - **THEN** all meetings SHALL be returned #### Scenario: List meetings for regular user - **WHEN** regular user requests GET /api/meetings - **THEN** only meetings where user is creator, recorder, or attendee SHALL be returned ### Requirement: Get Meeting Details The system SHALL allow users to retrieve full meeting details including conclusions and action items. #### Scenario: Get meeting with related data - **WHEN** user requests GET /api/meetings/:id - **THEN** meeting record with all conclusions and action_items SHALL be returned #### Scenario: Get non-existent meeting - **WHEN** user requests GET /api/meetings/:id for non-existent ID - **THEN** the server SHALL return HTTP 404 ### Requirement: Update Meeting The system SHALL allow users to update meeting data, conclusions, and action items. #### Scenario: Update meeting metadata - **WHEN** user submits PUT /api/meetings/:id with updated fields - **THEN** the meeting record SHALL be updated and new data returned #### Scenario: Update action item status - **WHEN** user updates action item status to "Done" - **THEN** the action_items record SHALL reflect the new status ### Requirement: Delete Meeting The system SHALL allow authorized users to delete meetings. #### Scenario: Admin deletes any meeting - **WHEN** admin user requests DELETE /api/meetings/:id - **THEN** the meeting and all related conclusions and action_items SHALL be deleted #### Scenario: User deletes own meeting - **WHEN** user requests DELETE /api/meetings/:id for meeting they created - **THEN** the meeting and all related data SHALL be deleted ### Requirement: System Code Generation The system SHALL auto-generate unique system codes for conclusions and action items. #### Scenario: Generate conclusion code - **WHEN** a conclusion is created for a meeting on 2025-12-10 - **THEN** the system_code SHALL follow format C-20251210-XX where XX is sequence number #### Scenario: Generate action item code - **WHEN** an action item is created for a meeting on 2025-12-10 - **THEN** the system_code SHALL follow format A-20251210-XX where XX is sequence number