SpaceNinjaServer/src/types/personalRoomsTypes.ts
Sainan 827ea47468
All checks were successful
Build Docker image / docker (push) Successful in 57s
Build / build (push) Successful in 55s
feat: personal quarters loadout, stencil, vignette, & fish customisation (#1619)
Closes #1618

Reviewed-on: #1619
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
2025-04-14 07:16:25 -07:00

68 lines
1.9 KiB
TypeScript

import { IColor } from "@/src/types/inventoryTypes/commonInventoryTypes";
import {
IApartment,
IRoom,
IPlacedDecosDatabase,
ITailorShop,
ITailorShopDatabase,
TBootLocation,
IApartmentDatabase
} from "@/src/types/shipTypes";
import { Document, Model, Types } from "mongoose";
export interface IOrbiter {
Features: string[];
Rooms: IRoom[];
VignetteFish?: string[];
FavouriteLoadoutId?: Types.ObjectId;
Wallpaper?: string;
Vignette?: string;
ContentUrlSignature?: string;
BootLocation?: TBootLocation;
}
export interface IPersonalRooms {
ShipInteriorColors: IColor;
Ship: IOrbiter;
Apartment: IApartment;
TailorShop: ITailorShop;
}
export interface IPersonalRoomsDatabase {
ShipInteriorColors: IColor;
personalRoomsOwnerId: Types.ObjectId;
activeShipId: Types.ObjectId;
Ship: IOrbiter;
Apartment: IApartmentDatabase;
TailorShop: ITailorShopDatabase;
}
export type RoomsType = { Name: string; MaxCapacity: number; PlacedDecos: Types.DocumentArray<IPlacedDecosDatabase> };
export type PersonalRoomsDocumentProps = {
Ship: Omit<IOrbiter, "Rooms"> & {
Rooms: RoomsType[];
};
Apartment: Omit<IApartmentDatabase, "Rooms"> & {
Rooms: RoomsType[];
};
TailorShop: Omit<ITailorShopDatabase, "Rooms"> & {
Rooms: RoomsType[];
};
};
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export type PersonalRoomsModelType = Model<IPersonalRoomsDatabase, {}, PersonalRoomsDocumentProps>;
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export type TPersonalRoomsDatabaseDocument = Document<unknown, {}, IPersonalRoomsDatabase> &
Omit<
IPersonalRoomsDatabase & {
_id: Types.ObjectId;
} & {
__v: number;
},
keyof PersonalRoomsDocumentProps
> &
PersonalRoomsDocumentProps;