syntax = "proto3";

package memos.store;

import "google/protobuf/timestamp.proto";
import "store/workspace_setting.proto";

option go_package = "gen/store";

enum ResourceStorageType {
  RESOURCE_STORAGE_TYPE_UNSPECIFIED = 0;
  LOCAL = 1;
  S3 = 2;
  EXTERNAL = 3;
}

message ResourcePayload {
  oneof payload {
    S3Object s3_object = 1;
  }

  message S3Object {
    StorageS3Config s3_config = 1;
    // key is the S3 object key.
    string key = 2;
    // last_presigned_time is the last time the object was presigned.
    // This is used to determine if the presigned URL is still valid.
    google.protobuf.Timestamp last_presigned_time = 3;
  }
}
