Replace seenByTenant boolean with seenByTenantAt timestamp field
Update location tracking to record when tenant views a location rather than just whether they've seen it. This provides better audit trail and enables future features like viewing history. Changes: - Convert seenByTenant (boolean) to seenByTenantAt (Date) in database schema - Update setSeenByTenantAt action to store timestamp instead of boolean flag - Modify LocationCard UI to display when location was seen by tenant - Update all references across locationActions, monthActions, and view components - Remove unused imports from ViewLocationCard 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -428,7 +428,7 @@ export const fetchAllLocations = withUser(async (user:AuthenticatedUser, year:nu
|
||||
"yearMonth.year": 1,
|
||||
"yearMonth.month": 1,
|
||||
"bills": 1,
|
||||
"seenByTenant": 1,
|
||||
"seenByTenantAt": 1,
|
||||
// "bills.attachment": 0,
|
||||
// "bills.notes": 0,
|
||||
// "bills.hub3aText": 1,
|
||||
@@ -555,7 +555,7 @@ export const deleteLocationById = withUser(async (user:AuthenticatedUser, locati
|
||||
})
|
||||
|
||||
/**
|
||||
* Sets the `seenByTenant` flag to true for a specific location.
|
||||
* Sets the `seenByTenantAt` flag to true for a specific location.
|
||||
*
|
||||
* This function marks a location as viewed by the tenant. It first checks if the flag
|
||||
* is already set to true to avoid unnecessary database updates.
|
||||
@@ -564,17 +564,17 @@ export const deleteLocationById = withUser(async (user:AuthenticatedUser, locati
|
||||
* @returns {Promise<void>}
|
||||
*
|
||||
* @example
|
||||
* await setSeenByTenant("507f1f77bcf86cd799439011");
|
||||
* await setseenByTenantAt("507f1f77bcf86cd799439011");
|
||||
*/
|
||||
export const setSeenByTenant = async (locationID: string): Promise<void> => {
|
||||
export const setSeenByTenantAt = async (locationID: string): Promise<void> => {
|
||||
const dbClient = await getDbClient();
|
||||
|
||||
// First check if the location exists and if seenByTenant is already true
|
||||
// First check if the location exists and if seenByTenantAt is already true
|
||||
const location = await dbClient.collection<BillingLocation>("lokacije")
|
||||
.findOne({ _id: locationID });
|
||||
|
||||
// If location doesn't exist or seenByTenant is already true, no update needed
|
||||
if (!location || location.seenByTenant === true) {
|
||||
// If location doesn't exist or seenByTenantAt is already true, no update needed
|
||||
if (!location || location.seenByTenantAt) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -582,7 +582,7 @@ export const setSeenByTenant = async (locationID: string): Promise<void> => {
|
||||
await dbClient.collection<BillingLocation>("lokacije")
|
||||
.updateOne(
|
||||
{ _id: locationID },
|
||||
{ $set: { seenByTenant: true } }
|
||||
{ $set: { seenByTenantAt: new Date() } }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user