import * as Sequelize from 'sequelize';
import { DataTypes, Model, Optional } from 'sequelize';
export interface ActiveBedAttributes {
	id?: string | null;
	room_id?: string | null;
	name?: string | null;
	code?: string | null;
	status?: 'active' | 'inactive' | null;
	deleted_at?: Date | null;
	deleted_by?: string | null;
	created_by?: string | null;
	updated_by?: string | null;
	created_at?: Date | null;
	updated_at?: Date | null;
}
export type ActiveBedPk = 'id';
export type ActiveBedId = ActiveBed[ActiveBedPk];
export type ActiveBedOptionalAttributes =
	| 'id'
	| 'room_id'
	| 'name'
	| 'code'
	| 'status'
	| 'deleted_at'
	| 'deleted_by'
	| 'created_by'
	| 'updated_by'
	| 'created_at'
	| 'updated_at';
export type ActiveBedCreationAttributes = Optional<ActiveBedAttributes, ActiveBedOptionalAttributes>;
export class ActiveBed extends Model<ActiveBedAttributes> implements ActiveBedAttributes {
	id?: string;
	declare room_id?: string | null;
	declare name?: string | null;
	declare code?: string | null;
	declare status?: 'active' | 'inactive' | null;
	declare deleted_at?: Date | null;
	declare deleted_by?: string | null;
	declare created_by?: string | null;
	declare updated_by?: string | null;
	declare created_at?: Date | null;
	declare updated_at?: Date | null;
	static initModel(sequelize: Sequelize.Sequelize): typeof ActiveBed {
		return ActiveBed.init(
			{
				id: {
					type: DataTypes.UUID,
					allowNull: true,
					primaryKey: true,
				},
				room_id: {
					type: DataTypes.UUID,
					allowNull: true,
				},
				name: {
					type: DataTypes.STRING(200),
					allowNull: true,
				},
				code: {
					type: DataTypes.STRING(50),
					allowNull: true,
				},
				status: {
					type: DataTypes.ENUM('active', 'inactive'),
					allowNull: true,
				},
				deleted_at: {
					type: DataTypes.DATE,
					allowNull: true,
				},
				deleted_by: {
					type: DataTypes.UUID,
					allowNull: true,
				},
				created_by: {
					type: DataTypes.UUID,
					allowNull: true,
				},
				updated_by: {
					type: DataTypes.UUID,
					allowNull: true,
				},
				created_at: {
					type: DataTypes.DATE,
					allowNull: true,
				},
				updated_at: {
					type: DataTypes.DATE,
					allowNull: true,
				},
			},
			{
				sequelize,
				tableName: 'active_beds',
				schema: 'public',
				timestamps: false,
			},
		);
	}
}
