Files
evidencija-rezija/app/lib/db-types.ts
Knee Cola 93cf159c44 Add auto tenant notification toggle to LocationEditForm
Added toggle to control automatic tenant notifications with conditional
email field visibility based on the toggle state.

Changes:
- Added autoTenantNotification field to BillingLocation interface
- Updated LocationEditForm with "Notify tenant automatically" toggle
- Email field now only visible when autoTenantNotification is enabled
- Toggle appears after tenant name fields (when generateTenantCode is active)
- Updated updateOrAddLocation action to persist autoTenantNotification flag
- Added localization strings for toggle (Croatian/English)

Field visibility hierarchy:
1. Generate 2D code toggle (always visible)
2. Tenant name fields (visible when #1 is ON)
3. Auto notification toggle (visible when #1 is ON)
4. Email field (visible when #1 AND #3 are ON)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 09:24:18 +01:00

85 lines
2.2 KiB
TypeScript

import { ObjectId } from "mongodb";
import { inter } from "../ui/fonts";
export interface BillAttachment {
fileName: string;
fileSize: number;
fileType: string;
fileLastModified: number;
fileContentsBase64: string;
};
export interface YearMonth {
year: number;
month: number;
};
/** User profile data */
export interface UserProfile {
/** user's ID */
userId: string;
/** first name */
firstName?: string | null;
/** last name */
lastName?: string | null;
/** address */
address?: string | null;
/** IBAN */
iban?: string | null;
};
/** bill object in the form returned by MongoDB */
export interface BillingLocation {
_id: string;
/** user's ID */
userId: string;
/** user's email */
userEmail?: string | null;
/** name of the location */
name: string;
/** billing period year and month */
yearMonth: YearMonth;
/** array of bills */
bills: Bill[];
/** (optional) notes */
notes: string|null;
/** (optional) whether to generate 2D code for tenant */
generateTenantCode?: boolean | null;
/** (optional) tenant first name */
tenantFirstName?: string | null;
/** (optional) tenant last name */
tenantLastName?: string | null;
/** (optional) whether to automatically notify tenant */
autoTenantNotification?: boolean | null;
/** (optional) tenant email */
tenantEmail?: string | null;
};
export enum BilledTo {
Tenant = "tenant",
Landlord = "landlord"
}
/** Bill basic data */
export interface Bill {
_id: string;
/** bill name */
name: string;
/** is the bill paid */
paid: boolean;
/** who is billed for the bill */
billedTo?: BilledTo;
/** payed amount amount in cents */
payedAmount?: number | null;
/** attached document (optional) */
attachment?: BillAttachment|null;
/**
* true if there an attachment
* @description this field enables us to send this info to the client without sending large attachment - it's an optimization
*/
hasAttachment?: boolean;
/** (optional) notes */
notes?: string|null;
/** (optional) image data containing PDF471 bar code */
barcodeImage?:string;
};