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: {