diff --git a/api/spec/factories/Room/DenFactory.ts b/api/spec/factories/Room/DenFactory.ts
new file mode 100644
index 0000000..1a26df8
--- /dev/null
+++ b/api/spec/factories/Room/DenFactory.ts
@@ -0,0 +1,8 @@
+import { UpdateableProperties } from '@rvoh/dream/types'
+import Den from '@models/Room/Den.js'
+
+export default async function createDen(attrs: UpdateableProperties<Den> = {}) {
+ return await Den.create({
+ ...attrs,
+ })
+}
diff --git a/api/spec/factories/Room/LivingRoomFactory.ts b/api/spec/factories/Room/LivingRoomFactory.ts
new file mode 100644
index 0000000..acca82d
--- /dev/null
+++ b/api/spec/factories/Room/LivingRoomFactory.ts
@@ -0,0 +1,8 @@
+import { UpdateableProperties } from '@rvoh/dream/types'
+import LivingRoom from '@models/Room/LivingRoom.js'
+
+export default async function createLivingRoom(attrs: UpdateableProperties<LivingRoom> = {}) {
+ return await LivingRoom.create({
+ ...attrs,
+ })
+}
diff --git a/api/spec/unit/models/Room/Den.spec.ts b/api/spec/unit/models/Room/Den.spec.ts
new file mode 100644
index 0000000..f1e12ce
--- /dev/null
+++ b/api/spec/unit/models/Room/Den.spec.ts
@@ -0,0 +1,3 @@
+describe('Room/Den', () => {
+ it.todo('add a test here to get started building Room/Den')
+})
diff --git a/api/spec/unit/models/Room/LivingRoom.spec.ts b/api/spec/unit/models/Room/LivingRoom.spec.ts
new file mode 100644
index 0000000..6e4aa50
--- /dev/null
+++ b/api/spec/unit/models/Room/LivingRoom.spec.ts
@@ -0,0 +1,3 @@
+describe('Room/LivingRoom', () => {
+ it.todo('add a test here to get started building Room/LivingRoom')
+})
diff --git a/api/src/app/models/Room/Den.ts b/api/src/app/models/Room/Den.ts
new file mode 100644
index 0000000..3b78360
--- /dev/null
+++ b/api/src/app/models/Room/Den.ts
@@ -0,0 +1,14 @@
+import { STI } from '@rvoh/dream'
+import { DreamColumn, DreamSerializers } from '@rvoh/dream/types'
+import Room from '@models/Room.js'
+
+@STI(Room)
+export default class Den extends Room {
+ public override get serializers(): DreamSerializers<Den> {
+ return {
+ default: 'Room/DenSerializer',
+ summary: 'Room/DenSummarySerializer',
+ }
+ }
+
+}
diff --git a/api/src/app/models/Room/LivingRoom.ts b/api/src/app/models/Room/LivingRoom.ts
new file mode 100644
index 0000000..c7f3b30
--- /dev/null
+++ b/api/src/app/models/Room/LivingRoom.ts
@@ -0,0 +1,14 @@
+import { STI } from '@rvoh/dream'
+import { DreamColumn, DreamSerializers } from '@rvoh/dream/types'
+import Room from '@models/Room.js'
+
+@STI(Room)
+export default class LivingRoom extends Room {
+ public override get serializers(): DreamSerializers<LivingRoom> {
+ return {
+ default: 'Room/LivingRoomSerializer',
+ summary: 'Room/LivingRoomSummarySerializer',
+ }
+ }
+
+}
diff --git a/api/src/app/serializers/Room/DenSerializer.ts b/api/src/app/serializers/Room/DenSerializer.ts
new file mode 100644
index 0000000..5d4db09
--- /dev/null
+++ b/api/src/app/serializers/Room/DenSerializer.ts
@@ -0,0 +1,8 @@
+import { RoomSerializer, RoomSummarySerializer } from '@serializers/RoomSerializer.js'
+import Den from '@models/Room/Den.js'
+
+export const RoomDenSummarySerializer = (den: Den) =>
+ RoomSummarySerializer(Den, den)
+
+export const RoomDenSerializer = (den: Den) =>
+ RoomSerializer(Den, den)
diff --git a/api/src/app/serializers/Room/LivingRoomSerializer.ts b/api/src/app/serializers/Room/LivingRoomSerializer.ts
new file mode 100644
index 0000000..473d39b
--- /dev/null
+++ b/api/src/app/serializers/Room/LivingRoomSerializer.ts
@@ -0,0 +1,8 @@
+import { RoomSerializer, RoomSummarySerializer } from '@serializers/RoomSerializer.js'
+import LivingRoom from '@models/Room/LivingRoom.js'
+
+export const RoomLivingRoomSummarySerializer = (livingRoom: LivingRoom) =>
+ RoomSummarySerializer(LivingRoom, livingRoom)
+
+export const RoomLivingRoomSerializer = (livingRoom: LivingRoom) =>
+ RoomSerializer(LivingRoom, livingRoom)