Appearance
DoCurious API Reference / types / TrackRecord
Interface: TrackRecord
Defined in: types/challenge.types.ts:599
A Track Record documenting a user's completion of a challenge.
Remarks
Track Records are the primary proof-of-completion artifact. They consist of one or more TrackRecordEntry items (text, photos, videos). Once submitted, a 72-hour SLA timer starts for reviewer verification. If the SLA is missed, the TR is automatically escalated. Users have a maximum of 3 verification attempts before the TR is locked as unverified.
Example
ts
const tr: TrackRecord = {
id: 'tr-001',
createdAt: '2025-10-05T14:30:00Z',
updatedAt: '2025-10-06T09:00:00Z',
userChallengeId: 'uc-101',
userId: 'usr-042',
challengeId: 'ch-042',
status: 'submitted',
storageUsedBytes: 4_200_000,
sharingScope: 'communities',
submittedAt: '2025-10-06T09:00:00Z',
verificationAttempts: 1,
escalated: false,
}Extends
Properties
challenge?
optionalchallenge:Challenge
Defined in: types/challenge.types.ts:643
challengeId
challengeId:
string
Defined in: types/challenge.types.ts:602
coverImageEntryId?
optionalcoverImageEntryId:string
Defined in: types/challenge.types.ts:607
Entry ID of the image the user selected as the TR cover
coverImageUrl?
optionalcoverImageUrl:string
Defined in: types/challenge.types.ts:608
createdAt
createdAt:
string
Defined in: types/common.types.ts:154
ISO 8601 datetime when the entity was created
Inherited from
entries?
optionalentries:TrackRecordEntry[]
Defined in: types/challenge.types.ts:642
escalated
escalated:
boolean
Defined in: types/challenge.types.ts:627
Whether this TR was auto-escalated due to a missed SLA deadline
escalatedAt?
optionalescalatedAt:string
Defined in: types/challenge.types.ts:628
id
id:
string
Defined in: types/common.types.ts:167
Inherited from
rejectionNote?
optionalrejectionNote:string
Defined in: types/challenge.types.ts:634
Free-text note from the reviewer explaining the rejection
rejectionReasonId?
optionalrejectionReasonId:string
Defined in: types/challenge.types.ts:632
Reference to the RejectionReasonTemplate used when rejecting
reviewerId?
optionalreviewerId:string
Defined in: types/challenge.types.ts:637
reviewerRole?
optionalreviewerRole:"teacher"|"staff"|"vendor"
Defined in: types/challenge.types.ts:639
Role of the person who reviewed this TR
sharingScope
sharingScope:
"public"|"private"|"communities"|"individuals"
Defined in: types/challenge.types.ts:614
Who can view this Track Record
slaDeadline?
optionalslaDeadline:string
Defined in: types/challenge.types.ts:623
ISO datetime 72 hours after submission -- the verification SLA deadline
status
status:
TrackRecordStatus
Defined in: types/challenge.types.ts:604
storageUsedBytes
storageUsedBytes:
number
Defined in: types/challenge.types.ts:611
Total bytes of media stored for this TR
submittedAt?
optionalsubmittedAt:string
Defined in: types/challenge.types.ts:616
submittedForReviewAt?
optionalsubmittedForReviewAt:string
Defined in: types/challenge.types.ts:621
ISO datetime when the TR was submitted for staff/vendor review
updatedAt
updatedAt:
string
Defined in: types/common.types.ts:156
ISO 8601 datetime when the entity was last modified
Inherited from
userChallenge?
optionaluserChallenge:UserChallenge
Defined in: types/challenge.types.ts:644
userChallengeId
userChallengeId:
string
Defined in: types/challenge.types.ts:600
userId
userId:
string
Defined in: types/challenge.types.ts:601
verificationAttempts
verificationAttempts:
number
Defined in: types/challenge.types.ts:625
Number of review cycles attempted (max 3 before lockout)
verifiedAt?
optionalverifiedAt:string
Defined in: types/challenge.types.ts:617