From cefb06b9e494baec0114f9c541f5bf0cf7f5b9ac Mon Sep 17 00:00:00 2001
From: nar20 <nar20@inf.ufpr.br>
Date: Thu, 31 Oct 2024 12:22:04 -0300
Subject: [PATCH] issue #20: padronizacao dos nomes de arquivos e tabelas do
 banco de dados

---
 ...elation.ts => collection-like.relation.ts} |  2 +-
 ...ion.ts => collection-resource.relation.ts} |  0
 ...lows.relation.ts => followers.relation.ts} |  2 +-
 src/db/relations/notification.relation.ts     |  2 +-
 .../resource-educational-stage.relation.ts}   |  4 +-
 .../resource-language.relation.ts}            |  0
 ....relation.ts => resource-like.relation.ts} |  0
 .../resource-subject.relation.ts}             |  4 +-
 ...lation.ts => user-achievement.relation.ts} |  0
 src/db/relations/user-institution.relation.ts |  2 +-
 src/db/relations/user-item.relation.ts        |  2 +-
 src/db/relations/user-role.relation.ts        |  2 +-
 src/db/repo/achievement.repo.ts               |  4 +-
 src/db/repo/collection-likes.repo.ts          |  6 +-
 src/db/repo/collection-resources.repo.ts      |  6 +-
 src/db/repo/collections.repo.ts               |  4 +-
 src/db/repo/complaint.repo.ts                 |  4 +-
 src/db/repo/educational-stage.repo.ts         |  4 +-
 src/db/repo/follow.repo.ts                    |  2 +-
 src/db/repo/institutions.repo.ts              |  2 +-
 src/db/repo/items.repo.ts                     |  4 +-
 src/db/repo/licenses.repo.ts                  |  4 +-
 .../repo/resource-educational-stages.repo.ts  |  6 +-
 src/db/repo/resource-language.repo.ts         |  2 +-
 src/db/repo/resource-subjects.repo.ts         |  6 +-
 src/db/repo/role.repo.ts                      |  4 +-
 src/db/repo/stats-resources.repo.ts           | 68 +++++++++----------
 src/db/repo/subjects.repo.ts                  |  4 +-
 src/db/repo/user-achievements.repo.ts         |  2 +-
 ...ements.schema.ts => achievement.schema.ts} |  2 +-
 src/db/schema/action.schema.ts                |  2 +-
 src/db/schema/collection-stats.schema.ts      |  2 +-
 ...ections.schema.ts => collection.schema.ts} |  2 +-
 ...mplaints.schema.ts => complaint.schema.ts} |  2 +-
 ....schema.ts => educational-stage.schema.ts} |  0
 src/db/schema/index.ts                        | 41 ++++++-----
 ...utions.schema.ts => institution.schema.ts} |  2 +-
 .../{items.schema.ts => item.schema.ts}       |  2 +-
 src/db/schema/language.schema.ts              |  4 +-
 .../{licenses.schema.ts => license.schema.ts} |  0
 src/db/schema/password-recovery.schema.ts     |  2 +-
 src/db/schema/resource-stats.schema.ts        | 39 +++++++++++
 src/db/schema/resource.schema.ts              |  8 +--
 .../{roles.schema.ts => role.schema.ts}       |  2 +-
 src/db/schema/stats-resources.schema.ts       | 39 -----------
 .../{subjects.schema.ts => subject.schema.ts} |  0
 src/db/schema/submission.schema.ts            |  2 +-
 src/db/schema/user.schema.ts                  |  8 ++-
 src/db/seed.ts                                |  2 +-
 src/db/seeds/achievement.seed.ts              |  2 +-
 src/db/seeds/collection-likes.seed.ts         |  2 +-
 src/db/seeds/collection-resources.seed.ts     |  2 +-
 src/db/seeds/collections.seed.ts              |  4 +-
 src/db/seeds/complaints.seed.ts               |  2 +-
 src/db/seeds/educational-stage.seed.ts        |  2 +-
 src/db/seeds/index.ts                         |  2 +-
 src/db/seeds/institutions.seed.ts             |  2 +-
 src/db/seeds/items.seed.ts                    |  2 +-
 src/db/seeds/license.seed.ts                  |  2 +-
 .../seeds/resource-educational-stages.seed.ts |  2 +-
 src/db/seeds/resource-language.seed.ts        |  2 +-
 src/db/seeds/resource-likes.seed.ts           |  2 +-
 src/db/seeds/resource-subjects.seed.ts        |  4 +-
 ...esources.seed.ts => resourceStats.seed.ts} |  8 +--
 src/db/seeds/role.seed.ts                     |  2 +-
 src/db/seeds/subjects.seed.ts                 |  4 +-
 src/db/seeds/user-achievements.seed.ts        |  2 +-
 src/routes/achievement.route.ts               |  2 +-
 src/routes/collections.route.ts               |  2 +-
 src/routes/complaints.route.ts                |  2 +-
 src/routes/educational-stage.routes.ts        |  2 +-
 src/routes/institution.route.ts               |  2 +-
 src/routes/items.route.ts                     |  2 +-
 src/routes/license.route.ts                   |  2 +-
 src/routes/resource.route.ts                  |  4 +-
 src/routes/role.route.ts                      |  2 +-
 src/routes/stats-resource.route.ts            | 24 +++----
 src/routes/subjects.route.ts                  |  2 +-
 src/routes/user-institution.route.ts          |  2 +-
 src/routes/user-item.route.ts                 |  2 +-
 src/routes/user-role.route.ts                 |  2 +-
 src/routes/user.route.ts                      |  2 +-
 src/services/achievement.service.ts           |  2 +-
 src/services/collection-likes.service.ts      |  2 +-
 src/services/collection-resources.service.ts  |  2 +-
 src/services/collections.service.ts           |  2 +-
 src/services/complaints.service.ts            |  2 +-
 src/services/educational-stage.service.ts     |  2 +-
 src/services/follow.relation.service.ts       |  2 +-
 src/services/institution.service.ts           |  2 +-
 src/services/items.service.ts                 |  2 +-
 src/services/license.service.ts               |  2 +-
 .../resource-educational-stages.service.ts    |  2 +-
 src/services/resource-subjects.service.ts     |  2 +-
 src/services/role.service.ts                  |  2 +-
 src/services/stats-resources.service.ts       | 18 ++---
 src/services/subjects.service.ts              |  2 +-
 src/services/user-achievements.service.ts     |  2 +-
 98 files changed, 232 insertions(+), 231 deletions(-)
 rename src/db/relations/{collection-likes.relation.ts => collection-like.relation.ts} (96%)
 rename src/db/relations/{collection-resources.relation.ts => collection-resource.relation.ts} (100%)
 rename src/db/relations/{follows.relation.ts => followers.relation.ts} (97%)
 rename src/db/{schema/resource-educational-stages.schema.ts => relations/resource-educational-stage.relation.ts} (94%)
 rename src/db/{schema/resource-languages.schema.ts => relations/resource-language.relation.ts} (100%)
 rename src/db/relations/{resource-likes.relation.ts => resource-like.relation.ts} (100%)
 rename src/db/{schema/resource-subjects.schema.ts => relations/resource-subject.relation.ts} (93%)
 rename src/db/relations/{user-achievements.relation.ts => user-achievement.relation.ts} (100%)
 rename src/db/schema/{achievements.schema.ts => achievement.schema.ts} (97%)
 rename src/db/schema/{collections.schema.ts => collection.schema.ts} (96%)
 rename src/db/schema/{complaints.schema.ts => complaint.schema.ts} (96%)
 rename src/db/schema/{educational-stages.schema.ts => educational-stage.schema.ts} (100%)
 rename src/db/schema/{institutions.schema.ts => institution.schema.ts} (96%)
 rename src/db/schema/{items.schema.ts => item.schema.ts} (96%)
 rename src/db/schema/{licenses.schema.ts => license.schema.ts} (100%)
 create mode 100644 src/db/schema/resource-stats.schema.ts
 rename src/db/schema/{roles.schema.ts => role.schema.ts} (97%)
 delete mode 100644 src/db/schema/stats-resources.schema.ts
 rename src/db/schema/{subjects.schema.ts => subject.schema.ts} (100%)
 rename src/db/seeds/{statsResources.seed.ts => resourceStats.seed.ts} (55%)

diff --git a/src/db/relations/collection-likes.relation.ts b/src/db/relations/collection-like.relation.ts
similarity index 96%
rename from src/db/relations/collection-likes.relation.ts
rename to src/db/relations/collection-like.relation.ts
index 418415e..73292d5 100644
--- a/src/db/relations/collection-likes.relation.ts
+++ b/src/db/relations/collection-like.relation.ts
@@ -1,6 +1,6 @@
 import { integer, pgTable } from "drizzle-orm/pg-core";
 import userTable from "../schema/user.schema";
