## Description Define all Go struct types that represent Zenodo API response objects. ## Requirements - Supports FR-2.x (records), FR-4.x (communities), FR-5.x (access links), FR-6.x (licenses) ## Acceptance Criteria - [ ] `internal/model/record.go` — `Record`, `Deposition`, `Metadata`, `Creator`, `RelatedIdentifier` structs with JSON tags - [ ] `internal/model/community.go` — `Community` struct - [ ] `internal/model/license.go` — `License` struct - [ ] `internal/model/stats.go` — `Stats` struct (downloads, views, unique_downloads, unique_views, version_downloads, version_views) - [ ] `internal/model/error.go` — already exists from Phase 1, verify it covers all error shapes - [ ] All structs have proper `json` tags matching Zenodo API field names - [ ] Pagination wrapper: `PaginatedResponse[T]` or equivalent for list endpoints ## Dependencies - Blocked by: Phase 1 completion (needs API client)
Description
Define all Go struct types that represent Zenodo API response objects.
Requirements
Acceptance Criteria
internal/model/record.go—Record,Deposition,Metadata,Creator,RelatedIdentifierstructs with JSON tagsinternal/model/community.go—Communitystructinternal/model/license.go—Licensestructinternal/model/stats.go—Statsstruct (downloads, views, unique_downloads, unique_views, version_downloads, version_views)internal/model/error.go— already exists from Phase 1, verify it covers all error shapesjsontags matching Zenodo API field namesPaginatedResponse[T]or equivalent for list endpointsDependencies