=== ALL SCHEMAS WITH PROPERTIES ===

Model: Activity
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: null,integer,string (format: int64, nullable: false)
  milestoneId: null,integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  approvedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  category: null,string (format: -, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)
  amount: number,string (format: double, nullable: false)
  title: null,string (format: -, nullable: false)
  description: null,string (format: -, nullable: false)
  performedAt: null,string (format: date-time, nullable: false)

Model: Award
  Required: []
  id: integer,string (format: int64, nullable: false)
  organisationId: integer,string (format: int64, nullable: false)
  programmeId: integer,string (format: int64, nullable: false)
  projectId: null,integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  approvedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)
  amount: number,string (format: double, nullable: false)

Model: Budget
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  approvedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  name: null,string (format: -, nullable: false)
  amount: number,string (format: double, nullable: false)

Model: Contract
  Required: []
  id: integer,string (format: int64, nullable: false)
  awardId: integer,string (format: int64, nullable: false)
  externalSignatureId: null,string (format: -, nullable: false)
  signedDocumentUrl: null,string (format: -, nullable: false)
  effectiveAt: null,string (format: date-time, nullable: false)
  expiresAt: null,string (format: date-time, nullable: false)
  totalValue: number,string (format: double, nullable: false)
  status: ContractStatus (format: -, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)

Model: CreateActivityRequest
  Required: [
  'projectId',
  'milestoneId',
  'category',
  'amount',
  'title',
  'description',
  'performedAt'
]
  projectId*: integer,string (format: int64, nullable: false)
  milestoneId*: null,integer,string (format: int64, nullable: false)
  category*: string (format: -, nullable: false)
  amount*: number,string (format: double, nullable: false)
  title*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)
  performedAt*: null,string (format: date-time, nullable: false)

Model: CreateAwardRequest
  Required: [ 'organisationId', 'programmeId', 'amount' ]
  organisationId*: integer,string (format: int64, nullable: false)
  programmeId*: integer,string (format: int64, nullable: false)
  amount*: number,string (format: double, nullable: false)

Model: CreateBudgetRequest
  Required: [ 'projectId', 'name', 'amount' ]
  projectId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  amount*: number,string (format: double, nullable: false)

Model: CreateContractRequest
  Required: [ 'awardId', 'totalValue', 'effectiveAt', 'expiresAt' ]
  awardId*: integer,string (format: int64, nullable: false)
  totalValue*: number,string (format: double, nullable: false)
  effectiveAt*: string (format: date-time, nullable: false)
  expiresAt*: string (format: date-time, nullable: false)

Model: CreateDisbursementRequest
  Required: [ 'projectId', 'milestoneId', 'amount' ]
  projectId*: integer,string (format: int64, nullable: false)
  milestoneId*: null,integer,string (format: int64, nullable: false)
  amount*: number,string (format: double, nullable: false)

Model: CreateIndicatorRequest
  Required: [
  'projectId',
  'name',
  'unitOfMeasure',
  'baselineAmount',
  'targetAmount'
]
  projectId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  unitOfMeasure*: UnitOfMeasure (format: -, nullable: false)
  baselineAmount*: number,string (format: double, nullable: false)
  targetAmount*: number,string (format: double, nullable: false)

Model: CreateMilestoneRequest
  Required: [ 'projectId', 'dueAt', 'name', 'priority' ]
  projectId*: integer,string (format: int64, nullable: false)
  dueAt*: string (format: date-time, nullable: false)
  name*: string (format: -, nullable: false)
  priority*: Priority (format: -, nullable: false)

Model: CreateOrganisationRequest
  Required: [ 'name', 'registrationNo', 'email' ]
  name*: string (format: -, nullable: false)
  registrationNo*: string (format: -, nullable: false)
  email*: string (format: -, nullable: false)
  type: OrganisationType (format: -, nullable: false)

Model: CreatePortfolioRequest
  Required: [ 'name', 'description', 'organisationId', 'ownerId' ]
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)
  organisationId*: integer,string (format: int64, nullable: false)
  ownerId*: string (format: uuid, nullable: false)

Model: CreateProgrammeRequest
  Required: [ 'portfolioId', 'name', 'ownerId' ]
  portfolioId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  ownerId*: string (format: uuid, nullable: false)

Model: CreateProjectRequest
  Required: [ 'programmeId', 'name', 'description', 'sector', 'projectType' ]
  programmeId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)
  sector*: IndustrySector (format: -, nullable: false)
  projectType*: ProjectType (format: -, nullable: false)

