Files
zeekay 14a9f303ff feat: add SAFE, note, warrant, vesting, KYC, OmniSub domain packages
New packages (types.go + repository.go + service.go each):
- safe: YC SAFE taxonomy (pre/post money, cap, discount, MFN, pro rata)
- note: convertible notes (interest accrual, conversion triggers)
- warrant: exercise price, expiration, cash/cashless exercise
- vesting: schedules with tranches, cliff, frequency, performance conditions
- kyc: KYC/AML submissions, accreditation verification, provider hooks
- omnisub: Alpaca OmniSub accounts, sub-accounts, orders, positions, tax

Enhanced existing packages:
- securities/types.go: ContractAddress, ChainID, Exemption enum (Reg D/S/A+/CF)
- compliance/types.go: RegDCheck (506b/c), RegSCheck, full Rule144Check
2026-04-06 21:02:32 -07:00

23 lines
939 B
Go

package vesting
import "context"
// Repository defines storage for vesting schedule operations.
type Repository interface {
CreateSchedule(ctx context.Context, s *Schedule) error
GetSchedule(ctx context.Context, id string) (*Schedule, error)
UpdateSchedule(ctx context.Context, s *Schedule) error
ListSchedules(ctx context.Context, companyID string) ([]*Schedule, error)
ListSchedulesByPlan(ctx context.Context, equityPlanID string) ([]*Schedule, error)
CreateTranche(ctx context.Context, t *Tranche) error
ListTranches(ctx context.Context, scheduleID string) ([]*Tranche, error)
CreateCondition(ctx context.Context, c *PerformanceCondition) error
GetCondition(ctx context.Context, id string) (*PerformanceCondition, error)
AppendEvent(ctx context.Context, e *Event) error
ListEvents(ctx context.Context, trancheID string) ([]*Event, error)
ListEventsBySchedule(ctx context.Context, scheduleID string) ([]*Event, error)
}