diff --git a/src/db/schema/index.ts b/src/db/schema/index.ts
index d1e439399f4ed05608ac1ae457de8aacc6e94860..574a14ef65e5b206f8c72eb991a7c31aefbcdc77 100644
--- a/src/db/schema/index.ts
+++ b/src/db/schema/index.ts
@@ -32,6 +32,7 @@ import actionTable from './action.schema'
 import notificationRelationTable from '../relations/notification.relation'
 import userItemRelationTable from '../relations/user-item.relation'
 import stateEnum from './stateEnum.schema'
+import resourceEnum from './resourceEnum.schema'
 import commentsTable from './comments.schema'
 import commentReplyTable from './comment-reply.schema'
 import userCollectionTable from '../relations/user-collection.relation'
@@ -73,6 +74,7 @@ export {
   commentsTable,
   commentReplyTable,
   userCollectionTable,
+  resourceEnum
 }
 
 export const tables = [
diff --git a/src/db/schema/resource.schema.ts b/src/db/schema/resource.schema.ts
index de04ef3cb0380c44c7400158c18ae2c9bc1c7091..dc86b4ed03b1a4affe63c3c7a6281959afa76b76 100644
--- a/src/db/schema/resource.schema.ts
+++ b/src/db/schema/resource.schema.ts
@@ -17,18 +17,18 @@ import userTable from './user.schema'
 import objectTypeTable from './object-type.schema'
 import licenseTable from './license.schema'
 import resourceStatsTable from './resource-stats.schema'
+import resourceEnum from './resourceEnum.schema'
 
 //por padrao active é false, só é true quando o recurso é aprovado
 const resourceTable = pgTable('resources', {
   id: serial('id').primaryKey()
     .notNull()
     .unique(),
+  state: resourceEnum('state').notNull().default('draft'),
   name: varchar('name', { length: 255 })
     .notNull(),
   author: varchar('author', { length: 255 })
     .notNull(),
-  bucket_key: varchar('bucket_key', { length: 255 })
-    .unique(),
   link: varchar('link', { length: 255 }),
   thumbnail: varchar('thumbnail', { length: 255 })
     .notNull(),
@@ -59,7 +59,7 @@ const resourceTable = pgTable('resources', {
   license_id: integer('license_id')
     .notNull()
     .references(() => licenseTable.id, { onDelete: 'cascade' }),
-  })
+})
 
 
 export const resourceRelations = relations(resourceTable, ({ many }) => ({
diff --git a/src/db/schema/resourceEnum.schema.ts b/src/db/schema/resourceEnum.schema.ts
new file mode 100644
index 0000000000000000000000000000000000000000..df77bc6c59635b00cc05502ef0b4342a1486e9b6
--- /dev/null
+++ b/src/db/schema/resourceEnum.schema.ts
@@ -0,0 +1,8 @@
+import { pgEnum } from "drizzle-orm/pg-core";
+import { z } from "zod";
+
+const resourceEnum = pgEnum('state',['draft', 'submitted', 'accepted'])
+const resourceEnumSchema = z.enum(resourceEnum.enumValues)
+
+export default resourceEnum
+export type ResourceEnum = z.infer<typeof resourceEnumSchema>
\ No newline at end of file
diff --git a/src/routes/s3.route.ts b/src/routes/s3.route.ts
index 102489c6689a9d448d2c1c1b9c3f35be3819e9af..9c6e25cf8dcc831252c8434dac6c4cc04d615f41 100644
--- a/src/routes/s3.route.ts
+++ b/src/routes/s3.route.ts
@@ -242,6 +242,7 @@ export const s3Routes = new Hono()
                 // O corpo da resposta é o arquivo, e seu tipo de conteúdo pode ser acessado diretamente
                 const fileData = await response.Body.transformToByteArray()// Converte o conteúdo do corpo para ArrayBuffer ou outro formato adequado
 
+
                 return new Response(fileData, {
                     status: 200,
                     headers: {