Model: CreateRiskRequest
  Required: [ 'projectId', 'likelihood', 'impact', 'name', 'description' ]
  projectId*: integer,string (format: int64, nullable: false)
  likelihood*: RiskLikelihood (format: -, nullable: false)
  impact*: RiskImpact (format: -, nullable: false)
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)

Model: Dashboard
  Required: [
  'portfolioValue',
  'activeAwards',
  'disbursed',
  'onTrackPercentage',
  'atRiskCount',
  'beneficiariesReached'
]
  portfolioValue*: number,string (format: double, nullable: false)
  activeAwards*: integer,string (format: int32, nullable: false)
  disbursed*: number,string (format: double, nullable: false)
  onTrackPercentage*: number,string (format: double, nullable: false)
  atRiskCount*: integer,string (format: int32, nullable: false)
  beneficiariesReached*: integer,string (format: int32, nullable: false)

Model: Disbursement
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  milestoneId: null,integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  amount: number,string (format: double, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)

Model: Evidence
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  milestoneId: integer,string (format: int64, nullable: false)
  indicatorId: integer,string (format: int64, nullable: false)
  activityId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  version: integer,string (format: int32, nullable: false)
  type: EvidenceType (format: -, nullable: false)
  documentUrl: null,string (format: -, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)

Model: ExecuteContractRequest
  Required: [ 'contractId', 'externalSignatureId', 'signedDocumentUrl' ]
  contractId*: integer,string (format: int64, nullable: false)
  externalSignatureId*: string (format: -, nullable: false)
  signedDocumentUrl*: string (format: -, nullable: false)

Model: Indicator
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  name: null,string (format: -, nullable: false)
  unitOfMeasure: any (format: -, nullable: false)
  baselineAmount: number,string (format: double, nullable: false)
  targetAmount: number,string (format: double, nullable: false)
  actualAmount: number,string (format: double, nullable: false)

Model: Instrument
  Required: []
  id: integer,string (format: int64, nullable: false)
  programmeId: integer,string (format: int64, nullable: false)
  code: null,string (format: -, nullable: false)
  name: null,string (format: -, nullable: false)
  description: null,string (format: -, nullable: false)
  status: ActivityStatus (format: -, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)

Model: Invite
  Required: []
  id: integer,string (format: int64, nullable: false)
  organisationId: integer,string (format: int64, nullable: false)
  invitedOrganisationId: integer,string (format: int64, nullable: false)
  awardId: integer,string (format: int64, nullable: false)
  contractId: integer,string (format: int64, nullable: false)
  recipient: string (format: uuid, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)

Model: InviteRequest
  Required: [
  'organisationId',
  'invitedOrganisationId',
  'awardId',
  'contractId',
  'recipient',
  'message',
  'platform'
]
  organisationId*: integer,string (format: int64, nullable: false)
  invitedOrganisationId*: integer,string (format: int64, nullable: false)
  awardId*: integer,string (format: int64, nullable: false)
  contractId*: integer,string (format: int64, nullable: false)
  recipient*: string (format: uuid, nullable: false)
  message*: string (format: -, nullable: false)
  platform*: NotificationPlatform (format: -, nullable: false)

Model: Milestone
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  dueAt: string (format: date-time, nullable: false)
  name: null,string (format: -, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)
  priority: Priority (format: -, nullable: false)

Model: Organisation
  Required: []
  id: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  registrationNo: null,string (format: -, nullable: false)
  name: null,string (format: -, nullable: false)
  email: null,string (format: -, nullable: false)
  type: OrganisationType (format: -, nullable: false)
  status: ActivityStatus (format: -, nullable: false)

