...
This commit is contained in:
24
specs/models_old/gov/committee.v
Normal file
24
specs/models_old/gov/committee.v
Normal file
@@ -0,0 +1,24 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// CommitteeMember represents a member of a committee
|
||||
pub struct CommitteeMember {
|
||||
core.Base
|
||||
pub mut:
|
||||
user_id u32
|
||||
name string
|
||||
role CommitteeRole
|
||||
joined_date u64 // Unix timestamp
|
||||
notes string
|
||||
}
|
||||
|
||||
// Committee represents a committee in the governance system
|
||||
pub struct Committee {
|
||||
core.Base
|
||||
pub mut:
|
||||
company_id u32 @[index]
|
||||
name string @[index]
|
||||
description string
|
||||
members []CommitteeMember
|
||||
}
|
28
specs/models_old/gov/company.v
Normal file
28
specs/models_old/gov/company.v
Normal file
@@ -0,0 +1,28 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// BusinessType represents the type of a business
|
||||
pub struct BusinessType {
|
||||
pub mut:
|
||||
type_name string
|
||||
description string
|
||||
}
|
||||
|
||||
// Company represents a company in the governance system
|
||||
pub struct Company {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index]
|
||||
registration_number string @[index]
|
||||
incorporation_date u64 // Unix timestamp
|
||||
fiscal_year_end string
|
||||
email string
|
||||
phone string
|
||||
website string
|
||||
address string
|
||||
business_type BusinessType
|
||||
industry string
|
||||
description string
|
||||
status CompanyStatus
|
||||
}
|
30
specs/models_old/gov/meeting.v
Normal file
30
specs/models_old/gov/meeting.v
Normal file
@@ -0,0 +1,30 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Attendee represents an attendee of a meeting
|
||||
pub struct Attendee {
|
||||
pub mut:
|
||||
user_id u32
|
||||
name string
|
||||
role string
|
||||
status AttendanceStatus
|
||||
notes string
|
||||
}
|
||||
|
||||
// Meeting represents a meeting in the governance system
|
||||
pub struct Meeting {
|
||||
core.Base
|
||||
pub mut:
|
||||
company_id u32 @[index]
|
||||
title string @[index]
|
||||
description string
|
||||
meeting_type MeetingType
|
||||
status MeetingStatus
|
||||
start_time u64 // Unix timestamp
|
||||
end_time u64 // Unix timestamp
|
||||
location string
|
||||
agenda string
|
||||
minutes string
|
||||
attendees []Attendee
|
||||
}
|
18
specs/models_old/gov/resolution.v
Normal file
18
specs/models_old/gov/resolution.v
Normal file
@@ -0,0 +1,18 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Resolution represents a resolution in the governance system
|
||||
pub struct Resolution {
|
||||
core.Base
|
||||
pub mut:
|
||||
company_id u32 @[index]
|
||||
title string @[index]
|
||||
description string
|
||||
resolution_type ResolutionType
|
||||
status ResolutionStatus
|
||||
proposed_date u64 // Unix timestamp
|
||||
effective_date ?u64 // Unix timestamp
|
||||
expiry_date ?u64 // Unix timestamp
|
||||
approvals []string
|
||||
}
|
15
specs/models_old/gov/shareholder.v
Normal file
15
specs/models_old/gov/shareholder.v
Normal file
@@ -0,0 +1,15 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Shareholder represents a shareholder in the governance system
|
||||
pub struct Shareholder {
|
||||
core.Base
|
||||
pub mut:
|
||||
company_id u32 @[index]
|
||||
name string @[index]
|
||||
shareholder_type ShareholderType
|
||||
contact_info string @[index]
|
||||
shares u32
|
||||
percentage f64
|
||||
}
|
82
specs/models_old/gov/types.v
Normal file
82
specs/models_old/gov/types.v
Normal file
@@ -0,0 +1,82 @@
|
||||
module gov
|
||||
|
||||
pub enum CompanyStatus {
|
||||
active
|
||||
inactive
|
||||
dissolved
|
||||
suspended
|
||||
pending
|
||||
}
|
||||
|
||||
pub enum ShareholderType {
|
||||
individual
|
||||
corporate
|
||||
trust
|
||||
partnership
|
||||
government
|
||||
other
|
||||
}
|
||||
|
||||
pub enum CommitteeRole {
|
||||
chair
|
||||
vice_chair
|
||||
secretary
|
||||
treasurer
|
||||
member
|
||||
observer
|
||||
advisor
|
||||
}
|
||||
|
||||
pub enum MeetingStatus {
|
||||
scheduled
|
||||
in_progress
|
||||
completed
|
||||
cancelled
|
||||
}
|
||||
|
||||
pub enum MeetingType {
|
||||
board_meeting
|
||||
committee_meeting
|
||||
general_assembly
|
||||
annual_general_meeting
|
||||
extraordinary_general_meeting
|
||||
other
|
||||
}
|
||||
|
||||
pub enum AttendanceStatus {
|
||||
invited
|
||||
confirmed
|
||||
declined
|
||||
attended
|
||||
absent
|
||||
}
|
||||
|
||||
pub enum ResolutionStatus {
|
||||
draft
|
||||
proposed
|
||||
approved
|
||||
rejected
|
||||
expired
|
||||
}
|
||||
|
||||
pub enum ResolutionType {
|
||||
ordinary
|
||||
special
|
||||
unanimous
|
||||
written
|
||||
other
|
||||
}
|
||||
|
||||
pub enum VoteStatus {
|
||||
draft
|
||||
open
|
||||
closed
|
||||
cancelled
|
||||
}
|
||||
|
||||
pub enum VoteOption {
|
||||
yes
|
||||
no
|
||||
abstain
|
||||
custom
|
||||
}
|
12
specs/models_old/gov/user.v
Normal file
12
specs/models_old/gov/user.v
Normal file
@@ -0,0 +1,12 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// User represents a user in the governance system
|
||||
pub struct User {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index]
|
||||
email string @[index]
|
||||
role string
|
||||
}
|
27
specs/models_old/gov/vote.v
Normal file
27
specs/models_old/gov/vote.v
Normal file
@@ -0,0 +1,27 @@
|
||||
module gov
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Ballot represents a ballot cast in a vote
|
||||
pub struct Ballot {
|
||||
pub mut:
|
||||
user_id u32
|
||||
option VoteOption
|
||||
weight f64
|
||||
cast_at u64 // Unix timestamp
|
||||
notes string
|
||||
}
|
||||
|
||||
// Vote represents a vote in the governance system
|
||||
pub struct Vote {
|
||||
core.Base
|
||||
pub mut:
|
||||
company_id u32 @[index]
|
||||
resolution_id u32 @[index]
|
||||
title string @[index]
|
||||
description string
|
||||
status VoteStatus
|
||||
start_date u64 // Unix timestamp
|
||||
end_date u64 // Unix timestamp
|
||||
ballots []Ballot
|
||||
}
|
Reference in New Issue
Block a user