-import collectionTable from "../schema/collections.schema";
+import collectionTable from "../schema/collection.schema";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 import { relations } from "drizzle-orm";
diff --git a/src/db/relations/collection-resources.relation.ts b/src/db/relations/collection-resource.relation.ts
similarity index 100%
rename from src/db/relations/collection-resources.relation.ts
rename to src/db/relations/collection-resource.relation.ts
diff --git a/src/db/relations/follows.relation.ts b/src/db/relations/followers.relation.ts
similarity index 97%
rename from src/db/relations/follows.relation.ts
rename to src/db/relations/followers.relation.ts
index fdf5982..cbcc432 100644
--- a/src/db/relations/follows.relation.ts
+++ b/src/db/relations/followers.relation.ts
@@ -4,7 +4,7 @@ import { relations } from "drizzle-orm"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const followRelationTable = pgTable('follows', {
+const followRelationTable = pgTable('followers', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/relations/notification.relation.ts b/src/db/relations/notification.relation.ts
index 32a605c..ed932ee 100644
--- a/src/db/relations/notification.relation.ts
+++ b/src/db/relations/notification.relation.ts
@@ -4,7 +4,7 @@ import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 import { actionTable, collectionTable, resourceTable, userTable } from "../schema"
 
-const notificationRelationTable = pgTable('notification', {
+const notificationRelationTable = pgTable('notifications', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/schema/resource-educational-stages.schema.ts b/src/db/relations/resource-educational-stage.relation.ts
similarity index 94%
rename from src/db/schema/resource-educational-stages.schema.ts
rename to src/db/relations/resource-educational-stage.relation.ts
index e8a7930..7821673 100644
--- a/src/db/schema/resource-educational-stages.schema.ts
+++ b/src/db/relations/resource-educational-stage.relation.ts
@@ -1,6 +1,6 @@
 import { integer, pgTable } from "drizzle-orm/pg-core";
-import resourceTable from "./resource.schema";
-import educationalStageTable from "./educational-stages.schema";
+import resourceTable from "../schema/resource.schema";
+import educationalStageTable from "../schema/educational-stage.schema";
 import { relations } from "drizzle-orm";
 import { createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
diff --git a/src/db/schema/resource-languages.schema.ts b/src/db/relations/resource-language.relation.ts
similarity index 100%
rename from src/db/schema/resource-languages.schema.ts
rename to src/db/relations/resource-language.relation.ts
diff --git a/src/db/relations/resource-likes.relation.ts b/src/db/relations/resource-like.relation.ts
similarity index 100%
rename from src/db/relations/resource-likes.relation.ts
rename to src/db/relations/resource-like.relation.ts
diff --git a/src/db/schema/resource-subjects.schema.ts b/src/db/relations/resource-subject.relation.ts
similarity index 93%
rename from src/db/schema/resource-subjects.schema.ts
rename to src/db/relations/resource-subject.relation.ts
index e8150ef..d3add64 100644
--- a/src/db/schema/resource-subjects.schema.ts
+++ b/src/db/relations/resource-subject.relation.ts
@@ -1,6 +1,6 @@
 import { integer, pgTable } from "drizzle-orm/pg-core";
-import resourceTable from "./resource.schema";
-import subjectsTable from "./subjects.schema";
+import resourceTable from "../schema/resource.schema";
+import subjectsTable from "../schema/subject.schema";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 import { relations } from "drizzle-orm";
diff --git a/src/db/relations/user-achievements.relation.ts b/src/db/relations/user-achievement.relation.ts
similarity index 100%
rename from src/db/relations/user-achievements.relation.ts
rename to src/db/relations/user-achievement.relation.ts
diff --git a/src/db/relations/user-institution.relation.ts b/src/db/relations/user-institution.relation.ts
index 45ed5a1..6bf889f 100644
--- a/src/db/relations/user-institution.relation.ts
+++ b/src/db/relations/user-institution.relation.ts
@@ -4,7 +4,7 @@ import { relations } from "drizzle-orm"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const userInstitutionRelationTable = pgTable('user_institution', {
+const userInstitutionRelationTable = pgTable('user_institutions', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/relations/user-item.relation.ts b/src/db/relations/user-item.relation.ts
index 1cf7ca8..e33a5ef 100644
--- a/src/db/relations/user-item.relation.ts
+++ b/src/db/relations/user-item.relation.ts
@@ -4,7 +4,7 @@ import { relations } from "drizzle-orm"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const userItemRelationTable = pgTable('user_item', {
+const userItemRelationTable = pgTable('user_items', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/relations/user-role.relation.ts b/src/db/relations/user-role.relation.ts
index 3d661d3..690c4f6 100644
--- a/src/db/relations/user-role.relation.ts
+++ b/src/db/relations/user-role.relation.ts
@@ -4,7 +4,7 @@ import { relations } from "drizzle-orm"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const userRoleRelationTable = pgTable('user_role', {
+const userRoleRelationTable = pgTable('user_roles', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/repo/achievement.repo.ts b/src/db/repo/achievement.repo.ts
index 4e70070..749ba76 100644
--- a/src/db/repo/achievement.repo.ts
+++ b/src/db/repo/achievement.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { AchievementInput, AchievementModel, AchievementUpdate } from "../schema/achievements.schema";
+import type { AchievementInput, AchievementModel, AchievementUpdate } from "../schema/achievement.schema";
 import db from "..";
-import achievementTable, { achievementSchemas } from "../schema/achievements.schema";
+import achievementTable, { achievementSchemas } from "../schema/achievement.schema";
 import { eq } from "drizzle-orm";
 
 @Service()
diff --git a/src/db/repo/collection-likes.repo.ts b/src/db/repo/collection-likes.repo.ts
index 889edda..e23bc4e 100644
--- a/src/db/repo/collection-likes.repo.ts
+++ b/src/db/repo/collection-likes.repo.ts
@@ -1,11 +1,11 @@
 import { Service } from "typedi";
-import type { CollectionModel } from "../schema/collections.schema";
+import type { CollectionModel } from "../schema/collection.schema";
 import type { UserModel } from "../schema/user.schema";
 import db from "..";
-import collectionLikesTable from "../relations/collection-likes.relation";
+import collectionLikesTable from "../relations/collection-like.relation";
 import { and, eq, inArray } from "drizzle-orm";
 import userTable from "../schema/user.schema";
-import collectionTable from "../schema/collections.schema";
+import collectionTable from "../schema/collection.schema";
 
 @Service()
 export class collectionLikesRepo {
diff --git a/src/db/repo/collection-resources.repo.ts b/src/db/repo/collection-resources.repo.ts
index 6c7d45d..b2471a0 100644
--- a/src/db/repo/collection-resources.repo.ts
+++ b/src/db/repo/collection-resources.repo.ts
@@ -1,11 +1,11 @@
 import { Service } from "typedi";
-import type { CollectionModel } from "../schema/collections.schema";
+import type { CollectionModel } from "../schema/collection.schema";
 import type { ResourceModel } from "../schema/resource.schema";
 import db from "..";
-import collectionResourcesTable from "../relations/collection-resources.relation";
+import collectionResourcesTable from "../relations/collection-resource.relation";
 import { and, eq, inArray, name } from "drizzle-orm";
 import resourceTable from "../schema/resource.schema";
-import collectionTable from "../schema/collections.schema";
+import collectionTable from "../schema/collection.schema";
 
 @Service()
 export class collectionResourcesRepo {
diff --git a/src/db/repo/collections.repo.ts b/src/db/repo/collections.repo.ts
index c388618..3f6d010 100644
--- a/src/db/repo/collections.repo.ts
+++ b/src/db/repo/collections.repo.ts
@@ -3,9 +3,9 @@ import type {
   CollectionInput,
   CollectionModel,
   CollectionUpdate,
-} from '../schema/collections.schema'
+} from '../schema/collection.schema'
 import db from "..";
-import collectionTable, { collectionSchemas } from "../schema/collections.schema";
+import collectionTable, { collectionSchemas } from "../schema/collection.schema";
 import { eq } from 'drizzle-orm'
 
 @Service()
diff --git a/src/db/repo/complaint.repo.ts b/src/db/repo/complaint.repo.ts
index 3380cfd..895bae1 100644
--- a/src/db/repo/complaint.repo.ts
+++ b/src/db/repo/complaint.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { ComplaintInput, ComplaintModel, ComplaintUpdate } from "../schema/complaints.schema";
+import type { ComplaintInput, ComplaintModel, ComplaintUpdate } from "../schema/complaint.schema";
 import db from "..";
-import complaintTable, { complaintSchemas } from "../schema/complaints.schema";
+import complaintTable, { complaintSchemas } from "../schema/complaint.schema";
 import { eq } from "drizzle-orm";
 
 @Service()
diff --git a/src/db/repo/educational-stage.repo.ts b/src/db/repo/educational-stage.repo.ts
index c61a02a..aba2d80 100644
--- a/src/db/repo/educational-stage.repo.ts
+++ b/src/db/repo/educational-stage.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { EducationalStagesInput, EducationalStagesModel, EducationalStagesUpdate } from "../schema/educational-stages.schema";
+import type { EducationalStagesInput, EducationalStagesModel, EducationalStagesUpdate } from "../schema/educational-stage.schema";
 import db from "..";
-import educationalStageTable, { educationalStageSchema } from "../schema/educational-stages.schema";
+import educationalStageTable, { educationalStageSchema } from "../schema/educational-stage.schema";
 import { eq } from "drizzle-orm";
 
 
diff --git a/src/db/repo/follow.repo.ts b/src/db/repo/follow.repo.ts
index 1204e7b..0350c97 100644
--- a/src/db/repo/follow.repo.ts
+++ b/src/db/repo/follow.repo.ts
@@ -1,5 +1,5 @@
 import { Service } from "typedi";
-import followRelationTable, { followRelationSchemas, type FollowRelationInput, type FollowRelationModel, type FollowRelationUpdate } from "../relations/follows.relation";
+import followRelationTable, { followRelationSchemas, type FollowRelationInput, type FollowRelationModel, type FollowRelationUpdate } from "../relations/followers.relation";
 import { z } from "zod";
 import db from "@/db";
 import { and, eq } from "drizzle-orm";
diff --git a/src/db/repo/institutions.repo.ts b/src/db/repo/institutions.repo.ts
index 4b2f9da..06fd0c4 100644
--- a/src/db/repo/institutions.repo.ts
+++ b/src/db/repo/institutions.repo.ts
@@ -1,5 +1,5 @@
 import { Service } from "typedi";
-import institutionTable, { institutionSchemas, type InstitutionInput, type InstitutionModel, type InstitutionUpdate } from "../schema/institutions.schema";
+import institutionTable, { institutionSchemas, type InstitutionInput, type InstitutionModel, type InstitutionUpdate } from "../schema/institution.schema";
 import db from "@/db";
 import { z } from "zod";
 import { eq } from "drizzle-orm";
diff --git a/src/db/repo/items.repo.ts b/src/db/repo/items.repo.ts
index e9d24c7..639285e 100644
--- a/src/db/repo/items.repo.ts
+++ b/src/db/repo/items.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { ItemsInput, ItemsModel, ItemsUpdate } from "../schema/items.schema";
+import type { ItemsInput, ItemsModel, ItemsUpdate } from "../schema/item.schema";
 import db from "..";
-import itemsTable, { itemsSchema } from "../schema/items.schema";
+import itemsTable, { itemsSchema } from "../schema/item.schema";
 import { and, eq } from "drizzle-orm";
 
 
diff --git a/src/db/repo/licenses.repo.ts b/src/db/repo/licenses.repo.ts
index 50d7e5c..8841442 100644
--- a/src/db/repo/licenses.repo.ts
+++ b/src/db/repo/licenses.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { LicenseInput, LicenseModel, LicenseUpdate } from "../schema/licenses.schema";
+import type { LicenseInput, LicenseModel, LicenseUpdate } from "../schema/license.schema";
 import db from "..";
-import licenseTable, { licenseSchema } from "../schema/licenses.schema";
+import licenseTable, { licenseSchema } from "../schema/license.schema";
 import { eq } from "drizzle-orm";
 
 
diff --git a/src/db/repo/resource-educational-stages.repo.ts b/src/db/repo/resource-educational-stages.repo.ts
index 27169f7..fa6a9a7 100644
--- a/src/db/repo/resource-educational-stages.repo.ts
+++ b/src/db/repo/resource-educational-stages.repo.ts
@@ -1,10 +1,10 @@
 import { Service } from "typedi";
 import db from "..";
 import type { ResourceModel } from "../schema/resource.schema";
-import type { EducationalStagesModel } from "../schema/educational-stages.schema";
-import resourceEducationalStagesTable from "../schema/resource-educational-stages.schema";
+import type { EducationalStagesModel } from "../schema/educational-stage.schema";
+import resourceEducationalStagesTable from "../relations/resource-educational-stage.relation";
 import { and, eq, inArray } from "drizzle-orm";
-import educationalStageTable from "../schema/educational-stages.schema";
+import educationalStageTable from "../schema/educational-stage.schema";
 import resourceTable from "../schema/resource.schema";
 
 
diff --git a/src/db/repo/resource-language.repo.ts b/src/db/repo/resource-language.repo.ts
index 630581e..a03ce23 100644
--- a/src/db/repo/resource-language.repo.ts
+++ b/src/db/repo/resource-language.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
 import db from "..";
 import type { ResourceModel } from "../schema/resource.schema";
-import resourceLanguagesTable from "../schema/resource-languages.schema";
+import resourceLanguagesTable from "../relations/resource-language.relation";
 import type { LanguageModel } from "../schema/language.schema";
 import languageTable from "../schema/language.schema";
 import { and, eq, inArray } from "drizzle-orm";
diff --git a/src/db/repo/resource-subjects.repo.ts b/src/db/repo/resource-subjects.repo.ts
index c3a4e6b..5108f39 100644
--- a/src/db/repo/resource-subjects.repo.ts
+++ b/src/db/repo/resource-subjects.repo.ts
@@ -1,10 +1,10 @@
 import { Service } from "typedi";
 import db from "..";
-import resourceSubjectsTable from "../schema/resource-subjects.schema";
+import resourceSubjectsTable from "../relations/resource-subject.relation";
 import { and, eq, inArray } from "drizzle-orm";
 import type { ResourceModel } from "../schema/resource.schema";
-import type { SubjectModel } from "../schema/subjects.schema";
-import subjectsTable from "../schema/subjects.schema";
+import type { SubjectModel } from "../schema/subject.schema";
+import subjectsTable from "../schema/subject.schema";
 import resourceTable from "../schema/resource.schema";
 
 
diff --git a/src/db/repo/role.repo.ts b/src/db/repo/role.repo.ts
index 84a65fe..d153c91 100644
--- a/src/db/repo/role.repo.ts
+++ b/src/db/repo/role.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import type { RoleInput, RoleModel, RoleUpdate } from "../schema/roles.schema";
+import type { RoleInput, RoleModel, RoleUpdate } from "../schema/role.schema";
 import db from "..";
-import roleTable, { roleSchemas } from "../schema/roles.schema";
+import roleTable, { roleSchemas } from "../schema/role.schema";
 import { eq } from "drizzle-orm";
 import { z } from "zod";
 
diff --git a/src/db/repo/stats-resources.repo.ts b/src/db/repo/stats-resources.repo.ts
index f199c60..ed92941 100644
--- a/src/db/repo/stats-resources.repo.ts
+++ b/src/db/repo/stats-resources.repo.ts
@@ -1,86 +1,86 @@
 import { Service } from "typedi";
 import db from '..'
-import statsResourcesTable, { statsResourcesSchema, type StatsResourcesInput, type StatsResourcesModel, type StatsResourcesUpdate } from "../schema/stats-resources.schema";
+import resourceStatsTable, { resourceStatsSchema, type ResourceStatsInput, type ResourceStatsModel, type ResourceStatsUpdate } from "../schema/resource-stats.schema";
 import { eq } from 'drizzle-orm'
 import { sql } from "drizzle-orm";
 
 @Service()
 export class statsResourceRepo {
-    async create(statsResource: StatsResourcesInput
-    ): Promise<StatsResourcesModel> {
+    async create(statsResource: ResourceStatsInput
+    ): Promise<ResourceStatsModel> {
         const [ret] = await db
-            .insert(statsResourcesTable)
+            .insert(resourceStatsTable)
             .values(statsResource)
             .returning()
 
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
-    async update(statsResource: StatsResourcesUpdate): Promise<StatsResourcesModel> {
+    async update(statsResource: ResourceStatsUpdate): Promise<ResourceStatsModel> {
         const [ret] = await db
-            .update(statsResourcesTable)
+            .update(resourceStatsTable)
             .set(statsResource)
-            .where(eq(statsResourcesTable.resource_id, statsResource.resource_id))
+            .where(eq(resourceStatsTable.resource_id, statsResource.resource_id))
             .returning()
 
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
-    async sharesUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+    async sharesUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
         const [ret] = await db
-        .update(statsResourcesTable)
+        .update(resourceStatsTable)
         .set({
-            shares: sql`${statsResourcesTable.shares} + 1` // Incrementa diretamente no SQL
+            shares: sql`${resourceStatsTable.shares} + 1` // Incrementa diretamente no SQL
         })
-        .where(eq(statsResourcesTable.resource_id, resource_id))
+        .where(eq(resourceStatsTable.resource_id, resource_id))
         .returning();
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
 
-    async viewUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+    async viewUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
         const [ret] = await db
-            .update(statsResourcesTable)
+            .update(resourceStatsTable)
             .set({
-                views: sql`${statsResourcesTable.views} + 1` // Incrementa diretamente no SQL
+                views: sql`${resourceStatsTable.views} + 1` // Incrementa diretamente no SQL
             })
-            .where(eq(statsResourcesTable.resource_id, resource_id))
+            .where(eq(resourceStatsTable.resource_id, resource_id))
             .returning();
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
-    async downloadUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+    async downloadUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
         const [ret] = await db
-            .update(statsResourcesTable)
+            .update(resourceStatsTable)
             .set({
-                downloads: sql`${statsResourcesTable.downloads} + 1` // Incrementa diretamente no SQL
+                downloads: sql`${resourceStatsTable.downloads} + 1` // Incrementa diretamente no SQL
             })
-            .where(eq(statsResourcesTable.resource_id, resource_id))
+            .where(eq(resourceStatsTable.resource_id, resource_id))
             .returning();
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
 
-    async delete(id: StatsResourcesModel['id']): Promise<StatsResourcesModel> {
+    async delete(id: ResourceStatsModel['id']): Promise<ResourceStatsModel> {
         const [ret] = await db
-            .delete(statsResourcesTable)
-            .where(eq(statsResourcesTable.id, id))
+            .delete(resourceStatsTable)
+            .where(eq(resourceStatsTable.id, id))
             .returning()
 
-        return statsResourcesSchema.model.parse(ret)
+        return resourceStatsSchema.model.parse(ret)
     }
 
-    async find(id: StatsResourcesModel['id']): Promise<StatsResourcesModel | undefined> {
-        const statsResource = await db.query.statsResourcesTable.findFirst({
-            where: eq(statsResourcesTable.id, id),
+    async find(id: ResourceStatsModel['id']): Promise<ResourceStatsModel | undefined> {
+        const statsResource = await db.query.resourceStatsTable.findFirst({
+            where: eq(resourceStatsTable.id, id),
         })
 
-        return statsResourcesSchema.model.parse(statsResource)
+        return resourceStatsSchema.model.parse(statsResource)
     }
 
-    async findMany(): Promise<StatsResourcesModel[]> {
+    async findMany(): Promise<ResourceStatsModel[]> {
 
-        return statsResourcesSchema.model.array().parse(await db.query.statsResourcesTable.findMany())
+        return resourceStatsSchema.model.array().parse(await db.query.resourceStatsTable.findMany())
     }
 
 }
\ No newline at end of file
diff --git a/src/db/repo/subjects.repo.ts b/src/db/repo/subjects.repo.ts
index 1ad4087..16b32c9 100644
--- a/src/db/repo/subjects.repo.ts
+++ b/src/db/repo/subjects.repo.ts
@@ -1,7 +1,7 @@
 import { Service } from "typedi";
-import {type SubjectInput, type SubjectModel, type SubjectUpdate}  from "../schema/subjects.schema";
+import {type SubjectInput, type SubjectModel, type SubjectUpdate}  from "../schema/subject.schema";
 import db from "..";
-import subjectsTable, { subjectSchema } from "../schema/subjects.schema";
+import subjectsTable, { subjectSchema } from "../schema/subject.schema";
 import { eq } from "drizzle-orm";
 
 @Service()
diff --git a/src/db/repo/user-achievements.repo.ts b/src/db/repo/user-achievements.repo.ts
index b9057c2..06f63cb 100644
--- a/src/db/repo/user-achievements.repo.ts
+++ b/src/db/repo/user-achievements.repo.ts
@@ -3,7 +3,7 @@ import type { UserModel } from "../schema/user.schema";
 import db from "..";
 import { achievementTable, userAchievementsTable, userTable } from "../schema";
 import { and, eq, inArray } from "drizzle-orm";
-import type { AchievementModel } from "../schema/achievements.schema";
+import type { AchievementModel } from "../schema/achievement.schema";
 
 @Service()
 export class userAchievementsRepo {
diff --git a/src/db/schema/achievements.schema.ts b/src/db/schema/achievement.schema.ts
similarity index 97%
rename from src/db/schema/achievements.schema.ts
rename to src/db/schema/achievement.schema.ts
index b78896d..4bcc9f9 100644
--- a/src/db/schema/achievements.schema.ts
+++ b/src/db/schema/achievement.schema.ts
@@ -4,7 +4,7 @@ import { z } from "zod";
 
 const stateEnum = pgEnum('state', ['active', 'inactive', 'under_review'])
 
-const achievementTable = pgTable('achievement', {
+const achievementTable = pgTable('achievements', {
     id: serial('id').primaryKey().notNull().unique(),
     name: varchar('name', { length: 255 }).notNull(),
     description: text('description'),
diff --git a/src/db/schema/action.schema.ts b/src/db/schema/action.schema.ts
index 59f7d12..1bf4ece 100644
--- a/src/db/schema/action.schema.ts
+++ b/src/db/schema/action.schema.ts
@@ -3,7 +3,7 @@ import { pgTable, serial, text, timestamp, varchar } from "drizzle-orm/pg-core"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const actionTable = pgTable('action', {
+const actionTable = pgTable('actions', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/schema/collection-stats.schema.ts b/src/db/schema/collection-stats.schema.ts
index cec4928..b502202 100644
--- a/src/db/schema/collection-stats.schema.ts
+++ b/src/db/schema/collection-stats.schema.ts
@@ -5,7 +5,7 @@ import {
   } from 'drizzle-orm/pg-core'
   import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
   import { z } from 'zod'
-import collectionTable from './collections.schema'
+import collectionTable from './collection.schema'
 
   const collectionStatsTable = pgTable('collection_stats', {
     id: serial('id').primaryKey().notNull().unique(),
diff --git a/src/db/schema/collections.schema.ts b/src/db/schema/collection.schema.ts
similarity index 96%
rename from src/db/schema/collections.schema.ts
rename to src/db/schema/collection.schema.ts
index 1c544ce..dba310a 100644
--- a/src/db/schema/collections.schema.ts
+++ b/src/db/schema/collection.schema.ts
@@ -9,7 +9,7 @@ import {
 import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
 import { z } from 'zod'
 
-const collectionTable = pgTable('collection', {
+const collectionTable = pgTable('collections', {
   id: serial('id').primaryKey().notNull().unique(),
   name: varchar('name', { length: 255 }),
   description: text('description'),
diff --git a/src/db/schema/complaints.schema.ts b/src/db/schema/complaint.schema.ts
similarity index 96%
rename from src/db/schema/complaints.schema.ts
rename to src/db/schema/complaint.schema.ts
index 2d68571..0638652 100644
--- a/src/db/schema/complaints.schema.ts
+++ b/src/db/schema/complaint.schema.ts
@@ -3,7 +3,7 @@ import userTable from "./user.schema";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 
-const complaintTable = pgTable('complaint', {
+const complaintTable = pgTable('complaints', {
   id: serial('id').primaryKey().notNull(),
   state: integer('state').notNull().default(0),
   description: text('description').notNull(),
diff --git a/src/db/schema/educational-stages.schema.ts b/src/db/schema/educational-stage.schema.ts
similarity index 100%
rename from src/db/schema/educational-stages.schema.ts
rename to src/db/schema/educational-stage.schema.ts
diff --git a/src/db/schema/index.ts b/src/db/schema/index.ts
index c69e574..1b9bd16 100644
--- a/src/db/schema/index.ts
+++ b/src/db/schema/index.ts
@@ -1,34 +1,33 @@
 import resourceTable from './resource.schema'
-import statsResourcesTable from './stats-resources.schema'
+import resourceStatsTable from './resource-stats.schema'
 import collectionStatsTable from './collection-stats.schema'
-import collectionTable from './collections.schema'
-import subjectsTable from './subjects.schema'
+import collectionTable from './collection.schema'
+import subjectsTable from './subject.schema'
 import submissionTable from './submission.schema'
-import licenseTable from './licenses.schema'
+import licenseTable from './license.schema'
 import languageTable from './language.schema'
-import educationalStageTable from './educational-stages.schema'
+import educationalStageTable from './educational-stage.schema'
 import passwordRecoveryTable, { 
   passwordRecoveryTableRelations 
 } from './password-recovery.schema'
 import userStatsTable from './user-stats.schema'
 import userTable from './user.schema'
 import objectTypeTable from './object-type.schema'
-import complaintTable from './complaints.schema'
-import resourceSubjectsTable from './resource-subjects.schema'
-import achievementTable from './achievements.schema'
-
-import resourceLanguagesTable from './resource-languages.schema'
-import followRelationTable from '../relations/follows.relation'
-import roleTable from './roles.schema'
-import collectionLikesTable from '../relations/collection-likes.relation'
+import complaintTable from './complaint.schema'
+import resourceSubjectsTable from '../relations/resource-subject.relation'
+import achievementTable from './achievement.schema'
+import resourceLanguagesTable from '../relations/resource-language.relation'
+import followRelationTable from '../relations/followers.relation'
+import roleTable from './role.schema'
+import collectionLikesTable from '../relations/collection-like.relation'
 import userRoleRelationTable from '../relations/user-role.relation'
-import collectionResourcesTable from '../relations/collection-resources.relation'
-import institutionTable from './institutions.schema'
+import collectionResourcesTable from '../relations/collection-resource.relation'
+import institutionTable from './institution.schema'
 import userInstitutionRelationTable from '../relations/user-institution.relation'
-import resourceLikesTable from '../relations/resource-likes.relation'
-import resourceEducationalStagesTable from './resource-educational-stages.schema'
-import itemsTable from './items.schema'
-import userAchievementsTable from '../relations/user-achievements.relation'
+import resourceLikesTable from '../relations/resource-like.relation'
+import resourceEducationalStagesTable from '../relations/resource-educational-stage.relation'
+import itemsTable from './item.schema'
+import userAchievementsTable from '../relations/user-achievement.relation'
 import actionTable from './action.schema'
 import notificationRelationTable from '../relations/notification.relation'
 import userItemRelationTable from '../relations/user-item.relation'
@@ -38,7 +37,7 @@ export {
   userStatsTable,
   resourceTable,
   collectionTable,
-  statsResourcesTable,
+  resourceStatsTable,
   collectionStatsTable,
   subjectsTable,
   submissionTable,
@@ -73,7 +72,7 @@ export const tables = [
   passwordRecoveryTable,
   userStatsTable,
   resourceTable,
-  statsResourcesTable,
+  resourceStatsTable,
   collectionTable,
   collectionStatsTable,
   subjectsTable,
diff --git a/src/db/schema/institutions.schema.ts b/src/db/schema/institution.schema.ts
similarity index 96%
rename from src/db/schema/institutions.schema.ts
rename to src/db/schema/institution.schema.ts
index 3201cc5..b61b949 100644
--- a/src/db/schema/institutions.schema.ts
+++ b/src/db/schema/institution.schema.ts
@@ -3,7 +3,7 @@ import { pgTable, serial, timestamp, varchar } from "drizzle-orm/pg-core";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 
-const institutionTable = pgTable('institution', {
+const institutionTable = pgTable('institutions', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/schema/items.schema.ts b/src/db/schema/item.schema.ts
similarity index 96%
rename from src/db/schema/items.schema.ts
rename to src/db/schema/item.schema.ts
index 3694d7a..2314e1f 100644
--- a/src/db/schema/items.schema.ts
+++ b/src/db/schema/item.schema.ts
@@ -1,6 +1,6 @@
 import { boolean, serial, timestamp, varchar } from "drizzle-orm/pg-core";
 import { integer, numeric, pgTable } from "drizzle-orm/pg-core";
-import achievementTable from "./achievements.schema";
+import achievementTable from "./achievement.schema";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 import { sql } from "drizzle-orm";
diff --git a/src/db/schema/language.schema.ts b/src/db/schema/language.schema.ts
index b51ca14..28d28b2 100644
--- a/src/db/schema/language.schema.ts
+++ b/src/db/schema/language.schema.ts
@@ -2,10 +2,10 @@ import { relations } from "drizzle-orm";
 import { pgTable, serial,varchar } from "drizzle-orm/pg-core";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from 'zod'
-import resourceLanguagesTable from "./resource-languages.schema";
+import resourceLanguagesTable from "../relations/resource-language.relation";
 
 
-const languageTable = pgTable('language', {
+const languageTable = pgTable('languages', {
     id: serial('id').primaryKey().unique(),
     name: varchar('name').notNull().unique(),
     code: varchar('code').notNull().unique()
diff --git a/src/db/schema/licenses.schema.ts b/src/db/schema/license.schema.ts
similarity index 100%
rename from src/db/schema/licenses.schema.ts
rename to src/db/schema/license.schema.ts
diff --git a/src/db/schema/password-recovery.schema.ts b/src/db/schema/password-recovery.schema.ts
index 2eb9097..1a2c79c 100644
--- a/src/db/schema/password-recovery.schema.ts
+++ b/src/db/schema/password-recovery.schema.ts
@@ -4,7 +4,7 @@ import userTable from "./user.schema";
 import { createInsertSchema, createSelectSchema } from "drizzle-zod";
 import type { z } from "zod";
 
-const passwordRecoveryTable = pgTable('reset_ticket',{
+const passwordRecoveryTable = pgTable('reset_tickets',{
   id: serial('id').primaryKey()
   .unique()
   .notNull(),
diff --git a/src/db/schema/resource-stats.schema.ts b/src/db/schema/resource-stats.schema.ts
new file mode 100644
index 0000000..0e7d1eb
--- /dev/null
+++ b/src/db/schema/resource-stats.schema.ts
@@ -0,0 +1,39 @@
+import {
+    pgTable,
+    serial,
+    bigint
+} from 'drizzle-orm/pg-core'
+import resourceTable from './resource.schema'
+import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
+import type { z } from 'zod'
+
+
+const resourceStatsTable = pgTable('resource_stats', {
+    id: serial('id').notNull().primaryKey().unique(),
+    resource_id: bigint('resource_id', {mode: 'number'}).notNull().references(() => resourceTable.id, {onDelete: 'cascade'}),
+    views: bigint('views', {mode: 'number'}).notNull().default(0),
+    downloads: bigint('downloads', {mode: 'number'}).notNull().default(0),
+    shares: bigint('shares', {mode: 'number'}).notNull().default(0),
+    score: bigint('score', {mode: 'number'}).notNull().default(0)
+})
+
+const resourceStatsModelSchema = createSelectSchema(resourceStatsTable)
+const resourceStatsDtoSchema = resourceStatsModelSchema.omit({})
+const resourceStatsInputSchema = createInsertSchema(resourceStatsTable)
+const resourceStatsUpdateSchema = resourceStatsInputSchema
+    .partial()
+    .required({ resource_id: true })
+
+export type ResourceStatsModel = z.infer<typeof resourceStatsModelSchema>
+export type ResourceStatsDto = z.infer<typeof resourceStatsDtoSchema>
+export type ResourceStatsInput = z.infer<typeof resourceStatsInputSchema>
+export type ResourceStatsUpdate = z.infer<typeof resourceStatsUpdateSchema>
+
+export const resourceStatsSchema = {
+    model: resourceStatsModelSchema,
+    dto: resourceStatsDtoSchema,
+    input: resourceStatsInputSchema,
+    update: resourceStatsUpdateSchema,
+}
+
+export default resourceStatsTable
diff --git a/src/db/schema/resource.schema.ts b/src/db/schema/resource.schema.ts
index 1971ee5..dd88b01 100644
--- a/src/db/schema/resource.schema.ts
+++ b/src/db/schema/resource.schema.ts
@@ -8,12 +8,12 @@ import {
 import { relations, sql } from 'drizzle-orm'
 import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
 import type { z } from 'zod'
-import resourceLanguagesTable from './resource-languages.schema'
-import resourceSubjectsTable from './resource-subjects.schema'
-import resourceEducationalStagesTable from './resource-educational-stages.schema'
+import resourceLanguagesTable from '../relations/resource-language.relation'
+import resourceSubjectsTable from '../relations/resource-subject.relation'
+import resourceEducationalStagesTable from '../relations/resource-educational-stage.relation'
 
 //por padrao active é false, só é true quando o recurso é aprovado
-const resourceTable = pgTable('resource', {
+const resourceTable = pgTable('resources', {
     id: serial('id').notNull().primaryKey().unique(),
     name: varchar('name', { length: 256 }).notNull(),
     author: varchar('author', { length: 256 }).notNull(),
diff --git a/src/db/schema/roles.schema.ts b/src/db/schema/role.schema.ts
similarity index 97%
rename from src/db/schema/roles.schema.ts
rename to src/db/schema/role.schema.ts
index b821164..9fe2ac8 100644
--- a/src/db/schema/roles.schema.ts
+++ b/src/db/schema/role.schema.ts
@@ -3,7 +3,7 @@ import { pgTable, serial, text, timestamp, varchar } from "drizzle-orm/pg-core"
 import { createInsertSchema, createSelectSchema } from "drizzle-zod"
 import type { z } from "zod"
 
-const roleTable = pgTable('role', {
+const roleTable = pgTable('roles', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
diff --git a/src/db/schema/stats-resources.schema.ts b/src/db/schema/stats-resources.schema.ts
deleted file mode 100644
index 1d586b9..0000000
--- a/src/db/schema/stats-resources.schema.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import {
-    pgTable,
-    serial,
-    bigint
-} from 'drizzle-orm/pg-core'
-import resourceTable from './resource.schema'
-import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
-import type { z } from 'zod'
-
-
-const statsResourcesTable = pgTable('stats_resources', {
-    id: serial('id').notNull().primaryKey().unique(),
-    resource_id: bigint('resource_id', {mode: 'number'}).notNull().references(() => resourceTable.id, {onDelete: 'cascade'}),
-    views: bigint('views', {mode: 'number'}).notNull().default(0),
-    downloads: bigint('downloads', {mode: 'number'}).notNull().default(0),
-    shares: bigint('shares', {mode: 'number'}).notNull().default(0),
-    score: bigint('score', {mode: 'number'}).notNull().default(0)
-})
-
-const statsResourcesModelSchema = createSelectSchema(statsResourcesTable)
-const statsResourcesDtoSchema = statsResourcesModelSchema.omit({})
-const statsResourcesInputSchema = createInsertSchema(statsResourcesTable)
-const statsResourcesUpdateSchema = statsResourcesInputSchema
-    .partial()
-    .required({ resource_id: true })
-
-export type StatsResourcesModel = z.infer<typeof statsResourcesModelSchema>
-export type StatsResourcesDto = z.infer<typeof statsResourcesDtoSchema>
-export type StatsResourcesInput = z.infer<typeof statsResourcesInputSchema>
-export type StatsResourcesUpdate = z.infer<typeof statsResourcesUpdateSchema>
-
-export const statsResourcesSchema = {
-    model: statsResourcesModelSchema,
-    dto: statsResourcesDtoSchema,
-    input: statsResourcesInputSchema,
-    update: statsResourcesUpdateSchema,
-}
-
-export default statsResourcesTable
diff --git a/src/db/schema/subjects.schema.ts b/src/db/schema/subject.schema.ts
similarity index 100%
rename from src/db/schema/subjects.schema.ts
rename to src/db/schema/subject.schema.ts
diff --git a/src/db/schema/submission.schema.ts b/src/db/schema/submission.schema.ts
index 2717182..03eb63b 100644
--- a/src/db/schema/submission.schema.ts
+++ b/src/db/schema/submission.schema.ts
@@ -4,7 +4,7 @@ import type { z } from "zod";
 import resourceTable from "./resource.schema";
 import userTable from "./user.schema";
 
-const submissionTable = pgTable('submission', {
+const submissionTable = pgTable('submissions', {
     id: serial('id').primaryKey().notNull(),
     is_accepted: boolean('is_accepted').default(false).notNull(),
     justification: text('justification'),
diff --git a/src/db/schema/user.schema.ts b/src/db/schema/user.schema.ts
index caac90e..7c5fdb3 100644
--- a/src/db/schema/user.schema.ts
+++ b/src/db/schema/user.schema.ts
@@ -4,9 +4,9 @@ import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
 import { z } from 'zod'
 import userStatsTable from './user-stats.schema'
 import passwordRecoveryTable from './password-recovery.schema'
-import achievementTable from './achievements.schema'
+import userAchievementsTable from '../relations/user-achievement.relation'
 
-const userTable = pgTable('user', {
+const userTable = pgTable('users', {
   id: serial('id').primaryKey()
     .unique()
     .notNull(),
@@ -62,7 +62,9 @@ const userInputSchema = createInsertSchema(userTable)
   username: true,
   password: true,
   email: true,
-  birthday: true
+  birthday: true,
+  cpf: true,
+  user_stats_id: true
 })
 const userModelSchema = createSelectSchema(userTable)
 const userDtoSchema = createSelectSchema(userTable).omit({
diff --git a/src/db/seed.ts b/src/db/seed.ts
index 99d3ff9..fad4420 100644
--- a/src/db/seed.ts
+++ b/src/db/seed.ts
@@ -24,7 +24,7 @@ for (const table of schema.tables) {
 await seeds.userStatsSeed(db)
 await seeds.userSeed(db)
 await seeds.resourceSeed(db)
-await seeds.statsResourcesSeed(db)
+await seeds.resourceStatsSeed(db)
 await seeds.collectionSeed(db)
 await seeds.collectionStatsSeed(db)
 await seeds.subjectsData(db)
diff --git a/src/db/seeds/achievement.seed.ts b/src/db/seeds/achievement.seed.ts
index 5ca8158..7fc5bec 100644
--- a/src/db/seeds/achievement.seed.ts
+++ b/src/db/seeds/achievement.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
 import { achievementTable } from "../schema";
-import type { AchievementInput } from "../schema/achievements.schema";
+import type { AchievementInput } from "../schema/achievement.schema";
 
 export default async function seed(db: db) {
     await db.insert(achievementTable).values(achievementData)
diff --git a/src/db/seeds/collection-likes.seed.ts b/src/db/seeds/collection-likes.seed.ts
index 755b40d..5df379f 100644
--- a/src/db/seeds/collection-likes.seed.ts
+++ b/src/db/seeds/collection-likes.seed.ts
@@ -1,5 +1,5 @@
 import type db from "..";
-import type { CollectionLikesInput } from "../relations/collection-likes.relation";
+import type { CollectionLikesInput } from "../relations/collection-like.relation";
 import { collectionLikesTable } from "../schema";
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/collection-resources.seed.ts b/src/db/seeds/collection-resources.seed.ts
index 2151757..fb766db 100644
--- a/src/db/seeds/collection-resources.seed.ts
+++ b/src/db/seeds/collection-resources.seed.ts
@@ -1,5 +1,5 @@
 import type db from "..";
-import type { CollectionResourcesInput } from "../relations/collection-resources.relation";
+import type { CollectionResourcesInput } from "../relations/collection-resource.relation";
 import { collectionResourcesTable } from "../schema";
 
 
diff --git a/src/db/seeds/collections.seed.ts b/src/db/seeds/collections.seed.ts
index c2446a4..e5fce56 100644
--- a/src/db/seeds/collections.seed.ts
+++ b/src/db/seeds/collections.seed.ts
@@ -1,6 +1,6 @@
 import type db from '..'
-import type { CollectionInput } from '../schema/collections.schema'
-import collectionTable from '../schema/collections.schema'
+import type { CollectionInput } from '../schema/collection.schema'
+import collectionTable from '../schema/collection.schema'
 
 export default async function seed(db:db) {
     await db.insert(collectionTable).values(collectionData)
diff --git a/src/db/seeds/complaints.seed.ts b/src/db/seeds/complaints.seed.ts
index ff87a66..3fe32e2 100644
--- a/src/db/seeds/complaints.seed.ts
+++ b/src/db/seeds/complaints.seed.ts
@@ -1,7 +1,7 @@
 
 import type db from "..";
 import { complaintTable } from "../schema";
-import type { ComplaintInput } from "../schema/complaints.schema";
+import type { ComplaintInput } from "../schema/complaint.schema";
 
 export default async function seed(db: db){ 
     await db.insert(complaintTable).values(complaintData)
diff --git a/src/db/seeds/educational-stage.seed.ts b/src/db/seeds/educational-stage.seed.ts
index 03c4f8b..ae3e79a 100644
--- a/src/db/seeds/educational-stage.seed.ts
+++ b/src/db/seeds/educational-stage.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
 import { educationalStageTable } from "../schema";
-import type { EducationalStagesInput } from "../schema/educational-stages.schema";
+import type { EducationalStagesInput } from "../schema/educational-stage.schema";
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/index.ts b/src/db/seeds/index.ts
index 0e6a175..dcf31d8 100644
--- a/src/db/seeds/index.ts
+++ b/src/db/seeds/index.ts
@@ -1,7 +1,7 @@
 export { default as userSeed } from './user.seed'
 export { default as userStatsSeed } from './user-stats.seed'
 export { default as resourceSeed } from './resource.seed'
-export { default as statsResourcesSeed } from './statsResources.seed'
+export { default as resourceStatsSeed } from './resourceStats.seed'
 export { default as collectionSeed } from './collections.seed'
 export { default as collectionStatsSeed } from './collection-stats.seed'
 export { default as subjectsData } from './subjects.seed'
diff --git a/src/db/seeds/institutions.seed.ts b/src/db/seeds/institutions.seed.ts
index 34304e2..6af0fbd 100644
--- a/src/db/seeds/institutions.seed.ts
+++ b/src/db/seeds/institutions.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
 import { institutionTable } from "../schema";
-import type { InstitutionInput } from "../schema/institutions.schema";
+import type { InstitutionInput } from "../schema/institution.schema";
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/items.seed.ts b/src/db/seeds/items.seed.ts
index 779a089..e77a8a9 100644
--- a/src/db/seeds/items.seed.ts
+++ b/src/db/seeds/items.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
 import { itemsTable } from "../schema";
-import type { ItemsInput } from "../schema/items.schema";
+import type { ItemsInput } from "../schema/item.schema";
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/license.seed.ts b/src/db/seeds/license.seed.ts
index d2fbe03..ea4fe3a 100644
--- a/src/db/seeds/license.seed.ts
+++ b/src/db/seeds/license.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
 import { licenseTable } from "../schema";
-import type { LicenseInput } from "../schema/licenses.schema";
+import type { LicenseInput } from "../schema/license.schema";
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/resource-educational-stages.seed.ts b/src/db/seeds/resource-educational-stages.seed.ts
index 29e03d9..d3e274b 100644
--- a/src/db/seeds/resource-educational-stages.seed.ts
+++ b/src/db/seeds/resource-educational-stages.seed.ts
@@ -1,5 +1,5 @@
 import type db from "..";
-import resourceEducationalStagesTable, { type ResourceEducationalStagesInput } from "../schema/resource-educational-stages.schema";
+import resourceEducationalStagesTable, { type ResourceEducationalStagesInput } from "../relations/resource-educational-stage.relation";
 
 export default async function seed(db: db) {
     await db.insert(resourceEducationalStagesTable).values(resourceEducationalStagesData);
diff --git a/src/db/seeds/resource-language.seed.ts b/src/db/seeds/resource-language.seed.ts
index fbb6bf0..d76927d 100644
--- a/src/db/seeds/resource-language.seed.ts
+++ b/src/db/seeds/resource-language.seed.ts
@@ -1,6 +1,6 @@
 import type db from '@/db';
 import { resourceLanguagesTable } from '../schema';
-import type { ResourceLanguagesInput } from '../schema/resource-languages.schema';
+import type { ResourceLanguagesInput } from '../relations/resource-language.relation';
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/resource-likes.seed.ts b/src/db/seeds/resource-likes.seed.ts
index f5d673b..8a9a80a 100644
--- a/src/db/seeds/resource-likes.seed.ts
+++ b/src/db/seeds/resource-likes.seed.ts
@@ -1,5 +1,5 @@
 import type db from "..";
-import type { ResourceLikesInput } from "../relations/resource-likes.relation";
+import type { ResourceLikesInput } from "../relations/resource-like.relation";
 import { resourceLikesTable } from "../schema";
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/resource-subjects.seed.ts b/src/db/seeds/resource-subjects.seed.ts
index 73afff0..893cde7 100644
--- a/src/db/seeds/resource-subjects.seed.ts
+++ b/src/db/seeds/resource-subjects.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
-import type { ResourceSubjectsInput } from "../schema/resource-subjects.schema";
-import resourceSubjectsTable from "../schema/resource-subjects.schema";
+import type { ResourceSubjectsInput } from "../relations/resource-subject.relation";
+import resourceSubjectsTable from "../relations/resource-subject.relation";
 
 
 export default async function seed(db: db) {
diff --git a/src/db/seeds/statsResources.seed.ts b/src/db/seeds/resourceStats.seed.ts
similarity index 55%
rename from src/db/seeds/statsResources.seed.ts
rename to src/db/seeds/resourceStats.seed.ts
index cf324dd..874752c 100644
--- a/src/db/seeds/statsResources.seed.ts
+++ b/src/db/seeds/resourceStats.seed.ts
@@ -1,13 +1,13 @@
 import type db from '@/db'
-import { statsResourcesTable } from '../schema'
-import type { StatsResourcesInput } from '../schema/stats-resources.schema'
+import { resourceStatsTable } from '../schema'
+import type { ResourceStatsInput } from '../schema/resource-stats.schema'
 
 
 export default async function seed(db: db) {
-    await db.insert(statsResourcesTable).values(statsResourceData)
+    await db.insert(resourceStatsTable).values(statsResourceData)
 }
 
-const statsResourceData: StatsResourcesInput[] = [
+const statsResourceData: ResourceStatsInput[] = [
     {
         resource_id: 1,
         views: 0,
diff --git a/src/db/seeds/role.seed.ts b/src/db/seeds/role.seed.ts
index 244882a..1c35215 100644
--- a/src/db/seeds/role.seed.ts
+++ b/src/db/seeds/role.seed.ts
@@ -1,5 +1,5 @@
 import type db from "@/db";
-import roleTable, { type RoleInput } from "../schema/roles.schema";
+import roleTable, { type RoleInput } from "../schema/role.schema";
 
 export default async function seed(db: db) {
   await db.insert(roleTable).values(rolesData)
diff --git a/src/db/seeds/subjects.seed.ts b/src/db/seeds/subjects.seed.ts
index 80a1ffd..5e8e102 100644
--- a/src/db/seeds/subjects.seed.ts
+++ b/src/db/seeds/subjects.seed.ts
@@ -1,6 +1,6 @@
 import type db from "..";
-import type { SubjectInput } from "../schema/subjects.schema";
-import subjectsTable from "../schema/subjects.schema";
+import type { SubjectInput } from "../schema/subject.schema";
+import subjectsTable from "../schema/subject.schema";
 
 export default async function seed(db:db) {
     await db.insert(subjectsTable).values(subjectsData)
diff --git a/src/db/seeds/user-achievements.seed.ts b/src/db/seeds/user-achievements.seed.ts
index 523eae0..fbd74a9 100644
--- a/src/db/seeds/user-achievements.seed.ts
+++ b/src/db/seeds/user-achievements.seed.ts
@@ -1,5 +1,5 @@
 import type db from "..";
-import type { UserAchievementsInput } from "../relations/user-achievements.relation";
+import type { UserAchievementsInput } from "../relations/user-achievement.relation";
 import { userAchievementsTable } from "../schema";
 
 export default async function seed(db: db) {
diff --git a/src/routes/achievement.route.ts b/src/routes/achievement.route.ts
index c035189..90a8e66 100644
--- a/src/routes/achievement.route.ts
+++ b/src/routes/achievement.route.ts
@@ -2,7 +2,7 @@ import { AchievementService } from "@/services/achievement.service";
 import Container, { ContainerInstance } from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { achievementSchemas } from "@/db/schema/achievements.schema";
+import { achievementSchemas } from "@/db/schema/achievement.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
 
diff --git a/src/routes/collections.route.ts b/src/routes/collections.route.ts
index f39ae5d..effe7fa 100644
--- a/src/routes/collections.route.ts
+++ b/src/routes/collections.route.ts
@@ -2,7 +2,7 @@ import { CollectionsService } from "@/services/collections.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { collectionSchemas } from "@/db/schema/collections.schema";
+import { collectionSchemas } from "@/db/schema/collection.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
 import { collectionStatsSchemas } from "@/db/schema/collection-stats.schema";
diff --git a/src/routes/complaints.route.ts b/src/routes/complaints.route.ts
index 149903f..637e724 100644
--- a/src/routes/complaints.route.ts
+++ b/src/routes/complaints.route.ts
@@ -1,7 +1,7 @@
 import { ComplaintService } from "@/services/complaints.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
-import { complaintSchemas } from "@/db/schema/complaints.schema";
+import { complaintSchemas } from "@/db/schema/complaint.schema";
 import { zValidator } from "@hono/zod-validator";
 import { createApexError, HttpStatus } from "@/services/error.service";
 
diff --git a/src/routes/educational-stage.routes.ts b/src/routes/educational-stage.routes.ts
index 26947aa..e01e27c 100644
--- a/src/routes/educational-stage.routes.ts
+++ b/src/routes/educational-stage.routes.ts
@@ -2,7 +2,7 @@ import { EducationalStageService } from "@/services/educational-stage.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { educationalStageSchema } from "@/db/schema/educational-stages.schema";
+import { educationalStageSchema } from "@/db/schema/educational-stage.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
 
diff --git a/src/routes/institution.route.ts b/src/routes/institution.route.ts
index d6e5429..ef4fd30 100644
--- a/src/routes/institution.route.ts
+++ b/src/routes/institution.route.ts
@@ -2,7 +2,7 @@ import { InstitutionService } from "@/services/institution.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { institutionSchemas } from "@/db/schema/institutions.schema";
+import { institutionSchemas } from "@/db/schema/institution.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { z } from "zod";
 
diff --git a/src/routes/items.route.ts b/src/routes/items.route.ts
index 83977e0..910e267 100644
--- a/src/routes/items.route.ts
+++ b/src/routes/items.route.ts
@@ -2,7 +2,7 @@ import { ItemsService } from "@/services/items.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { itemsSchema } from "@/db/schema/items.schema";
+import { itemsSchema } from "@/db/schema/item.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
 
diff --git a/src/routes/license.route.ts b/src/routes/license.route.ts
index c5db30a..cef1eaa 100644
--- a/src/routes/license.route.ts
+++ b/src/routes/license.route.ts
@@ -2,7 +2,7 @@ import { LicenseService } from "@/services/license.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
 import { zValidator } from "@hono/zod-validator";
-import { licenseSchema } from "@/db/schema/licenses.schema";
+import { licenseSchema } from "@/db/schema/license.schema";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
 
diff --git a/src/routes/resource.route.ts b/src/routes/resource.route.ts
index 80826cc..cdb725b 100644
--- a/src/routes/resource.route.ts
+++ b/src/routes/resource.route.ts
@@ -5,7 +5,7 @@ import { honoWithJwt } from '..';
 import Container from "typedi";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
-import { statsResourcesSchema } from "@/db/schema/stats-resources.schema";
+import { resourceStatsSchema } from "@/db/schema/resource-stats.schema";
 import { StatsResourceService } from "@/services/stats-resources.service";
 
 const service = Container.get(ResourceService);
@@ -22,7 +22,7 @@ export const resourceRouter = honoWithJwt()
                 const resource = resourceSchema.dto.parse(await service.create(input))
 
                 //cria o stats do recurso correspondente
-                const stats = statsResourcesSchema.dto.parse(await serviceStats.create({ resource_id: resource.id }))
+                const stats = resourceStatsSchema.dto.parse(await serviceStats.create({ resource_id: resource.id }))
 
                 return c.json({ resource, stats })
             } catch (e) {
diff --git a/src/routes/role.route.ts b/src/routes/role.route.ts
index 7c1a892..7d7195c 100644
--- a/src/routes/role.route.ts
+++ b/src/routes/role.route.ts
@@ -2,7 +2,7 @@ import { RoleService } from "@/services/role.service"
 import Container from "typedi"
 import { honoWithJwt } from ".."
 import { zValidator } from "@hono/zod-validator"
-import { roleSchemas } from "@/db/schema/roles.schema"
+import { roleSchemas } from "@/db/schema/role.schema"
 import { createApexError, HttpStatus } from "@/services/error.service"
 import { z } from "zod"
 
diff --git a/src/routes/stats-resource.route.ts b/src/routes/stats-resource.route.ts
index bc37055..cc7aa05 100644
--- a/src/routes/stats-resource.route.ts
+++ b/src/routes/stats-resource.route.ts
@@ -4,7 +4,7 @@ import Container from "typedi";
 import { honoWithJwt } from '..';
 import { createApexError, HttpStatus } from "@/services/error.service";
 import { Hono } from "hono";
-import { statsResourcesSchema } from "@/db/schema/stats-resources.schema";
+import { resourceStatsSchema } from "@/db/schema/resource-stats.schema";
 
 
 const service = Container.get(StatsResourceService)
@@ -12,11 +12,11 @@ const service = Container.get(StatsResourceService)
 export const statsResourceRouter = honoWithJwt()
     // rota para criar as stats de um recurso
     .post('/create',
-        zValidator('json', statsResourcesSchema.input),
+        zValidator('json', resourceStatsSchema.input),
         async (c) => {
             try {
                 const input = await c.req.valid('json')
-                const statsResource = statsResourcesSchema.dto.parse(await service.create(input))
+                const statsResource = resourceStatsSchema.dto.parse(await service.create(input))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -36,12 +36,12 @@ export const statsResourceRouter = honoWithJwt()
 
 // rota para atualizar as stats de um recurso
     .post('/update',
-        zValidator('json', statsResourcesSchema.update),
+        zValidator('json', resourceStatsSchema.update),
         async (c) => {
 
             try {
                 const input = await c.req.valid('json')
-                const statsResource = statsResourcesSchema.dto.parse(await service.update(input))
+                const statsResource = resourceStatsSchema.dto.parse(await service.update(input))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -64,7 +64,7 @@ export const statsResourceRouter = honoWithJwt()
         async (c) => {
             try {
                 const id = +c.req.param('id')
-                const statsResource = statsResourcesSchema.dto.parse(await service.delete(id))
+                const statsResource = resourceStatsSchema.dto.parse(await service.delete(id))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -88,7 +88,7 @@ export const publicStatsResourceRouter = new Hono()
         async (c) => {
             try {
                 const id = +c.req.param('id')
-                const statsResource = statsResourcesSchema.dto.parse(await service.viewUpdate(id))
+                const statsResource = resourceStatsSchema.dto.parse(await service.viewUpdate(id))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -111,7 +111,7 @@ export const publicStatsResourceRouter = new Hono()
         async (c) => {
             try {
                 const id = +c.req.param('id')
-                const statsResource = statsResourcesSchema.dto.parse(await service.sharesUpdate(id))
+                const statsResource = resourceStatsSchema.dto.parse(await service.sharesUpdate(id))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -134,7 +134,7 @@ export const publicStatsResourceRouter = new Hono()
         async (c) => {
             try {
                 const id = +c.req.param('id')
-                const statsResource = statsResourcesSchema.dto.parse(await service.downloadUpdate(id))
+                const statsResource = resourceStatsSchema.dto.parse(await service.downloadUpdate(id))
 
                 return c.json({ statsResource })
             } catch (e) {
@@ -155,9 +155,9 @@ export const publicStatsResourceRouter = new Hono()
 //rota para pegar todas as stats de todos os recursos    
     .get('/all', async (c) => {
         try {
-            const statsResources = statsResourcesSchema.dto.array().parse(await service.findMany())
+            const resourceStats = resourceStatsSchema.dto.array().parse(await service.findMany())
 
-            return c.json({ statsResources })
+            return c.json({ resourceStats })
         } catch (e) {
             return c.json(
                 createApexError({
@@ -178,7 +178,7 @@ export const publicStatsResourceRouter = new Hono()
         async (c) => {
             try {
                 const id = +c.req.param('id')
-                const statsResource = statsResourcesSchema.dto.parse(await service.findById(id))
+                const statsResource = resourceStatsSchema.dto.parse(await service.findById(id))
 
                 return c.json({ statsResource })
             } catch (e) {
diff --git a/src/routes/subjects.route.ts b/src/routes/subjects.route.ts
index ff981a9..d739604 100644
--- a/src/routes/subjects.route.ts
+++ b/src/routes/subjects.route.ts
@@ -2,7 +2,7 @@ import { SubjectsService } from "@/services/subjects.service";
 import { createApexError, HttpStatus } from "@/services/error.service";
 import Container from "typedi";
 import { honoWithJwt } from "..";
-import { subjectSchema } from "@/db/schema/subjects.schema";
+import { subjectSchema } from "@/db/schema/subject.schema";
 import { Hono } from "hono";
 import { zValidator } from "@hono/zod-validator";
 
diff --git a/src/routes/user-institution.route.ts b/src/routes/user-institution.route.ts
index eca7d08..823a73b 100644
--- a/src/routes/user-institution.route.ts
+++ b/src/routes/user-institution.route.ts
@@ -8,7 +8,7 @@ import { z } from "zod";
 import { UserService } from "@/services/user.service";
 import { userSchemas, type UserProfile } from "@/db/schema/user.schema";
 import { InstitutionService } from "@/services/institution.service";
-import { institutionSchemas, type InstitutionModel } from "@/db/schema/institutions.schema";
+import { institutionSchemas, type InstitutionModel } from "@/db/schema/institution.schema";
 
 const service = Container.get(UserInstitutionRelationService)
 const userService = Container.get(UserService)
diff --git a/src/routes/user-item.route.ts b/src/routes/user-item.route.ts
index 02ea597..ce11239 100644
--- a/src/routes/user-item.route.ts
+++ b/src/routes/user-item.route.ts
@@ -7,7 +7,7 @@ import { z } from "zod";
 import { UserService } from "@/services/user.service";
 import { userSchemas, type UserProfile } from "@/db/schema/user.schema";
 import { ItemsService } from "@/services/items.service";
-import { itemsSchema, type ItemsModel } from "@/db/schema/items.schema";
+import { itemsSchema, type ItemsModel } from "@/db/schema/item.schema";
 import { UserItemRelationService } from "@/services/user-item.relation.service";
 
 const service = Container.get(UserItemRelationService)
diff --git a/src/routes/user-role.route.ts b/src/routes/user-role.route.ts
index 0ad75f1..0b4ed77 100644
--- a/src/routes/user-role.route.ts
+++ b/src/routes/user-role.route.ts
@@ -8,7 +8,7 @@ import { z } from "zod";
 import { UserService } from "@/services/user.service";
 import { userSchemas, type UserProfile } from "@/db/schema/user.schema";
 import { RoleService } from "@/services/role.service";
-import { roleSchemas, type RoleModel } from "@/db/schema/roles.schema";
+import { roleSchemas, type RoleModel } from "@/db/schema/role.schema";
 
 const service = Container.get(UserRoleRelationService)
 const userService = Container.get(UserService)
diff --git a/src/routes/user.route.ts b/src/routes/user.route.ts
index 7564d1c..cd81b42 100644
--- a/src/routes/user.route.ts
+++ b/src/routes/user.route.ts
@@ -6,7 +6,7 @@ import { zValidator } from '@hono/zod-validator'
 import { honoWithJwt } from '..'
 import { Hono } from 'hono'
 import { createApexError, HttpStatus } from '@/services/error.service'
-import { followRelationSchemas } from '@/db/relations/follows.relation'
+import { followRelationSchemas } from '@/db/relations/followers.relation'
 import { UserStatsService } from '@/services/user-stats.service'
 import { FollowRelationService } from '@/services/follow.relation.service'
 import { userStatsSchemas } from '@/db/schema/user-stats.schema'
diff --git a/src/services/achievement.service.ts b/src/services/achievement.service.ts
index fb28f62..f5abce8 100644
--- a/src/services/achievement.service.ts
+++ b/src/services/achievement.service.ts
@@ -1,5 +1,5 @@
 import { AchievementRepo } from "@/db/repo/achievement.repo";
-import type { AchievementInput, AchievementModel, AchievementUpdate } from "@/db/schema/achievements.schema";
+import type { AchievementInput, AchievementModel, AchievementUpdate } from "@/db/schema/achievement.schema";
 import { Inject, Service } from "typedi";
 
 @Service()
diff --git a/src/services/collection-likes.service.ts b/src/services/collection-likes.service.ts
index 1300be1..658360b 100644
--- a/src/services/collection-likes.service.ts
+++ b/src/services/collection-likes.service.ts
@@ -1,5 +1,5 @@
 import { collectionLikesRepo } from "@/db/repo/collection-likes.repo";
-import type { CollectionModel } from "@/db/schema/collections.schema";
+import type { CollectionModel } from "@/db/schema/collection.schema";
 import type { UserModel } from "@/db/schema/user.schema";
 import { Inject, Service } from "typedi";
 
diff --git a/src/services/collection-resources.service.ts b/src/services/collection-resources.service.ts
index 8da5647..4d0b984 100644
--- a/src/services/collection-resources.service.ts
+++ b/src/services/collection-resources.service.ts
@@ -1,5 +1,5 @@
 import { collectionResourcesRepo } from "@/db/repo/collection-resources.repo";
-import type { CollectionModel } from "@/db/schema/collections.schema";
+import type { CollectionModel } from "@/db/schema/collection.schema";
 import type { ResourceModel } from "@/db/schema/resource.schema";
 import { Inject, Service } from "typedi";
 
diff --git a/src/services/collections.service.ts b/src/services/collections.service.ts
index 8783a66..024b390 100644
--- a/src/services/collections.service.ts
+++ b/src/services/collections.service.ts
@@ -4,7 +4,7 @@ import type {
   CollectionInput, 
   CollectionModel,
   CollectionUpdate
-} from '@/db/schema/collections.schema'
+} from '@/db/schema/collection.schema'
 
 @Service()
 export class CollectionsService {
diff --git a/src/services/complaints.service.ts b/src/services/complaints.service.ts
index 1368911..3e7d31a 100644
--- a/src/services/complaints.service.ts
+++ b/src/services/complaints.service.ts
@@ -1,5 +1,5 @@
 import  { ComplaintRepo } from "@/db/repo/complaint.repo";
-import type { ComplaintInput, ComplaintModel, ComplaintUpdate } from "@/db/schema/complaints.schema";
+import type { ComplaintInput, ComplaintModel, ComplaintUpdate } from "@/db/schema/complaint.schema";
 import { Inject, Service } from "typedi";
 
 @Service()
diff --git a/src/services/educational-stage.service.ts b/src/services/educational-stage.service.ts
index fa85463..679d011 100644
--- a/src/services/educational-stage.service.ts
+++ b/src/services/educational-stage.service.ts
@@ -1,5 +1,5 @@
 import  { educationalStageRepo } from "@/db/repo/educational-stage.repo";
-import type { EducationalStagesInput, EducationalStagesModel, EducationalStagesUpdate } from "@/db/schema/educational-stages.schema";
+import type { EducationalStagesInput, EducationalStagesModel, EducationalStagesUpdate } from "@/db/schema/educational-stage.schema";
 import { Inject, Service } from "typedi";
 
 
diff --git a/src/services/follow.relation.service.ts b/src/services/follow.relation.service.ts
index 5bbbe39..404c8cf 100644
--- a/src/services/follow.relation.service.ts
+++ b/src/services/follow.relation.service.ts
@@ -4,7 +4,7 @@ import {
   type FollowRelationModel, 
   type FollowRelationUpdate 
 
-  } from "@/db/relations/follows.relation";
+  } from "@/db/relations/followers.relation";
 import { FollowRepo } from "@/db/repo/follow.repo";
 import { Inject, Service } from "typedi";
 
diff --git a/src/services/institution.service.ts b/src/services/institution.service.ts
index cbafbbb..6280231 100644
--- a/src/services/institution.service.ts
+++ b/src/services/institution.service.ts
@@ -1,6 +1,6 @@
 import type db from "@/db";
 import { InstitutionRepo } from "@/db/repo/institutions.repo";
-import type { InstitutionModel, InstitutionInput, InstitutionUpdate } from "@/db/schema/institutions.schema";
+import type { InstitutionModel, InstitutionInput, InstitutionUpdate } from "@/db/schema/institution.schema";
 import { Inject, Service } from "typedi";
 
 @Service()
diff --git a/src/services/items.service.ts b/src/services/items.service.ts
index 4c63b03..5fa3702 100644
--- a/src/services/items.service.ts
+++ b/src/services/items.service.ts
@@ -1,5 +1,5 @@
 import { ItemsRepo } from "@/db/repo/items.repo";
-import type { ItemsInput, ItemsModel, ItemsUpdate } from "@/db/schema/items.schema";
+import type { ItemsInput, ItemsModel, ItemsUpdate } from "@/db/schema/item.schema";
 import { Inject, Service } from "typedi";
 
 
diff --git a/src/services/license.service.ts b/src/services/license.service.ts
index 2f44580..3e2e84e 100644
--- a/src/services/license.service.ts
+++ b/src/services/license.service.ts
@@ -1,5 +1,5 @@
 import { LicenseRepo } from "@/db/repo/licenses.repo";
-import type { LicenseInput, LicenseModel, LicenseUpdate } from "@/db/schema/licenses.schema";
+import type { LicenseInput, LicenseModel, LicenseUpdate } from "@/db/schema/license.schema";
 import { Inject, Service } from "typedi";
 
 
diff --git a/src/services/resource-educational-stages.service.ts b/src/services/resource-educational-stages.service.ts
index 37dd70c..53b018e 100644
--- a/src/services/resource-educational-stages.service.ts
+++ b/src/services/resource-educational-stages.service.ts
@@ -1,5 +1,5 @@
 import  { resourceEducationalStages } from "@/db/repo/resource-educational-stages.repo";
-import type { EducationalStagesModel } from "@/db/schema/educational-stages.schema";
+import type { EducationalStagesModel } from "@/db/schema/educational-stage.schema";
 import type { ResourceModel } from "@/db/schema/resource.schema";
 import { Inject, Service } from "typedi";
 
diff --git a/src/services/resource-subjects.service.ts b/src/services/resource-subjects.service.ts
index 72306d5..8157f92 100644
--- a/src/services/resource-subjects.service.ts
+++ b/src/services/resource-subjects.service.ts
@@ -1,6 +1,6 @@
 import { resourceSubjects } from "@/db/repo/resource-subjects.repo";
 import type { ResourceModel } from "@/db/schema/resource.schema";
-import type { SubjectModel } from "@/db/schema/subjects.schema";
+import type { SubjectModel } from "@/db/schema/subject.schema";
 import { Inject, Service } from "typedi";
 
 
diff --git a/src/services/role.service.ts b/src/services/role.service.ts
index 544594f..68206bc 100644
--- a/src/services/role.service.ts
+++ b/src/services/role.service.ts
@@ -1,6 +1,6 @@
 import type db from "@/db"
 import { RoleRepo } from "@/db/repo/role.repo"
-import type { RoleModel, RoleInput, RoleUpdate } from "@/db/schema/roles.schema"
+import type { RoleModel, RoleInput, RoleUpdate } from "@/db/schema/role.schema"
 import { Inject, Service } from "typedi"
 
 @Service()
diff --git a/src/services/stats-resources.service.ts b/src/services/stats-resources.service.ts
index bb34788..cb517b9 100644
--- a/src/services/stats-resources.service.ts
+++ b/src/services/stats-resources.service.ts
@@ -1,5 +1,5 @@
 import { statsResourceRepo } from '@/db/repo/stats-resources.repo'
-import type { StatsResourcesInput, StatsResourcesModel, StatsResourcesUpdate } from '@/db/schema/stats-resources.schema'
+import type { ResourceStatsInput, ResourceStatsModel, ResourceStatsUpdate } from '@/db/schema/resource-stats.schema'
 import { Inject, Service } from 'typedi'
 
 @Service()
@@ -7,35 +7,35 @@ export class StatsResourceService {
   @Inject()
   private readonly repo: statsResourceRepo
 
-  async create(id: StatsResourcesInput): Promise<StatsResourcesModel> {
+  async create(id: ResourceStatsInput): Promise<ResourceStatsModel> {
     return this.repo.create(id)
   }
 
-  async update(statsResource: StatsResourcesUpdate): Promise<StatsResourcesModel> {
+  async update(statsResource: ResourceStatsUpdate): Promise<ResourceStatsModel> {
     return this.repo.update(statsResource)
   }
 
-  async viewUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+  async viewUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
     return this.repo.viewUpdate(resource_id)
   }
 
-  async downloadUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+  async downloadUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
     return this.repo.downloadUpdate(resource_id)
   }
 
-  async sharesUpdate(resource_id: StatsResourcesModel['resource_id']): Promise<StatsResourcesModel> {
+  async sharesUpdate(resource_id: ResourceStatsModel['resource_id']): Promise<ResourceStatsModel> {
     return this.repo.sharesUpdate(resource_id)
   }
 
-  async delete(id: StatsResourcesModel['id']): Promise<StatsResourcesModel> {
+  async delete(id: ResourceStatsModel['id']): Promise<ResourceStatsModel> {
     return this.repo.delete(id)
   }
 
-  async findById(id: StatsResourcesModel['id']): Promise<StatsResourcesModel | undefined> {
+  async findById(id: ResourceStatsModel['id']): Promise<ResourceStatsModel | undefined> {
     return this.repo.find(id)
   }
 
-  async findMany(): Promise<StatsResourcesModel[]> {
+  async findMany(): Promise<ResourceStatsModel[]> {
 
     return this.repo.findMany()
   }
diff --git a/src/services/subjects.service.ts b/src/services/subjects.service.ts
index d8b2f0c..8bbb445 100644
--- a/src/services/subjects.service.ts
+++ b/src/services/subjects.service.ts
@@ -1,5 +1,5 @@
 import  { subjectsRepo } from "@/db/repo/subjects.repo";
-import type { SubjectInput, SubjectModel, SubjectUpdate } from "@/db/schema/subjects.schema";
+import type { SubjectInput, SubjectModel, SubjectUpdate } from "@/db/schema/subject.schema";
 import { Inject, Service } from "typedi";
 
 
diff --git a/src/services/user-achievements.service.ts b/src/services/user-achievements.service.ts
index c94c632..ad2b9f6 100644
--- a/src/services/user-achievements.service.ts
+++ b/src/services/user-achievements.service.ts
@@ -1,5 +1,5 @@
 import { userAchievementsRepo } from "@/db/repo/user-achievements.repo";
-import type { AchievementModel } from "@/db/schema/achievements.schema";
+import type { AchievementModel } from "@/db/schema/achievement.schema";
 import type { UserModel } from "@/db/schema/user.schema";
 import { Inject, Service } from "typedi";
 
-- 
GitLab