mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-16 02:16:34 +00:00
48 lines
897 B
TypeScript
48 lines
897 B
TypeScript
import { Document, Schema, Types, model } from "mongoose";
|
|
import { ACCEPTED, ADMIN, INVITED, MEMBER, OWNER } from "../variables";
|
|
|
|
export interface IMembershipOrg extends Document {
|
|
_id: Types.ObjectId;
|
|
user: Types.ObjectId;
|
|
inviteEmail: string;
|
|
organization: Types.ObjectId;
|
|
role: "owner" | "admin" | "member";
|
|
status: "invited" | "accepted";
|
|
}
|
|
|
|
const membershipOrgSchema = new Schema(
|
|
{
|
|
user: {
|
|
type: Schema.Types.ObjectId,
|
|
ref: "User",
|
|
},
|
|
inviteEmail: {
|
|
type: String,
|
|
},
|
|
organization: {
|
|
type: Schema.Types.ObjectId,
|
|
ref: "Organization",
|
|
},
|
|
role: {
|
|
type: String,
|
|
enum: [OWNER, ADMIN, MEMBER],
|
|
required: true,
|
|
},
|
|
status: {
|
|
type: String,
|
|
enum: [INVITED, ACCEPTED],
|
|
required: true,
|
|
},
|
|
},
|
|
{
|
|
timestamps: true,
|
|
}
|
|
);
|
|
|
|
const MembershipOrg = model<IMembershipOrg>(
|
|
"MembershipOrg",
|
|
membershipOrgSchema
|
|
);
|
|
|
|
export default MembershipOrg;
|