# track.proto

## TrackProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | id | string | 1 |
| optional | name | string | 2 |
| optional | artistId | string | 3 |
| optional | albumId | string | 4 |
| optional | trackNumber | int32 | 5 |
| optional | playbackTime | int32 | 6 |
| optional | stat | TrackStatProto | 7 |
| optional | conditions | TrackConditionsProto | 8 |
| optional | playbackRanges | TrackPlaybackRangesProto | 9 |
| optional | distributorId | string | 10 |
| optional | cachedAt | int64 | 11 |
| optional | releasedAt | int64 | 12 |
| optional | updatedAt | int64 | 13 |
| optional | isAvailable | bool | 14 |
| optional | isDeleted | bool | 15 |


## TrackStatProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | favorited | int32 | 1 |
| optional | listed | int32 | 2 |
| optional | played | int64 | 3 |


## SupportKeysProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| repeated | keys | SupportKeyProto | 1 |


## SupportKeyProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | id | string | 1 |
| optional | version | string | 2 |
| optional | key | bytes | 3 |


## TrackConditionsProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | full | TrackPlanConditionsProto | 1 |
| optional | highlight30 | TrackPlanConditionsProto | 2 |
| optional | highlight90 | TrackPlanConditionsProto | 3 |


## TrackPlanConditionsProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | free | bool | 1 |
| optional | standard | bool | 2 |


## TrackPlaybackRangesProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | highlight30 | TrackPlaybackRangeProto | 1 |
| optional | highlight90 | TrackPlaybackRangeProto | 2 |


## TrackPlaybackRangeProto

| label | name | type | number |
| ----- | ---- | ---- | ------ |
| optional | start | float | 1 |
| optional | end | float | 2 |


