Add named teams and per-user data visibility (own/team/org) with settings UI and org module.
This commit is contained in:
@@ -155,6 +155,7 @@ model Organization {
|
||||
users User[]
|
||||
memberships Membership[]
|
||||
orgRoles OrgRole[]
|
||||
teams Team[]
|
||||
companies Company[]
|
||||
people Person[]
|
||||
pipelines Pipeline[]
|
||||
@@ -241,6 +242,7 @@ model User {
|
||||
auditLogs AuditLog[] @relation("AuditLogActor")
|
||||
savedViews SavedView[] @relation("SavedViewOwner")
|
||||
assignedProjectCards ProjectCard[] @relation("ProjectCardAssignees")
|
||||
teamMemberships TeamMember[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@ -281,6 +283,8 @@ model Membership {
|
||||
orgRole OrgRole? @relation(fields: [orgRoleId], references: [id], onDelete: SetNull)
|
||||
isActive Boolean @default(true)
|
||||
commissionPercent Decimal @default(0) @db.Decimal(8, 2)
|
||||
/// own | team | org — سطح دید دادهها برای نقشهای غیرمالک/مدیر
|
||||
dataVisibility String @default("own")
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@ -290,6 +294,36 @@ model Membership {
|
||||
@@index([orgRoleId])
|
||||
}
|
||||
|
||||
/// گروه کاری داخل سازمان برای دیدپذیری مشترک
|
||||
model Team {
|
||||
id String @id @default(cuid())
|
||||
organizationId String
|
||||
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
||||
name String
|
||||
description String @default("")
|
||||
members TeamMember[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([organizationId, name])
|
||||
@@index([organizationId])
|
||||
}
|
||||
|
||||
model TeamMember {
|
||||
id String @id @default(cuid())
|
||||
teamId String
|
||||
team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
/// member | manager
|
||||
role String @default("member")
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@unique([teamId, userId])
|
||||
@@index([userId])
|
||||
@@index([teamId])
|
||||
}
|
||||
|
||||
/// حساب سوپرادمین پلتفرم — جدا از User سازمانی
|
||||
model PlatformAdmin {
|
||||
id String @id @default(cuid())
|
||||
|
||||
Reference in New Issue
Block a user