I am designing a HTTP-based REST API.
Let's say I have an entity called `Entity` that has a bunch of properties. Some of its properties are files. Let's say `Entity` has following properties:

    name: string
    description: string
    photos: array of photos
    videos: array of videos

API is designed to be used from mobile devices and should work well under conditions of slow or unstable connection. The thing is the object should be not considered as complete until I upload all the resources the client have.

What it the best way to construct a new object?

---

For now I come up with the following solution. Add readiness flag `isReady`, first post basic object data within single json:

    POST /entities/ {name: "somename", description: "description", isReady: false}
    obtain id of newly created `entityId`

Then upload resources one by one:

    POST /entities/{entityId}/photos/ <photo data>
    POST /entities/{entityId}/videos/ <video data>

And then update object's readiness flag

    PUT /entities/{entityId}/ {isReady: true}

---

The second solution that comes to mind is to create separate endpoints for photos, videos. Then I'll be able to first post photos and videos and the create `Entity` with references to resources.

    POST /photos <photo data>
    obtain ids
    POST /videos <video data>
    obtain ids
    
    POST /entities/ {name: "somename", description: "description", photos: ids[], videos:ids[]}

The question with the second solution: is it okay for resource to be referenced by multiple `URIs`?


    /entities/photos/{photoId}
    /photos/{photoId}

---

Is the first solution correct? Wouldn't the second one be overcomplicated?

Thanks in advance