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

22 lines
1.0 KiB
Go

package kyc
import "context"
// Repository defines storage for KYC/AML/accreditation operations.
type Repository interface {
CreateSubmission(ctx context.Context, s *Submission) error
GetSubmission(ctx context.Context, id string) (*Submission, error)
UpdateSubmission(ctx context.Context, s *Submission) error
ListSubmissions(ctx context.Context, stakeholderID string) ([]*Submission, error)
ListSubmissionsByCompany(ctx context.Context, companyID string) ([]*Submission, error)
CreateScreening(ctx context.Context, s *AMLScreening) error
GetScreening(ctx context.Context, id string) (*AMLScreening, error)
ListScreenings(ctx context.Context, stakeholderID string) ([]*AMLScreening, error)
CreateAccreditation(ctx context.Context, a *AccreditationVerification) error
GetAccreditation(ctx context.Context, id string) (*AccreditationVerification, error)
UpdateAccreditation(ctx context.Context, a *AccreditationVerification) error
ListAccreditations(ctx context.Context, stakeholderID string) ([]*AccreditationVerification, error)
}