Compare commits
8 Commits
1cf45b83ae
...
085713400c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
085713400c | ||
|
|
eaf5b653e9 | ||
|
|
6d736e3668 | ||
|
|
4e35fa0237 | ||
|
|
8b6b62e643 | ||
|
|
6d65014a45 | ||
|
|
a03cf5c8ed | ||
|
|
48d3dbe21b |
File diff suppressed because it is too large
Load Diff
@ -1,19 +1,12 @@
|
|||||||
import { isFileBlob, type FileBlob } from "./Data";
|
|
||||||
import type { RoleDefinition } from "./Roles";
|
import type { RoleDefinition } from "./Roles";
|
||||||
|
|
||||||
export interface FolderData {
|
export interface FolderData {
|
||||||
folderNumber: string;
|
folderNumber: string;
|
||||||
name: string;
|
name: string;
|
||||||
deedType: string;
|
|
||||||
description: string;
|
description: string;
|
||||||
archived_description: string;
|
|
||||||
status: string;
|
|
||||||
created_at: string;
|
created_at: string;
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
customers: string[];
|
|
||||||
documents: FileBlob[];
|
|
||||||
notes: string[];
|
notes: string[];
|
||||||
stakeholders: string[];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isFolderData(data: any): data is FolderData {
|
export function isFolderData(data: any): data is FolderData {
|
||||||
@ -22,10 +15,7 @@ export function isFolderData(data: any): data is FolderData {
|
|||||||
const requiredStringFields = [
|
const requiredStringFields = [
|
||||||
'folderNumber',
|
'folderNumber',
|
||||||
'name',
|
'name',
|
||||||
'deedType',
|
|
||||||
'description',
|
'description',
|
||||||
'archived_description',
|
|
||||||
'status',
|
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at'
|
'updated_at'
|
||||||
];
|
];
|
||||||
@ -34,25 +24,9 @@ export function isFolderData(data: any): data is FolderData {
|
|||||||
if (typeof data[field] !== 'string') return false;
|
if (typeof data[field] !== 'string') return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const requiredArrayFields = [
|
// Vérifier que notes est un tableau de chaînes
|
||||||
'customers',
|
if (!Array.isArray(data.notes) || !data.notes.every((item: any) => typeof item === 'string')) {
|
||||||
'notes',
|
return false;
|
||||||
'stakeholders'
|
|
||||||
];
|
|
||||||
|
|
||||||
for (const field of requiredArrayFields) {
|
|
||||||
if (!Array.isArray(data[field]) || !data[field].every((item: any) => typeof item === 'string')) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const requiredFileBlobArrayFields = [
|
|
||||||
'documents',
|
|
||||||
];
|
|
||||||
|
|
||||||
for (const field of requiredFileBlobArrayFields) {
|
|
||||||
if (!Array.isArray(data[field])) return false;
|
|
||||||
if (data[field].length > 0 && !data[field].every(isFileBlob)) return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -61,16 +35,10 @@ export function isFolderData(data: any): data is FolderData {
|
|||||||
const emptyFolderData: FolderData = {
|
const emptyFolderData: FolderData = {
|
||||||
folderNumber: '',
|
folderNumber: '',
|
||||||
name: '',
|
name: '',
|
||||||
deedType: '',
|
|
||||||
description: '',
|
description: '',
|
||||||
archived_description: '',
|
|
||||||
status: '',
|
|
||||||
created_at: '',
|
created_at: '',
|
||||||
updated_at: '',
|
updated_at: '',
|
||||||
customers: [],
|
notes: []
|
||||||
documents: [],
|
|
||||||
notes: [],
|
|
||||||
stakeholders: []
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const folderDataFields: string[] = Object.keys(emptyFolderData);
|
const folderDataFields: string[] = Object.keys(emptyFolderData);
|
||||||
@ -88,7 +56,7 @@ export interface FolderCreated {
|
|||||||
data: FolderData,
|
data: FolderData,
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultFolderRoles(ownerId: string, stakeholdersId: string[], customersId: string[]): Record<string, RoleDefinition> {
|
export function setDefaultFolderRoles(ownerId: string): Record<string, RoleDefinition> {
|
||||||
return {
|
return {
|
||||||
demiurge: {
|
demiurge: {
|
||||||
members: [ownerId],
|
members: [ownerId],
|
||||||
@ -106,28 +74,6 @@ export function setDefaultFolderRoles(ownerId: string, stakeholdersId: string[],
|
|||||||
],
|
],
|
||||||
storages: []
|
storages: []
|
||||||
},
|
},
|
||||||
stakeholders: {
|
|
||||||
members: stakeholdersId,
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.5,
|
|
||||||
fields: ['documents', 'notes'],
|
|
||||||
min_sig_member: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: []
|
|
||||||
},
|
|
||||||
customers: {
|
|
||||||
members: customersId,
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.0,
|
|
||||||
fields: folderDataFields,
|
|
||||||
min_sig_member: 0.0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: []
|
|
||||||
},
|
|
||||||
apophis: {
|
apophis: {
|
||||||
members: [ownerId],
|
members: [ownerId],
|
||||||
validation_rules: [],
|
validation_rules: [],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user