WIP - add and remove shares
This commit is contained in:
@@ -9,7 +9,7 @@ export interface RecordShareAccessLevel {
|
||||
export class RecordShare extends BaseModel {
|
||||
static tableName = 'record_shares';
|
||||
|
||||
// Disable automatic snake_case conversion for this table
|
||||
// Don't use snake_case mapping since DB columns are already camelCase
|
||||
static get columnNameMappers() {
|
||||
return {
|
||||
parse(obj: any) {
|
||||
@@ -21,6 +21,15 @@ export class RecordShare extends BaseModel {
|
||||
};
|
||||
}
|
||||
|
||||
// Override BaseModel hooks to prevent automatic timestamp handling
|
||||
$beforeInsert(queryContext: any) {
|
||||
// Don't set timestamps - let database defaults handle it
|
||||
}
|
||||
|
||||
$beforeUpdate(opt: any, queryContext: any) {
|
||||
// Don't set timestamps - let database defaults handle it
|
||||
}
|
||||
|
||||
id!: string;
|
||||
objectDefinitionId!: string;
|
||||
recordId!: string;
|
||||
@@ -30,6 +39,7 @@ export class RecordShare extends BaseModel {
|
||||
expiresAt?: Date;
|
||||
revokedAt?: Date;
|
||||
createdAt!: Date;
|
||||
updatedAt!: Date;
|
||||
|
||||
static get jsonSchema() {
|
||||
return {
|
||||
@@ -49,8 +59,22 @@ export class RecordShare extends BaseModel {
|
||||
canDelete: { type: 'boolean' },
|
||||
},
|
||||
},
|
||||
expiresAt: { type: ['string', 'null'], format: 'date-time' },
|
||||
revokedAt: { type: ['string', 'null'], format: 'date-time' },
|
||||
expiresAt: {
|
||||
anyOf: [
|
||||
{ type: 'string', format: 'date-time' },
|
||||
{ type: 'null' },
|
||||
{ type: 'object' } // Allow Date objects
|
||||
]
|
||||
},
|
||||
revokedAt: {
|
||||
anyOf: [
|
||||
{ type: 'string', format: 'date-time' },
|
||||
{ type: 'null' },
|
||||
{ type: 'object' } // Allow Date objects
|
||||
]
|
||||
},
|
||||
createdAt: { type: ['string', 'object'], format: 'date-time' },
|
||||
updatedAt: { type: ['string', 'object'], format: 'date-time' },
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user