Files
zeekay ce753666c2 feat: add voting, communications, disclosure packages
Merged from luxfi/transfer into captable for single-library TA engine:

- pkg/voting: Proxy voting proposals, vote casting, quorum tracking,
  results aggregation (board elections, mergers, amendments)

- pkg/comms: Investor communications — notices (proxy, dividend,
  regulatory, K-1), recipient tracking, delivery/read status

- pkg/disclosure: Investor disclosures — PPM, subscription agreements,
  supplements, annual reports. Delivery + acknowledgment tracking.

All follow captable's repository pattern (types.go + repository.go + service.go).
2025-12-15 10:30:00 -08:00

16 lines
556 B
Go

package voting
import "context"
// Repository is the storage interface for voting.
type Repository interface {
CreateProposal(ctx context.Context, p *Proposal) error
GetProposal(ctx context.Context, id string) (*Proposal, error)
ListProposals(ctx context.Context, filter ProposalFilter) ([]*Proposal, error)
UpdateProposal(ctx context.Context, p *Proposal) error
CastVote(ctx context.Context, v *Vote) error
ListVotes(ctx context.Context, proposalID string) ([]*Vote, error)
GetResults(ctx context.Context, proposalID string) (*Results, error)
}