Model: Portfolio
  Required: []
  id: integer,string (format: int64, nullable: false)
  organisationId: integer,string (format: int64, nullable: false)
  ownedBy: string (format: uuid, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  name: null,string (format: -, nullable: false)
  description: null,string (format: -, nullable: false)

Model: ProblemDetails
  Required: []
  type: null,string (format: -, nullable: false)
  title: null,string (format: -, nullable: false)
  status: null,integer,string (format: int32, nullable: false)
  detail: null,string (format: -, nullable: false)
  instance: null,string (format: -, nullable: false)

Model: Programme
  Required: []
  id: integer,string (format: int64, nullable: false)
  portfolioId: integer,string (format: int64, nullable: false)
  ownedBy: string (format: uuid, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  name: null,string (format: -, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)

Model: Project
  Required: []
  id: integer,string (format: int64, nullable: false)
  programmeId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  updatedBy: null,string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  updatedAt: null,string (format: date-time, nullable: false)
  startedAt: null,string (format: date-time, nullable: false)
  endedAt: null,string (format: date-time, nullable: false)
  sector: IndustrySector (format: -, nullable: false)
  projectType: ProjectType (format: -, nullable: false)
  name: null,string (format: -, nullable: false)
  description: null,string (format: -, nullable: false)
  status: ApprovalStatus (format: -, nullable: false)

Model: Risk
  Required: []
  id: integer,string (format: int64, nullable: false)
  projectId: integer,string (format: int64, nullable: false)
  createdBy: string (format: uuid, nullable: false)
  createdAt: string (format: date-time, nullable: false)
  likelihood: RiskLikelihood (format: -, nullable: false)
  impact: RiskImpact (format: -, nullable: false)
  name: null,string (format: -, nullable: false)
  description: null,string (format: -, nullable: false)

Model: UpdateContractRequest
  Required: [ 'contractId', 'status' ]
  contractId*: integer,string (format: int64, nullable: false)
  status*: ContractStatus (format: -, nullable: false)

Model: UpdateDisbursementRequest
  Required: [ 'disbursementId', 'milestoneId', 'amount' ]
  disbursementId*: integer,string (format: int64, nullable: false)
  milestoneId*: null,integer,string (format: int64, nullable: false)
  amount*: number,string (format: double, nullable: false)

Model: UpdateEvidenceRequest
  Required: [ 'evidenceId', 'version', 'evidenceType', 'status' ]
  evidenceId*: integer,string (format: int64, nullable: false)
  version*: integer,string (format: int32, nullable: false)
  evidenceType*: EvidenceType (format: -, nullable: false)
  status*: ApprovalStatus (format: -, nullable: false)

Model: UpdateMilestoneRequest
  Required: [ 'milestoneId', 'dueAt', 'name', 'priority', 'status' ]
  milestoneId*: integer,string (format: int64, nullable: false)
  dueAt*: string (format: date-time, nullable: false)
  name*: string (format: -, nullable: false)
  priority*: Priority (format: -, nullable: false)
  status*: ApprovalStatus (format: -, nullable: false)

Model: UpdateOrganisationRequest
  Required: [ 'organisationId', 'name', 'registrationNo', 'email', 'type' ]
  organisationId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  registrationNo*: string (format: -, nullable: false)
  email*: string (format: -, nullable: false)
  type*: OrganisationType (format: -, nullable: false)

Model: UpdatePortfolioRequest
  Required: [ 'portfolioId', 'name', 'description', 'ownerId' ]
  portfolioId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)
  ownerId*: string (format: uuid, nullable: false)

Model: UpdateProgrammeRequest
  Required: [ 'programmeId', 'name', 'ownerId', 'status' ]
  programmeId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  ownerId*: string (format: uuid, nullable: false)
  status*: ApprovalStatus (format: -, nullable: false)

Model: UpdateProjectRequest
  Required: [
  'projectId',
  'name',
  'description',
  'startedAt',
  'endedAt',
  'sector',
  'projectType'
]
  projectId*: integer,string (format: int64, nullable: false)
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)
  startedAt*: null,string (format: date-time, nullable: false)
  endedAt*: null,string (format: date-time, nullable: false)
  sector*: IndustrySector (format: -, nullable: false)
  projectType*: ProjectType (format: -, nullable: false)

Model: UpdateProjectStatusRequest
  Required: [ 'projectId', 'status' ]
  projectId*: integer,string (format: int64, nullable: false)
  status*: ApprovalStatus (format: -, nullable: false)

Model: UpdateRiskRequest
  Required: [ 'riskId', 'likelihood', 'impact', 'name', 'description' ]
  riskId*: integer,string (format: int64, nullable: false)
  likelihood*: RiskLikelihood (format: -, nullable: false)
  impact*: RiskImpact (format: -, nullable: false)
  name*: string (format: -, nullable: false)
  description*: string (format: -, nullable: false)

Model: User
  Required: []
  id: string (format: uuid, nullable: false)
  lastLoginAt: null,string (format: date-time, nullable: false)
  email: null,string (format: -, nullable: false)
  status: ActivityStatus (format: -, nullable: false)

Model: UserFilterRequest
  Required: []
  status: any (format: -, nullable: false)
  email: null,string (format: -, nullable: false)
  sortBy: null,string (format: -, nullable: false)
  sortDescending: boolean (format: -, nullable: false)
