# CompanyFlow ## Docs - [Introduction](https://mintlify.wiki/Falasefemi2/companyflow/introduction.md): Welcome to CompanyFlow - A comprehensive HRMS and ERP backend solution built with Go - [Quick Start](https://mintlify.wiki/Falasefemi2/companyflow/quickstart.md): Get started with CompanyFlow API in minutes - [Installation](https://mintlify.wiki/Falasefemi2/companyflow/installation.md): Set up CompanyFlow API on your local machine or server - [Multi-Tenancy Architecture](https://mintlify.wiki/Falasefemi2/companyflow/concepts/multi-tenancy.md): Understand how CompanyFlow implements multi-tenant isolation and data segregation - [Authentication](https://mintlify.wiki/Falasefemi2/companyflow/concepts/authentication.md): Learn how CompanyFlow uses JWT tokens to authenticate users and enforce tenant security - [Authorization (RBAC)](https://mintlify.wiki/Falasefemi2/companyflow/concepts/authorization.md): Understand role-based access control and permission management in CompanyFlow - [Database Setup](https://mintlify.wiki/Falasefemi2/companyflow/guides/database-setup.md): Configure PostgreSQL for CompanyFlow API - [Environment Configuration](https://mintlify.wiki/Falasefemi2/companyflow/guides/environment-configuration.md): Configure environment variables for CompanyFlow API - [Running Migrations](https://mintlify.wiki/Falasefemi2/companyflow/guides/running-migrations.md): Database migration system for CompanyFlow API - [Testing](https://mintlify.wiki/Falasefemi2/companyflow/guides/testing.md): Testing the CompanyFlow API - [Login](https://mintlify.wiki/Falasefemi2/companyflow/api/auth/login.md): Authenticate user and return JWT token - [Create Company](https://mintlify.wiki/Falasefemi2/companyflow/api/companies/create.md) - [List Companies](https://mintlify.wiki/Falasefemi2/companyflow/api/companies/list.md) - [Get Company](https://mintlify.wiki/Falasefemi2/companyflow/api/companies/get.md) - [Update Company](https://mintlify.wiki/Falasefemi2/companyflow/api/companies/update.md) - [Delete Company](https://mintlify.wiki/Falasefemi2/companyflow/api/companies/delete.md) - [Create Employee](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/create.md): Create a new employee in a company - [List Employees](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/list.md): Get a paginated list of employees in a company with optional filtering - [Get Employee](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/get.md): Retrieve an employee by their ID - [Update Employee](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/update.md): Update an employee's information - [Delete Employee](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/delete.md): Delete an employee (soft delete by default, or hard delete with query parameter) - [Bulk Upload Employees](https://mintlify.wiki/Falasefemi2/companyflow/api/employees/bulk-upload.md): Upload a CSV file to create multiple employees in bulk - [Create Department](https://mintlify.wiki/Falasefemi2/companyflow/api/departments/create.md): Create a new department within a company - [List Departments](https://mintlify.wiki/Falasefemi2/companyflow/api/departments/list.md): Retrieve a paginated list of departments for a company - [Get Department](https://mintlify.wiki/Falasefemi2/companyflow/api/departments/get.md): Retrieve a specific department by ID - [Update Department](https://mintlify.wiki/Falasefemi2/companyflow/api/departments/update.md): Update an existing department - [Delete Department](https://mintlify.wiki/Falasefemi2/companyflow/api/departments/delete.md): Delete a department (soft delete by default) - [Create Designation](https://mintlify.wiki/Falasefemi2/companyflow/api/designations/create.md): Create a new designation for a company - [List Designations](https://mintlify.wiki/Falasefemi2/companyflow/api/designations/list.md): Get a paginated list of designations for a company - [Get Designation](https://mintlify.wiki/Falasefemi2/companyflow/api/designations/get.md): Retrieve a specific designation by ID - [Update Designation](https://mintlify.wiki/Falasefemi2/companyflow/api/designations/update.md): Update an existing designation - [Delete Designation](https://mintlify.wiki/Falasefemi2/companyflow/api/designations/delete.md): Delete a designation by ID - [Create Level](https://mintlify.wiki/Falasefemi2/companyflow/api/levels/create.md): Create a new organizational level for a company - [List Levels](https://mintlify.wiki/Falasefemi2/companyflow/api/levels/list.md): Get a paginated list of organizational levels for a company - [Get Level](https://mintlify.wiki/Falasefemi2/companyflow/api/levels/get.md): Retrieve a specific organizational level by ID - [Update Level](https://mintlify.wiki/Falasefemi2/companyflow/api/levels/update.md): Update an existing organizational level - [Delete Level](https://mintlify.wiki/Falasefemi2/companyflow/api/levels/delete.md): Delete an organizational level by ID - [Create Role](https://mintlify.wiki/Falasefemi2/companyflow/api/roles/create.md): Create a new role for a company - [List Roles](https://mintlify.wiki/Falasefemi2/companyflow/api/roles/list.md): Retrieve a paginated list of roles for a company - [Get Role](https://mintlify.wiki/Falasefemi2/companyflow/api/roles/get.md): Retrieve a specific role by ID - [Update Role](https://mintlify.wiki/Falasefemi2/companyflow/api/roles/update.md): Update an existing role - [Delete Role](https://mintlify.wiki/Falasefemi2/companyflow/api/roles/delete.md): Delete a role by ID - [Assign Permissions](https://mintlify.wiki/Falasefemi2/companyflow/api/permissions/assign.md): Replace all permissions for a role - [List Permissions](https://mintlify.wiki/Falasefemi2/companyflow/api/permissions/list.md): Retrieve all permissions for a role - [Add Permission](https://mintlify.wiki/Falasefemi2/companyflow/api/permissions/add.md): Add a single permission to a role - [Remove Permission](https://mintlify.wiki/Falasefemi2/companyflow/api/permissions/remove.md): Remove a single permission from a role - [Create Leave Type](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/types/create.md): Create a new leave type for a company - [List Leave Types](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/types/list.md): Get paginated list of leave types for a company - [Get Leave Type](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/types/get.md): Retrieve a specific leave type by ID - [Update Leave Type](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/types/update.md): Update an existing leave type configuration - [Delete Leave Type](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/types/delete.md): Delete a leave type from the system - [Request Leave](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/create.md): Submit a new leave request for approval - [List Leave Requests](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/list.md): Retrieve a paginated list of leave requests with filtering options - [Get Leave Request](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/get.md): Retrieve details of a specific leave request by ID - [Manage Leave Request](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/update.md): Approve, reject, or withdraw leave requests - [Check Leave Balance](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/balances/check.md): Check current user's available leave balance - [Get Employee Leave Balances](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/balances/employee.md): Get all leave balances for a specific employee - [Get Balance by Type](https://mintlify.wiki/Falasefemi2/companyflow/api/leaves/balances/by-type.md): Get detailed balance for a specific leave type - [Create Memo](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/create.md): Create a new memo with optional recipients and workflow approvals - [List Memos](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/list.md): Retrieve a paginated list of memos with filtering options - [Get Memo](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/get.md): Retrieve a specific memo by ID - [Mark Memo as Read](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/read.md): Mark a memo as read for the authenticated user - [Approve Memo](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/approve.md): Approve a memo at the current workflow step - [Reject Memo](https://mintlify.wiki/Falasefemi2/companyflow/api/memos/reject.md): Reject a memo at the current workflow step - [Create Approval Workflow](https://mintlify.wiki/Falasefemi2/companyflow/api/approvals/create.md): Create an approval workflow for leave requests, memos, or expenses - [List Approval Workflows](https://mintlify.wiki/Falasefemi2/companyflow/api/approvals/list.md): Retrieve approval workflows for your company with optional filtering - [Get Approval History](https://mintlify.wiki/Falasefemi2/companyflow/api/approvals/get.md): Retrieve approval history for a leave request or memo - [Update Approval Status](https://mintlify.wiki/Falasefemi2/companyflow/api/approvals/update.md): Take action on pending approvals as an approver