datasynth_core/models/governance.rs
1//! Governance models for board minutes and corporate oversight documentation.
2//!
3//! These models capture the output of board and audit committee meetings,
4//! supporting ISA 260 communication with those charged with governance.
5
6use chrono::NaiveDate;
7use serde::{Deserialize, Serialize};
8use uuid::Uuid;
9
10/// Minutes of a board or audit committee meeting.
11///
12/// Auditors review board minutes (ISA 300, ISA 315) to understand the
13/// governance environment, key decisions, and risk discussions that may
14/// affect the audit approach.
15#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct BoardMinutes {
17 /// Unique identifier for this meeting
18 pub meeting_id: Uuid,
19 /// Date of the meeting
20 pub meeting_date: NaiveDate,
21 /// Type of meeting: "regular", "special", or "audit_committee"
22 pub meeting_type: String,
23 /// Names or IDs of attendees
24 #[serde(default)]
25 pub attendees: Vec<String>,
26 /// Key decisions made during the meeting
27 #[serde(default)]
28 pub key_decisions: Vec<String>,
29 /// Risk topics discussed
30 #[serde(default)]
31 pub risk_discussions: Vec<String>,
32 /// Matters specifically discussed by or relevant to the audit committee
33 #[serde(default)]
34 pub audit_committee_matters: Vec<String>,
35}